#!/bin/sh -e

exec 0>/dev/null
exec 2>&1

run_test()
{
        if [ -f @installedtestsbindir@/$1 ]; then
                @installedtestsbindir@/$1
        fi
}

run_device_tests()
{
	if [ -n "$CI_NETWORK" ] && [ -d @devicetestdir@ ]; then
		for f in `grep --files-with-matches -r emulation- @devicetestdir@`; do
		        echo "Emulating for $f"
		        fwupdmgr device-emulate \
				--download-retries=5 \
				--no-unreported-check \
				--no-remote-check \
				--no-metadata-check \
				--json \
				"$f"
		done
	fi
}

run_umockdev_test()
{
	INSPECTOR=@installedtestsdatadir@/unittest_inspector.py
	ARG=@installedtestsdatadir@/$1
	if [ -f ${INSPECTOR} ] && [ -f ${ARG} ]; then
		TESTS=`${INSPECTOR} ${ARG}`
		for test in ${TESTS}; do
			${ARG} ${test} --verbose
		done
	fi
}

export LSAN_OPTIONS="suppressions=@installedtestsdatadir@/lsan-suppressions.txt"

run_test acpi-dmar-self-test
run_test acpi-facp-self-test
run_test acpi-ivrs-self-test
run_test acpi-phat-self-test
run_test ata-self-test
run_test dfu-self-test
run_test fwupdplugin-self-test
run_test linux-swap-self-test
run_test logitech-hidpp-self-test
run_test mtd-self-test
run_test nitrokey-self-test
run_test nvme-self-test
run_test optionrom-self-test
run_test redfish-self-test
run_test synaptics-prometheus-self-test
run_test tpm-self-test
run_test uefi-dbx-self-test
run_test uefi-mok-self-test
run_test vli-self-test
run_test wacom-usb-self-test
run_umockdev_test fwupd_test.py
run_umockdev_test pci_psp_test.py
run_device_tests
fwupdmgr quit

# success!
exit 0
