Commit | Line | Data |
---|---|---|
da56d5ca | 1 | #!/usr/bin/env bash |
ce29b371 MJ |
2 | |
3 | # SPDX-FileCopyrightText: 2023 EfficiOS Inc. | |
4 | # | |
4de89c11 MJ |
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 | ||
da44a943 MJ |
50 | if [ "$URCU_TESTS_OS_TYPE" == "linux" ]; then |
51 | plan_tests $NUM_TESTS | |
4de89c11 | 52 | |
da44a943 | 53 | diag "get_max_cpuid_from_sysfs" |
4de89c11 | 54 | |
da44a943 MJ |
55 | test_data=(0 "cpu0") |
56 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 57 | |
da44a943 MJ |
58 | test_data=(1 "cpu0" "cpu1") |
59 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 60 | |
da44a943 MJ |
61 | test_data=(1 "cpu1" "cpu0") |
62 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 63 | |
da44a943 MJ |
64 | test_data=(3 "cpu3") |
65 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 66 | |
da44a943 MJ |
67 | test_data=(99 "cpu99") |
68 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 69 | |
da44a943 MJ |
70 | test_data=(3 "cpu0" "cpu3") |
71 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 72 | |
da44a943 MJ |
73 | test_data=(3 "cpufreq" "cpuidle" "cpu0" "cpu1" "cpu2" "cpu3") |
74 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 75 | |
da44a943 MJ |
76 | test_data=(0 "cpu" "cpu0") |
77 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 78 | |
da44a943 MJ |
79 | test_data=(5 "cpu" "cpu5") |
80 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 MJ |
81 | |
82 | ||
da44a943 MJ |
83 | test_data=(-1 "toto") |
84 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 85 | |
da44a943 MJ |
86 | test_data=(-1 "cpu") |
87 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 88 | |
da44a943 MJ |
89 | test_data=(-1 "cpua" "cpud") |
90 | test_get_max_cpuid_from_sysfs "${test_data[@]}" | |
4de89c11 | 91 | |
da44a943 MJ |
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 |