#!/bin/sh

set -e

BASEPATH=$(pwd)
if test -z "${AUTOPKGTEST_TMP-}"; then
  AUTOPKGTEST_TMP=$(mktemp -d /tmp/ansible-test.XXXXXX)
  trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
fi

unit_test_dirs="
ansible_collections/amazon/aws
ansible_collections/ansible/posix
ansible_collections/ansible/utils
ansible_collections/ansible/windows
ansible_collections/arista/eos
ansible_collections/cisco/aci
ansible_collections/cisco/asa
ansible_collections/cisco/ios
ansible_collections/cisco/iosxr
ansible_collections/cisco/nxos
ansible_collections/cloud/common
ansible_collections/community/ciscosmb
ansible_collections/community/crypto
ansible_collections/community/digitalocean
ansible_collections/community/docker
ansible_collections/community/grafana
ansible_collections/community/libvirt
ansible_collections/community/mysql
ansible_collections/community/network
ansible_collections/community/okd
ansible_collections/community/postgresql
ansible_collections/community/rabbitmq
ansible_collections/community/routeros
ansible_collections/community/sap_libs
ansible_collections/community/windows
ansible_collections/containers/podman
ansible_collections/cyberark/conjur
ansible_collections/dellemc/enterprise_sonic
ansible_collections/dellemc/openmanage
ansible_collections/dellemc/powerflex
ansible_collections/dellemc/unity
ansible_collections/frr/frr
ansible_collections/google/cloud
ansible_collections/hetzner/hcloud
ansible_collections/ibm/qradar
ansible_collections/infoblox/nios_modules
ansible_collections/microsoft/ad
ansible_collections/netapp/aws
ansible_collections/netapp/elementsw
ansible_collections/netapp/storagegrid
ansible_collections/netapp/um_info
ansible_collections/netbox/netbox
ansible_collections/openvswitch/openvswitch
ansible_collections/vultr/cloud
ansible_collections/vyos/vyos
"

failures=0
for i in $unit_test_dirs; do

  cd $i 2> /dev/null || continue

  echo "\n\n"
  echo "############################################################"
  echo "############################################################"
  echo "#### Running tests in $i"
  echo "############################################################"
  echo "############################################################"

  HOME="${AUTOPKGTEST_TMP}/home" /usr/bin/ansible-test units \
    --python-interpreter /usr/bin/python3 \
    --local || failures=$((failures + 1))

  cd $BASEPATH
done

exit "$failures"
