1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4# This runs all known tests across all known possible configurations we could
5# emulate in one run.
6
7set -e
8
9TEST_DIR=$(dirname $0)
10source $TEST_DIR/fw_lib.sh
11
12export HAS_FW_LOADER_USER_HELPER=""
13export HAS_FW_LOADER_USER_HELPER_FALLBACK=""
14export HAS_FW_LOADER_COMPRESS=""
15
16run_tests()
17{
18	proc_set_force_sysfs_fallback $1
19	proc_set_ignore_sysfs_fallback $2
20	$TEST_DIR/fw_filesystem.sh
21
22	proc_set_force_sysfs_fallback $1
23	proc_set_ignore_sysfs_fallback $2
24	$TEST_DIR/fw_fallback.sh
25
26	proc_set_force_sysfs_fallback $1
27	proc_set_ignore_sysfs_fallback $2
28	$TEST_DIR/fw_upload.sh
29}
30
31run_test_config_0001()
32{
33	echo "-----------------------------------------------------"
34	echo "Running kernel configuration test 1 -- rare"
35	echo "Emulates:"
36	echo "CONFIG_FW_LOADER=y"
37	echo "CONFIG_FW_LOADER_USER_HELPER=n"
38	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
39	run_tests 0 1
40}
41
42run_test_config_0002()
43{
44	echo "-----------------------------------------------------"
45	echo "Running kernel configuration test 2 -- distro"
46	echo "Emulates:"
47	echo "CONFIG_FW_LOADER=y"
48	echo "CONFIG_FW_LOADER_USER_HELPER=y"
49	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n"
50	proc_set_ignore_sysfs_fallback 0
51	run_tests 0 0
52}
53
54run_test_config_0003()
55{
56	echo "-----------------------------------------------------"
57	echo "Running kernel configuration test 3 -- android"
58	echo "Emulates:"
59	echo "CONFIG_FW_LOADER=y"
60	echo "CONFIG_FW_LOADER_USER_HELPER=y"
61	echo "CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y"
62	run_tests 1 0
63}
64
65check_mods
66check_setup
67
68echo "Running namespace test: "
69$TEST_DIR/fw_namespace $DIR/trigger_request
70echo "OK"
71
72if [ -f $FW_FORCE_SYSFS_FALLBACK ]; then
73	run_test_config_0001
74	run_test_config_0002
75	run_test_config_0003
76else
77	echo "Running basic kernel configuration, working with your config"
78	run_tests
79fi
80