1 #!/usr/bin/env bash 2 3 # SPDX-FileCopyrightText: 2023 EfficiOS Inc. 4 # 5 # SPDX-License-Identifier: GPL-2.0-or-later 6 7 if [ "x${URCU_TESTS_SRCDIR:-}" != "x" ]; then 8 UTILSSH="$URCU_TESTS_SRCDIR/utils/utils.sh" 9 else 10 UTILSSH="$(dirname "$0")/../utils/utils.sh" 11 fi 12 13 # shellcheck source=../utils/utils.sh 14 source "$UTILSSH" 15 16 # shellcheck source=../../utils/tap.sh 17 source "$URCU_TESTS_SRCDIR/utils/tap.sh" 18 19 CURDIR="${URCU_TESTS_BUILDDIR}/unit" 20 21 STD_OUTPUT="/dev/null" 22 STD_ERROR="/dev/null" 23 24 NUM_TESTS=13 25 26 TESTDIR=$(mktemp -d) 27 28 populate_testdir() { 29 local cpus=("$@") 30 31 mkdir "$TESTDIR" 32 33 for i in "${cpus[@]}"; do 34 mkdir "$TESTDIR/$i" 35 done 36 } 37 38 test_get_max_cpuid_from_sysfs() { 39 local num_cpus=$1 40 shift 41 local current_cpus=("$@") 42 local result 43 44 populate_testdir "${current_cpus[@]}" >"$STD_OUTPUT" 2>"$STD_ERROR" 45 result=$("${CURDIR}/get_max_cpuid_from_sysfs" "$TESTDIR") 46 is "$result" "$num_cpus" "get_max_cpuid_from_sysfs - cpu set: '${current_cpus[*]}', expected: '$num_cpus', result: '$result'" 47 rm -rf "$TESTDIR" 48 } 49 50 if [ "$URCU_TESTS_OS_TYPE" == "linux" ]; then 51 plan_tests $NUM_TESTS 52 53 diag "get_max_cpuid_from_sysfs" 54 55 test_data=(0 "cpu0") 56 test_get_max_cpuid_from_sysfs "${test_data[@]}" 57 58 test_data=(1 "cpu0" "cpu1") 59 test_get_max_cpuid_from_sysfs "${test_data[@]}" 60 61 test_data=(1 "cpu1" "cpu0") 62 test_get_max_cpuid_from_sysfs "${test_data[@]}" 63 64 test_data=(3 "cpu3") 65 test_get_max_cpuid_from_sysfs "${test_data[@]}" 66 67 test_data=(99 "cpu99") 68 test_get_max_cpuid_from_sysfs "${test_data[@]}" 69 70 test_data=(3 "cpu0" "cpu3") 71 test_get_max_cpuid_from_sysfs "${test_data[@]}" 72 73 test_data=(3 "cpufreq" "cpuidle" "cpu0" "cpu1" "cpu2" "cpu3") 74 test_get_max_cpuid_from_sysfs "${test_data[@]}" 75 76 test_data=(0 "cpu" "cpu0") 77 test_get_max_cpuid_from_sysfs "${test_data[@]}" 78 79 test_data=(5 "cpu" "cpu5") 80 test_get_max_cpuid_from_sysfs "${test_data[@]}" 81 82 83 test_data=(-1 "toto") 84 test_get_max_cpuid_from_sysfs "${test_data[@]}" 85 86 test_data=(-1 "cpu") 87 test_get_max_cpuid_from_sysfs "${test_data[@]}" 88 89 test_data=(-1 "cpua" "cpud") 90 test_get_max_cpuid_from_sysfs "${test_data[@]}" 91 92 test_data=(-1 "cpufreq" "cpuidle") 93 test_get_max_cpuid_from_sysfs "${test_data[@]}" 94 else 95 plan_skip_all "Linux specific tests." 96 fi 97