Merge branch 'misc.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-2.6-microblaze.git] / tools / testing / selftests / damon / debugfs_attrs.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3
4 test_write_result() {
5         file=$1
6         content=$2
7         orig_content=$3
8         expect_reason=$4
9         expected=$5
10
11         echo "$content" > "$file"
12         if [ $? -ne "$expected" ]
13         then
14                 echo "writing $content to $file doesn't return $expected"
15                 echo "expected because: $expect_reason"
16                 echo "$orig_content" > "$file"
17                 exit 1
18         fi
19 }
20
21 test_write_succ() {
22         test_write_result "$1" "$2" "$3" "$4" 0
23 }
24
25 test_write_fail() {
26         test_write_result "$1" "$2" "$3" "$4" 1
27 }
28
29 test_content() {
30         file=$1
31         orig_content=$2
32         expected=$3
33         expect_reason=$4
34
35         content=$(cat "$file")
36         if [ "$content" != "$expected" ]
37         then
38                 echo "reading $file expected $expected but $content"
39                 echo "expected because: $expect_reason"
40                 echo "$orig_content" > "$file"
41                 exit 1
42         fi
43 }
44
45 source ./_chk_dependency.sh
46
47 # Test attrs file
48 # ===============
49
50 file="$DBGFS/attrs"
51 orig_content=$(cat "$file")
52
53 test_write_succ "$file" "1 2 3 4 5" "$orig_content" "valid input"
54 test_write_fail "$file" "1 2 3 4" "$orig_content" "no enough fields"
55 test_write_fail "$file" "1 2 3 5 4" "$orig_content" \
56         "min_nr_regions > max_nr_regions"
57 test_content "$file" "$orig_content" "1 2 3 4 5" "successfully written"
58 echo "$orig_content" > "$file"
59
60 # Test target_ids file
61 # ====================
62
63 file="$DBGFS/target_ids"
64 orig_content=$(cat "$file")
65
66 test_write_succ "$file" "1 2 3 4" "$orig_content" "valid input"
67 test_write_succ "$file" "1 2 abc 4" "$orig_content" "still valid input"
68 test_content "$file" "$orig_content" "1 2" "non-integer was there"
69 test_write_succ "$file" "abc 2 3" "$orig_content" "the file allows wrong input"
70 test_content "$file" "$orig_content" "" "wrong input written"
71 test_write_succ "$file" "" "$orig_content" "empty input"
72 test_content "$file" "$orig_content" "" "empty input written"
73 echo "$orig_content" > "$file"
74
75 echo "PASS"