mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-22 20:23:57 +08:00
selftests/damon: split test cases
Currently, the single test program, debugfs.sh, contains all test cases for DAMON. When one of the cases fails, finding which case is failed from the test log is not so easy, and all remaining tests will be skipped. To improve the situation, this commit splits the single program into small test programs having their own names. Link: https://lkml.kernel.org/r/20211201150440.1088-12-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Cc: Brendan Higgins <brendanhiggins@google.com> Cc: Shuah Khan <shuah@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b4a002889d
commit
9ab3b0c8ef
@ -3,7 +3,8 @@
|
||||
|
||||
TEST_GEN_FILES += huge_count_read_write
|
||||
|
||||
TEST_FILES = _chk_dependency.sh
|
||||
TEST_PROGS = debugfs_attrs.sh
|
||||
TEST_FILES = _chk_dependency.sh _debugfs_common.sh
|
||||
TEST_PROGS = debugfs_attrs.sh debugfs_schemes.sh debugfs_target_ids.sh
|
||||
TEST_PROGS += debugfs_empty_targets.sh debugfs_huge_count_read_write.sh
|
||||
|
||||
include ../lib.mk
|
||||
|
52
tools/testing/selftests/damon/_debugfs_common.sh
Normal file
52
tools/testing/selftests/damon/_debugfs_common.sh
Normal file
@ -0,0 +1,52 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
test_write_result() {
|
||||
file=$1
|
||||
content=$2
|
||||
orig_content=$3
|
||||
expect_reason=$4
|
||||
expected=$5
|
||||
|
||||
echo "$content" > "$file"
|
||||
if [ $? -ne "$expected" ]
|
||||
then
|
||||
echo "writing $content to $file doesn't return $expected"
|
||||
echo "expected because: $expect_reason"
|
||||
echo "$orig_content" > "$file"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_write_succ() {
|
||||
test_write_result "$1" "$2" "$3" "$4" 0
|
||||
}
|
||||
|
||||
test_write_fail() {
|
||||
test_write_result "$1" "$2" "$3" "$4" 1
|
||||
}
|
||||
|
||||
test_content() {
|
||||
file=$1
|
||||
orig_content=$2
|
||||
expected=$3
|
||||
expect_reason=$4
|
||||
|
||||
content=$(cat "$file")
|
||||
if [ "$content" != "$expected" ]
|
||||
then
|
||||
echo "reading $file expected $expected but $content"
|
||||
echo "expected because: $expect_reason"
|
||||
echo "$orig_content" > "$file"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
source ./_chk_dependency.sh
|
||||
|
||||
damon_onoff="$DBGFS/monitor_on"
|
||||
if [ $(cat "$damon_onoff") = "on" ]
|
||||
then
|
||||
echo "monitoring is on"
|
||||
exit $ksft_skip
|
||||
fi
|
@ -1,57 +1,7 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
test_write_result() {
|
||||
file=$1
|
||||
content=$2
|
||||
orig_content=$3
|
||||
expect_reason=$4
|
||||
expected=$5
|
||||
|
||||
echo "$content" > "$file"
|
||||
if [ $? -ne "$expected" ]
|
||||
then
|
||||
echo "writing $content to $file doesn't return $expected"
|
||||
echo "expected because: $expect_reason"
|
||||
echo "$orig_content" > "$file"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_write_succ() {
|
||||
test_write_result "$1" "$2" "$3" "$4" 0
|
||||
}
|
||||
|
||||
test_write_fail() {
|
||||
test_write_result "$1" "$2" "$3" "$4" 1
|
||||
}
|
||||
|
||||
test_content() {
|
||||
file=$1
|
||||
orig_content=$2
|
||||
expected=$3
|
||||
expect_reason=$4
|
||||
|
||||
content=$(cat "$file")
|
||||
if [ "$content" != "$expected" ]
|
||||
then
|
||||
echo "reading $file expected $expected but $content"
|
||||
echo "expected because: $expect_reason"
|
||||
echo "$orig_content" > "$file"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
source ./_chk_dependency.sh
|
||||
|
||||
ksft_skip=4
|
||||
|
||||
damon_onoff="$DBGFS/monitor_on"
|
||||
if [ $(cat "$damon_onoff") = "on" ]
|
||||
then
|
||||
echo "monitoring is on"
|
||||
exit $ksft_skip
|
||||
fi
|
||||
source _debugfs_common.sh
|
||||
|
||||
# Test attrs file
|
||||
# ===============
|
||||
@ -65,62 +15,3 @@ test_write_fail "$file" "1 2 3 5 4" "$orig_content" \
|
||||
"min_nr_regions > max_nr_regions"
|
||||
test_content "$file" "$orig_content" "1 2 3 4 5" "successfully written"
|
||||
echo "$orig_content" > "$file"
|
||||
|
||||
# Test schemes file
|
||||
# =================
|
||||
|
||||
file="$DBGFS/schemes"
|
||||
orig_content=$(cat "$file")
|
||||
|
||||
test_write_succ "$file" "1 2 3 4 5 6 4 0 0 0 1 2 3 1 100 3 2 1" \
|
||||
"$orig_content" "valid input"
|
||||
test_write_fail "$file" "1 2
|
||||
3 4 5 6 3 0 0 0 1 2 3 1 100 3 2 1" "$orig_content" "multi lines"
|
||||
test_write_succ "$file" "" "$orig_content" "disabling"
|
||||
test_write_fail "$file" "2 1 2 1 10 1 3 10 1 1 1 1 1 1 1 1 2 3" \
|
||||
"$orig_content" "wrong condition ranges"
|
||||
echo "$orig_content" > "$file"
|
||||
|
||||
# Test target_ids file
|
||||
# ====================
|
||||
|
||||
file="$DBGFS/target_ids"
|
||||
orig_content=$(cat "$file")
|
||||
|
||||
test_write_succ "$file" "1 2 3 4" "$orig_content" "valid input"
|
||||
test_write_succ "$file" "1 2 abc 4" "$orig_content" "still valid input"
|
||||
test_content "$file" "$orig_content" "1 2" "non-integer was there"
|
||||
test_write_succ "$file" "abc 2 3" "$orig_content" "the file allows wrong input"
|
||||
test_content "$file" "$orig_content" "" "wrong input written"
|
||||
test_write_succ "$file" "" "$orig_content" "empty input"
|
||||
test_content "$file" "$orig_content" "" "empty input written"
|
||||
echo "$orig_content" > "$file"
|
||||
|
||||
# Test empty targets case
|
||||
# =======================
|
||||
|
||||
orig_target_ids=$(cat "$DBGFS/target_ids")
|
||||
echo "" > "$DBGFS/target_ids"
|
||||
orig_monitor_on=$(cat "$DBGFS/monitor_on")
|
||||
test_write_fail "$DBGFS/monitor_on" "on" "orig_monitor_on" "empty target ids"
|
||||
echo "$orig_target_ids" > "$DBGFS/target_ids"
|
||||
|
||||
# Test huge count read write
|
||||
# ==========================
|
||||
|
||||
dmesg -C
|
||||
|
||||
for file in "$DBGFS/"*
|
||||
do
|
||||
./huge_count_read_write "$file"
|
||||
done
|
||||
|
||||
if dmesg | grep -q WARNING
|
||||
then
|
||||
dmesg
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "PASS"
|
||||
|
13
tools/testing/selftests/damon/debugfs_empty_targets.sh
Normal file
13
tools/testing/selftests/damon/debugfs_empty_targets.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
source _debugfs_common.sh
|
||||
|
||||
# Test empty targets case
|
||||
# =======================
|
||||
|
||||
orig_target_ids=$(cat "$DBGFS/target_ids")
|
||||
echo "" > "$DBGFS/target_ids"
|
||||
orig_monitor_on=$(cat "$DBGFS/monitor_on")
|
||||
test_write_fail "$DBGFS/monitor_on" "on" "orig_monitor_on" "empty target ids"
|
||||
echo "$orig_target_ids" > "$DBGFS/target_ids"
|
@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
source _debugfs_common.sh
|
||||
|
||||
# Test huge count read write
|
||||
# ==========================
|
||||
|
||||
dmesg -C
|
||||
|
||||
for file in "$DBGFS/"*
|
||||
do
|
||||
./huge_count_read_write "$file"
|
||||
done
|
||||
|
||||
if dmesg | grep -q WARNING
|
||||
then
|
||||
dmesg
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi
|
19
tools/testing/selftests/damon/debugfs_schemes.sh
Normal file
19
tools/testing/selftests/damon/debugfs_schemes.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
source _debugfs_common.sh
|
||||
|
||||
# Test schemes file
|
||||
# =================
|
||||
|
||||
file="$DBGFS/schemes"
|
||||
orig_content=$(cat "$file")
|
||||
|
||||
test_write_succ "$file" "1 2 3 4 5 6 4 0 0 0 1 2 3 1 100 3 2 1" \
|
||||
"$orig_content" "valid input"
|
||||
test_write_fail "$file" "1 2
|
||||
3 4 5 6 3 0 0 0 1 2 3 1 100 3 2 1" "$orig_content" "multi lines"
|
||||
test_write_succ "$file" "" "$orig_content" "disabling"
|
||||
test_write_fail "$file" "2 1 2 1 10 1 3 10 1 1 1 1 1 1 1 1 2 3" \
|
||||
"$orig_content" "wrong condition ranges"
|
||||
echo "$orig_content" > "$file"
|
19
tools/testing/selftests/damon/debugfs_target_ids.sh
Normal file
19
tools/testing/selftests/damon/debugfs_target_ids.sh
Normal file
@ -0,0 +1,19 @@
|
||||
#!/bin/bash
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
source _debugfs_common.sh
|
||||
|
||||
# Test target_ids file
|
||||
# ====================
|
||||
|
||||
file="$DBGFS/target_ids"
|
||||
orig_content=$(cat "$file")
|
||||
|
||||
test_write_succ "$file" "1 2 3 4" "$orig_content" "valid input"
|
||||
test_write_succ "$file" "1 2 abc 4" "$orig_content" "still valid input"
|
||||
test_content "$file" "$orig_content" "1 2" "non-integer was there"
|
||||
test_write_succ "$file" "abc 2 3" "$orig_content" "the file allows wrong input"
|
||||
test_content "$file" "$orig_content" "" "wrong input written"
|
||||
test_write_succ "$file" "" "$orig_content" "empty input"
|
||||
test_content "$file" "$orig_content" "" "empty input written"
|
||||
echo "$orig_content" > "$file"
|
Loading…
Reference in New Issue
Block a user