#!/bin/bash

# SPDX-FileCopyrightText: 2023 EfficiOS, Inc
#
# SPDX-License-Identifier: LGPL-2.1-only

if [ "x${UST_TESTS_SRCDIR:-}" != "x" ]; then
	UTILSSH="$UST_TESTS_SRCDIR/utils/utils.sh"
else
	UTILSSH="$(dirname "$0")/../../utils/utils.sh"
fi

# shellcheck source=../../utils/utils.sh
source "$UTILSSH"

# shellcheck source=../../utils/tap.sh
source "$UST_TESTS_SRCDIR/utils/tap.sh"

CURDIR="${UST_TESTS_BUILDDIR}/unit/libcommon"

NUM_TESTS=8

TESTFILE=$(mktemp)

populate_testfile() {
	local cpumask="$1"

	# shellcheck disable=SC2059
	printf "$cpumask" > "$TESTFILE"
}

test_test_get_cpu_mask_from_sysfs() {
	local cpumask="$1"
	local result

	# Without '\n'
	populate_testfile "$cpumask"
	result=$("${CURDIR}/get_cpu_mask_from_sysfs" "$TESTFILE")
	test "$cpumask" == "$result"
	ok $? "test_get_cpu_mask_from_sysfs - without '\n' expected: '$cpumask', result: '$result'"

	# With '\n'
	populate_testfile "$cpumask\n"
	result=$("${CURDIR}/get_cpu_mask_from_sysfs" "$TESTFILE")
	test "$cpumask" == "$result"
	ok $? "test_get_cpu_mask_from_sysfs - with '\n' expected: '$cpumask', result: '$result'"
}

plan_tests $NUM_TESTS

test_test_get_cpu_mask_from_sysfs ""
test_test_get_cpu_mask_from_sysfs "0"
test_test_get_cpu_mask_from_sysfs "0-3"
test_test_get_cpu_mask_from_sysfs "0,3-7,9"
