#!/bin/bash
# SPDX-License-Identifier: GPL-2.0

# This runs all known tests across all known possible configurations we could
# emulate in one run.

set -e

TEST_DIR=$(dirname $0)
source $TEST_DIR/fw_lib.sh

export HAS_FW_LOADER_USER_HELPER=""
export HAS_FW_LOADER_USER_HELPER_FALLBACK=""
export HAS_FW_LOADER_COMPRESS=""

run_tests()
{
	proc_set_force_sysfs_fallback $1
	proc_set_ignore_sysfs_fallback $2
	$TEST_DIR/fw_filesystem.sh

	proc_set_force_sysfs_fallback $1
	proc_set_ignore_sysfs_fallback $2
	$TEST_DIR/fw_fallback.sh

	proc_set_force_sysfs_fallback $1
	proc_set_ignore_sysfs_fallback $2
	$TEST_DIR/fw_upload.sh
}

run_test_config_0001()
{
	echo "-----------------------------------------------------"
	echo "Running kernel configuration test 1 -- rare"
	echo "Emulates:"
	echo "CONFIG_FW_LOADER=y"
	echo "CONFIG_FW_LOADER_USER_HELPER=n"
	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
	run_tests 0 1
}

run_test_config_0002()
{
	echo "-----------------------------------------------------"
	echo "Running kernel configuration test 2 -- distro"
	echo "Emulates:"
	echo "CONFIG_FW_LOADER=y"
	echo "CONFIG_FW_LOADER_USER_HELPER=y"
	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
	proc_set_ignore_sysfs_fallback 0
	run_tests 0 0
}

run_test_config_0003()
{
	echo "-----------------------------------------------------"
	echo "Running kernel configuration test 3 -- android"
	echo "Emulates:"
	echo "CONFIG_FW_LOADER=y"
	echo "CONFIG_FW_LOADER_USER_HELPER=y"
	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y"
	run_tests 1 0
}

check_mods
check_setup

echo "Running namespace test: "
$TEST_DIR/fw_namespace $DIR/trigger_request
echo "OK"

if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
	run_test_config_0001
	run_test_config_0002
	run_test_config_0003
else
	echo "Running basic kernel configuration, working with your config"
	run_tests
fi
