#!/usr/bin/env bash

set -o pipefail -eux

declare -a args
IFS='/:' read -ra args <<< "$1"

version="${args[1]}"
group="${args[2]}"

if [[ "${COVERAGE:-}" == "--coverage" ]]; then
    timeout=90
else
    timeout=20
fi

group1=()
group2=()

# 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

networks=(
    f5
    fortimanager
    fortios
    ios
    junos
    netact
    netscaler
    netvisor
    nos
    nso
    nuage
    nxos
    onyx
    opx
    ovs
    radware
    routeros
    slxos
    voss
    vyos
)

for network in "${networks[@]}"; do
    group1+=(--exclude "test/units/modules/network/${network}/")
    group2+=("test/units/modules/network/${network}/")
done

case "${group}" in
    1) options=("${group1[@]}") ;;
    2) options=("${group2[@]}") ;;
esac

ansible-test env --timeout "${timeout}" --color -v

# shellcheck disable=SC2086
ansible-test units --color -v --docker default --python "${version}" ${COVERAGE:+"$COVERAGE"} ${CHANGED:+"$CHANGED"} \
    "${options[@]}" \
