Split unit tests into 3 groups. (#67917)

This commit is contained in:
Matt Clay 2020-03-01 22:57:48 -08:00 committed by GitHub
parent 97d2d4512f
commit 64782dd815
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 57 additions and 9 deletions

View file

@ -30,6 +30,14 @@ matrix:
- env: T=units/3.8/2 - env: T=units/3.8/2
- env: T=units/3.9/2 - env: T=units/3.9/2
- env: T=units/2.6/3
- env: T=units/2.7/3
- env: T=units/3.5/3
- env: T=units/3.6/3
- env: T=units/3.7/3
- env: T=units/3.8/3
- env: T=units/3.9/3
- env: T=windows/2012/1 - env: T=windows/2012/1
- env: T=windows/2012-R2/1 - env: T=windows/2012-R2/1
- env: T=windows/2016/1 - env: T=windows/2016/1

View file

@ -9,22 +9,48 @@ version="${args[1]}"
group="${args[2]}" group="${args[2]}"
if [[ "${COVERAGE:-}" == "--coverage" ]]; then if [[ "${COVERAGE:-}" == "--coverage" ]]; then
timeout=75 timeout=90
else else
timeout=20 timeout=30
fi fi
group1=() group1=()
group2=() group2=()
group3=()
# create two groups by putting long running network tests into one group # create three groups by putting network tests into separate groups
# add or remove more network platforms as needed to balance the two groups # add or remove network platforms as needed to balance the groups
networks=( networks2=(
aireos
apconos
aruba
asa
avi
check_point
cloudengine
cloudvision
cnos
cumulus
dellos10
dellos6
dellos9
edgeos
edgeswitch
enos
eos
eric_eccli
exos
f5 f5
fortimanager fortimanager
fortios frr
ftd
icx
ingate
ios ios
iosxr
ironware
itential
junos junos
netact netact
netscaler netscaler
@ -43,7 +69,11 @@ networks=(
vyos vyos
) )
for network in "${networks[@]}"; do networks3=(
fortios
)
for network in "${networks2[@]}"; do
test_path="test/units/modules/network/${network}/" test_path="test/units/modules/network/${network}/"
if [ -d "${test_path}" ]; then if [ -d "${test_path}" ]; then
@ -52,13 +82,23 @@ for network in "${networks[@]}"; do
fi fi
done done
for network in "${networks3[@]}"; do
test_path="test/units/modules/network/${network}/"
if [ -d "${test_path}" ]; then
group1+=(--exclude "${test_path}")
group3+=("${test_path}")
fi
done
case "${group}" in case "${group}" in
1) options=("${group1[@]:+${group1[@]}}") ;; 1) options=("${group1[@]:+${group1[@]}}") ;;
2) options=("${group2[@]:+${group2[@]}}") ;; 2) options=("${group2[@]:+${group2[@]}}") ;;
3) options=("${group3[@]:+${group3[@]}}") ;;
esac esac
if [ ${#options[@]} -eq 0 ] && [ "${group}" -eq 2 ]; then if [ ${#options[@]} -eq 0 ] && [ "${group}" -gt 1 ]; then
# allow collection migration unit tests for group 2 to "pass" without updating shippable.yml or this script during migration # allow collection migration unit tests for groups other than 1 to "pass" without updating shippable.yml or this script during migration
echo "No unit tests found for group ${group}." echo "No unit tests found for group ${group}."
exit exit
fi fi