Skip to content

Commit

Permalink
selftests: cpufreq: conform test to TAP
Browse files Browse the repository at this point in the history
This test outputs lots of information. Let's conform the core part of
the test to TAP and leave the information printing messages for now.
Include ktap_helpers.sh to print conformed logs. Use KSFT_* macros to
return the correct exit code for the kselftest framework and CIs to
understand the exit status.

Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
  • Loading branch information
musamaanjum authored and shuahkh committed May 6, 2024
1 parent 557f137 commit c7e8470
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 25 deletions.
3 changes: 1 addition & 2 deletions tools/testing/selftests/cpufreq/cpufreq.sh
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,7 @@ cpufreq_basic_tests()

count=$(count_cpufreq_managed_cpus)
if [ $count = 0 ]; then
printf "No cpu is managed by cpufreq core, exiting\n"
exit;
ktap_exit_fail_msg "No cpu is managed by cpufreq core, exiting\n"
else
printf "CPUFreq manages: $count CPUs\n\n"
fi
Expand Down
47 changes: 28 additions & 19 deletions tools/testing/selftests/cpufreq/main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ source governor.sh
source module.sh
source special-tests.sh

DIR="$(dirname $(readlink -f "$0"))"
source "${DIR}"/../kselftest/ktap_helpers.sh

FUNC=basic # do basic tests by default
OUTFILE=cpufreq_selftest
SYSFS=
CPUROOT=
CPUFREQROOT=

# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4

helpme()
{
printf "Usage: $0 [-h] [-todg args]
Expand All @@ -32,38 +32,38 @@ helpme()
[-d <driver's module name: only with \"-t modtest>\"]
[-g <governor's module name: only with \"-t modtest>\"]
\n"
exit 2
exit "${KSFT_FAIL}"
}

prerequisite()
{
msg="skip all tests:"

if [ $UID != 0 ]; then
echo $msg must be run as root >&2
exit $ksft_skip
ktap_skip_all "$msg must be run as root"
exit "${KSFT_SKIP}"
fi

taskset -p 01 $$

SYSFS=`mount -t sysfs | head -1 | awk '{ print $3 }'`

if [ ! -d "$SYSFS" ]; then
echo $msg sysfs is not mounted >&2
exit 2
ktap_skip_all "$msg sysfs is not mounted"
exit "${KSFT_SKIP}"
fi

CPUROOT=$SYSFS/devices/system/cpu
CPUFREQROOT="$CPUROOT/cpufreq"

if ! ls $CPUROOT/cpu* > /dev/null 2>&1; then
echo $msg cpus not available in sysfs >&2
exit 2
ktap_skip_all "$msg cpus not available in sysfs"
exit "${KSFT_SKIP}"
fi

if ! ls $CPUROOT/cpufreq > /dev/null 2>&1; then
echo $msg cpufreq directory not available in sysfs >&2
exit 2
ktap_skip_all "$msg cpufreq directory not available in sysfs"
exit "${KSFT_SKIP}"
fi
}

Expand Down Expand Up @@ -105,8 +105,7 @@ do_test()
count=$(count_cpufreq_managed_cpus)

if [ $count = 0 -a $FUNC != "modtest" ]; then
echo "No cpu is managed by cpufreq core, exiting"
exit 2;
ktap_exit_fail_msg "No cpu is managed by cpufreq core, exiting"
fi

case "$FUNC" in
Expand All @@ -125,8 +124,7 @@ do_test()
"modtest")
# Do we have modules in place?
if [ -z $DRIVER_MOD ] && [ -z $GOVERNOR_MOD ]; then
echo "No driver or governor module passed with -d or -g"
exit 2;
ktap_exit_fail_msg "No driver or governor module passed with -d or -g"
fi

if [ $DRIVER_MOD ]; then
Expand All @@ -137,8 +135,7 @@ do_test()
fi
else
if [ $count = 0 ]; then
echo "No cpu is managed by cpufreq core, exiting"
exit 2;
ktap_exit_fail_msg "No cpu is managed by cpufreq core, exiting"
fi

module_governor_test $GOVERNOR_MOD
Expand All @@ -162,7 +159,7 @@ do_test()
;;

*)
echo "Invalid [-f] function type"
ktap_print_msg "Invalid [-f] function type"
helpme
;;
esac
Expand All @@ -186,13 +183,25 @@ dmesg_dumps()
dmesg >> $1.dmesg_full.txt
}

ktap_print_header

# Parse arguments
parse_arguments $@

ktap_set_plan 1

# Make sure all requirements are met
prerequisite

# Run requested functions
clear_dumps $OUTFILE
do_test | tee -a $OUTFILE.txt
if [ "${PIPESTATUS[0]}" -ne 0 ]; then
exit ${PIPESTATUS[0]};
fi
dmesg_dumps $OUTFILE

ktap_test_pass "Completed successfully"

ktap_print_totals
exit "${KSFT_PASS}"
6 changes: 2 additions & 4 deletions tools/testing/selftests/cpufreq/module.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,14 @@ test_basic_insmod_rmmod()
# insert module
insmod $1
if [ $? != 0 ]; then
printf "Insmod $1 failed\n"
exit;
ktap_exit_fail_msg "Insmod $1 failed\n"
fi

printf "Removing $1 module\n"
# remove module
rmmod $1
if [ $? != 0 ]; then
printf "rmmod $1 failed\n"
exit;
ktap_exit_fail_msg "rmmod $1 failed\n"
fi

printf "\n"
Expand Down

0 comments on commit c7e8470

Please sign in to comment.