#!/bin/bash

PS4='+TEST: '
failures=()

for release in 20.04 22.04 24.04; do
    container_image=ubuntu:$release
    container_name=add-nvidia-repositories-test-${release/.}
    echo "*** TESTING ON $container_image ***"
    set -x
    lxc delete --force "$container_name"
    (
        lxc launch "$container_image" "$container_name"
        lxc file push add-nvidia-repositories "$container_name/usr/bin/"
        lxc file push instance_test.py wait_online.py "$container_name/var/tmp/"
        lxc exec --cwd /var/tmp "$container_name" -- python3 wait_online.py
        lxc exec "$container_name" -- add-nvidia-repositories -y
        lxc exec --cwd /var/tmp "$container_name" -- python3 -m unittest -v instance_test
    )
    ret=$?
    lxc delete --force "$container_name"
    { set +x; } 2>/dev/null
    if (( ret )); then
        failures+=($release)
    fi
    echo
done

if (( ${#failures} )); then
    echo >&2 "FAILURE: instance-test failed in ${failures[@]}"
    exit 1
fi
