| 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 | NUM_TESTS=8 |
| 22 | |
| 23 | TESTFILE=$(mktemp) |
| 24 | |
| 25 | populate_testfile() { |
| 26 | local cpumask="$1" |
| 27 | |
| 28 | # shellcheck disable=SC2059 |
| 29 | printf "$cpumask" > "$TESTFILE" |
| 30 | } |
| 31 | |
| 32 | test_test_get_cpu_mask_from_sysfs() { |
| 33 | local cpumask="$1" |
| 34 | local result |
| 35 | |
| 36 | # Without '\n' |
| 37 | populate_testfile "$cpumask" |
| 38 | result=$("${CURDIR}/get_cpu_mask_from_sysfs" "$TESTFILE") |
| 39 | test "$cpumask" == "$result" |
| 40 | ok $? "test_get_cpu_mask_from_sysfs - without '\n' expected: '$cpumask', result: '$result'" |
| 41 | |
| 42 | # With '\n' |
| 43 | populate_testfile "$cpumask\n" |
| 44 | result=$("${CURDIR}/get_cpu_mask_from_sysfs" "$TESTFILE") |
| 45 | test "$cpumask" == "$result" |
| 46 | ok $? "test_get_cpu_mask_from_sysfs - with '\n' expected: '$cpumask', result: '$result'" |
| 47 | } |
| 48 | |
| 49 | if [ "$URCU_TESTS_OS_TYPE" == "linux" ]; then |
| 50 | plan_tests $NUM_TESTS |
| 51 | |
| 52 | test_test_get_cpu_mask_from_sysfs "" |
| 53 | test_test_get_cpu_mask_from_sysfs "0" |
| 54 | test_test_get_cpu_mask_from_sysfs "0-3" |
| 55 | test_test_get_cpu_mask_from_sysfs "0,3-7,9" |
| 56 | else |
| 57 | plan_skip_all "Linux specific tests." |
| 58 | fi |