forked from mirrors/linux
		
	selftests: firmware: return Kselftest Skip code for skipped tests
When firmware test(s) get skipped because of unmet dependencies and/or unsupported configuration, it returns 0 which is treated as a pass by the Kselftest framework. This leads to false positive result even when the test could not be run. Change it to return kselftest skip code when a test gets skipped to clearly report that the test could not be run. Kselftest framework SKIP code is 4 and the framework prints appropriate messages to indicate that the test is skipped. Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org> Reviewed-by: Luis R. Rodriguez <mcgrof@kernel.org> Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
This commit is contained in:
		
							parent
							
								
									7357dcf2ef
								
							
						
					
					
						commit
						a6a9be9270
					
				
					 3 changed files with 10 additions and 5 deletions
				
			
		| 
						 | 
					@ -74,7 +74,7 @@ load_fw_custom()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if [ ! -e "$DIR"/trigger_custom_fallback ]; then
 | 
						if [ ! -e "$DIR"/trigger_custom_fallback ]; then
 | 
				
			||||||
		echo "$0: custom fallback trigger not present, ignoring test" >&2
 | 
							echo "$0: custom fallback trigger not present, ignoring test" >&2
 | 
				
			||||||
		return 1
 | 
							exit $ksft_skip
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local name="$1"
 | 
						local name="$1"
 | 
				
			||||||
| 
						 | 
					@ -107,7 +107,7 @@ load_fw_custom_cancel()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if [ ! -e "$DIR"/trigger_custom_fallback ]; then
 | 
						if [ ! -e "$DIR"/trigger_custom_fallback ]; then
 | 
				
			||||||
		echo "$0: canceling custom fallback trigger not present, ignoring test" >&2
 | 
							echo "$0: canceling custom fallback trigger not present, ignoring test" >&2
 | 
				
			||||||
		return 1
 | 
							exit $ksft_skip
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	local name="$1"
 | 
						local name="$1"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,7 @@ fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ ! -e "$DIR"/trigger_async_request ]; then
 | 
					if [ ! -e "$DIR"/trigger_async_request ]; then
 | 
				
			||||||
	echo "$0: empty filename: async trigger not present, ignoring test" >&2
 | 
						echo "$0: empty filename: async trigger not present, ignoring test" >&2
 | 
				
			||||||
 | 
						exit $ksft_skip
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	if printf '\000' >"$DIR"/trigger_async_request 2> /dev/null; then
 | 
						if printf '\000' >"$DIR"/trigger_async_request 2> /dev/null; then
 | 
				
			||||||
		echo "$0: empty filename should not succeed (async)" >&2
 | 
							echo "$0: empty filename should not succeed (async)" >&2
 | 
				
			||||||
| 
						 | 
					@ -69,6 +70,7 @@ fi
 | 
				
			||||||
# Try the asynchronous version too
 | 
					# Try the asynchronous version too
 | 
				
			||||||
if [ ! -e "$DIR"/trigger_async_request ]; then
 | 
					if [ ! -e "$DIR"/trigger_async_request ]; then
 | 
				
			||||||
	echo "$0: firmware loading: async trigger not present, ignoring test" >&2
 | 
						echo "$0: firmware loading: async trigger not present, ignoring test" >&2
 | 
				
			||||||
 | 
						exit $ksft_skip
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	if ! echo -n "$NAME" >"$DIR"/trigger_async_request ; then
 | 
						if ! echo -n "$NAME" >"$DIR"/trigger_async_request ; then
 | 
				
			||||||
		echo "$0: could not trigger async request" >&2
 | 
							echo "$0: could not trigger async request" >&2
 | 
				
			||||||
| 
						 | 
					@ -89,7 +91,7 @@ test_config_present()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if [ ! -f $DIR/reset ]; then
 | 
						if [ ! -f $DIR/reset ]; then
 | 
				
			||||||
		echo "Configuration triggers not present, ignoring test"
 | 
							echo "Configuration triggers not present, ignoring test"
 | 
				
			||||||
		exit 0
 | 
							exit $ksft_skip
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,11 +9,14 @@ DIR=/sys/devices/virtual/misc/test_firmware
 | 
				
			||||||
PROC_CONFIG="/proc/config.gz"
 | 
					PROC_CONFIG="/proc/config.gz"
 | 
				
			||||||
TEST_DIR=$(dirname $0)
 | 
					TEST_DIR=$(dirname $0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Kselftest framework requirement - SKIP code is 4.
 | 
				
			||||||
 | 
					ksft_skip=4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
print_reqs_exit()
 | 
					print_reqs_exit()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	echo "You must have the following enabled in your kernel:" >&2
 | 
						echo "You must have the following enabled in your kernel:" >&2
 | 
				
			||||||
	cat $TEST_DIR/config >&2
 | 
						cat $TEST_DIR/config >&2
 | 
				
			||||||
	exit 1
 | 
						exit $ksft_skip
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
test_modprobe()
 | 
					test_modprobe()
 | 
				
			||||||
| 
						 | 
					@ -88,7 +91,7 @@ verify_reqs()
 | 
				
			||||||
	if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then
 | 
						if [ "$TEST_REQS_FW_SYSFS_FALLBACK" = "yes" ]; then
 | 
				
			||||||
		if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
 | 
							if [ ! "$HAS_FW_LOADER_USER_HELPER" = "yes" ]; then
 | 
				
			||||||
			echo "usermode helper disabled so ignoring test"
 | 
								echo "usermode helper disabled so ignoring test"
 | 
				
			||||||
			exit 0
 | 
								exit $ksft_skip
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue