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.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-R2/1
- env: T=windows/2016/1

View file

@ -9,22 +9,48 @@ version="${args[1]}"
group="${args[2]}"
if [[ "${COVERAGE:-}" == "--coverage" ]]; then
timeout=75
timeout=90
else
timeout=20
timeout=30
fi
group1=()
group2=()
group3=()
# create two groups by putting long running network tests into one group
# add or remove more network platforms as needed to balance the two groups
# create three groups by putting network tests into separate 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
fortimanager
fortios
frr
ftd
icx
ingate
ios
iosxr
ironware
itential
junos
netact
netscaler
@ -43,7 +69,11 @@ networks=(
vyos
)
for network in "${networks[@]}"; do
networks3=(
fortios
)
for network in "${networks2[@]}"; do
test_path="test/units/modules/network/${network}/"
if [ -d "${test_path}" ]; then
@ -52,13 +82,23 @@ for network in "${networks[@]}"; do
fi
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
1) options=("${group1[@]:+${group1[@]}}") ;;
2) options=("${group2[@]:+${group2[@]}}") ;;
3) options=("${group3[@]:+${group3[@]}}") ;;
esac
if [ ${#options[@]} -eq 0 ] && [ "${group}" -eq 2 ]; then
# allow collection migration unit tests for group 2 to "pass" without updating shippable.yml or this script during migration
if [ ${#options[@]} -eq 0 ] && [ "${group}" -gt 1 ]; then
# 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}."
exit
fi