Blame view
tools/bootconfig/test-bootconfig.sh
3.9 KB
081c65360 tools: bootconfig... |
1 2 3 4 |
#!/bin/sh # SPDX-License-Identifier: GPL-2.0-only echo "Boot config test script" |
306b69dce bootconfig: Suppo... |
5 6 7 8 9 10 |
if [ -d "$1" ]; then TESTDIR=$1 else TESTDIR=. fi BOOTCONF=${TESTDIR}/bootconfig |
e1cef2d4c tools/bootconfig:... |
11 |
ALIGN=4 |
306b69dce bootconfig: Suppo... |
12 13 14 15 |
INITRD=`mktemp ${TESTDIR}/initrd-XXXX` TEMPCONF=`mktemp ${TESTDIR}/temp-XXXX.bconf` OUTFILE=`mktemp ${TESTDIR}/tempout-XXXX` |
081c65360 tools: bootconfig... |
16 17 18 |
NG=0 cleanup() { |
5f811c57c bootconfig: Add a... |
19 |
rm -f $INITRD $TEMPCONF $OUTFILE |
081c65360 tools: bootconfig... |
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
exit $NG } trap cleanup EXIT TERM NO=1 xpass() { # pass test command echo "test case $NO ($3)... " if ! ($@ && echo "\t\t[OK]"); then echo "\t\t[NG]"; NG=$((NG + 1)) fi NO=$((NO + 1)) } xfail() { # fail test command echo "test case $NO ($3)... " if ! (! $@ && echo "\t\t[OK]"); then echo "\t\t[NG]"; NG=$((NG + 1)) fi NO=$((NO + 1)) } echo "Basic command test" xpass $BOOTCONF $INITRD echo "Delete command should success without bootconfig" xpass $BOOTCONF -d $INITRD dd if=/dev/zero of=$INITRD bs=4096 count=1 echo "key = value;" > $TEMPCONF bconf_size=$(stat -c %s $TEMPCONF) initrd_size=$(stat -c %s $INITRD) echo "Apply command test" xpass $BOOTCONF -a $TEMPCONF $INITRD new_size=$(stat -c %s $INITRD) |
5414251aa tools/bootconfig:... |
57 58 |
echo "Show command test" xpass $BOOTCONF $INITRD |
081c65360 tools: bootconfig... |
59 |
echo "File size check" |
e1cef2d4c tools/bootconfig:... |
60 61 62 63 |
total_size=$(expr $bconf_size + $initrd_size + 9 + 12 + $ALIGN - 1 ) total_size=$(expr $total_size / $ALIGN) total_size=$(expr $total_size \* $ALIGN) xpass test $new_size -eq $total_size |
081c65360 tools: bootconfig... |
64 65 66 67 68 69 70 71 72 73 74 75 76 |
echo "Apply command repeat test" xpass $BOOTCONF -a $TEMPCONF $INITRD echo "File size check" xpass test $new_size -eq $(stat -c %s $INITRD) echo "Delete command check" xpass $BOOTCONF -d $INITRD echo "File size check" new_size=$(stat -c %s $INITRD) xpass test $new_size -eq $initrd_size |
973780011 tools/bootconfig:... |
77 |
echo "No error messge while applying" |
973780011 tools/bootconfig:... |
78 79 80 81 82 |
dd if=/dev/zero of=$INITRD bs=4096 count=1 printf " \0\0\0 \0\0\0" >> $INITRD $BOOTCONF -a $TEMPCONF $INITRD > $OUTFILE 2>&1 xfail grep -i "failed" $OUTFILE xfail grep -i "error" $OUTFILE |
973780011 tools/bootconfig:... |
83 |
|
081c65360 tools: bootconfig... |
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
echo "Max node number check" echo -n > $TEMPCONF for i in `seq 1 1024` ; do echo "node$i" >> $TEMPCONF done xpass $BOOTCONF -a $TEMPCONF $INITRD echo "badnode" >> $TEMPCONF xfail $BOOTCONF -a $TEMPCONF $INITRD echo "Max filesize check" # Max size is 32767 (including terminal byte) echo -n "data = \"" > $TEMPCONF dd if=/dev/urandom bs=768 count=32 | base64 -w0 >> $TEMPCONF echo "\"" >> $TEMPCONF xfail $BOOTCONF -a $TEMPCONF $INITRD truncate -s 32764 $TEMPCONF echo "\"" >> $TEMPCONF # add 2 bytes + terminal ('\" \0') xpass $BOOTCONF -a $TEMPCONF $INITRD |
5f811c57c bootconfig: Add a... |
107 108 109 110 111 112 113 114 115 116 117 118 |
echo "Adding same-key values" cat > $TEMPCONF << EOF key = bar, baz key += qux EOF echo > $INITRD xpass $BOOTCONF -a $TEMPCONF $INITRD $BOOTCONF $INITRD > $OUTFILE xpass grep -q "bar" $OUTFILE xpass grep -q "baz" $OUTFILE xpass grep -q "qux" $OUTFILE |
814641928 tools/bootconfig:... |
119 120 121 122 123 124 125 126 127 128 129 130 |
echo "Override same-key values" cat > $TEMPCONF << EOF key = bar, baz key := qux EOF echo > $INITRD xpass $BOOTCONF -a $TEMPCONF $INITRD $BOOTCONF $INITRD > $OUTFILE xfail grep -q "bar" $OUTFILE xfail grep -q "baz" $OUTFILE xpass grep -q "qux" $OUTFILE |
5414251aa tools/bootconfig:... |
131 132 133 134 135 136 |
echo "Double/single quotes test" echo "key = '\"string\"';" > $TEMPCONF $BOOTCONF -a $TEMPCONF $INITRD $BOOTCONF $INITRD > $TEMPCONF cat $TEMPCONF xpass grep \'\"string\"\' $TEMPCONF |
1d210c166 tools/bootconfig:... |
137 138 139 140 141 142 143 144 145 146 147 |
echo "Repeat same-key tree" cat > $TEMPCONF << EOF foo bar foo { buz } EOF echo > $INITRD xpass $BOOTCONF -a $TEMPCONF $INITRD $BOOTCONF $INITRD > $OUTFILE xpass grep -q "bar" $OUTFILE |
2f5fb5556 tools/bootconfig:... |
148 149 150 151 152 153 154 155 156 157 158 159 |
echo "Remove/keep tailing spaces" cat > $TEMPCONF << EOF foo = val # comment bar = "val2 " # comment EOF echo > $INITRD xpass $BOOTCONF -a $TEMPCONF $INITRD $BOOTCONF $INITRD > $OUTFILE xfail grep -q val[[:space:]] $OUTFILE xpass grep -q val2[[:space:]] $OUTFILE |
081c65360 tools: bootconfig... |
160 161 162 163 164 165 166 167 168 |
echo "=== expected failure cases ===" for i in samples/bad-* ; do xfail $BOOTCONF -a $i $INITRD done echo "=== expected success cases ===" for i in samples/good-* ; do xpass $BOOTCONF -a $i $INITRD done |
98d0a685c tools/bootconfig:... |
169 170 171 172 173 |
echo echo "=== Summary ===" echo "# of Passed: $(expr $NO - $NG - 1)" echo "# of Failed: $NG" |
081c65360 tools: bootconfig... |
174 175 176 177 178 |
echo if [ $NG -eq 0 ]; then echo "All tests passed" else echo "$NG tests failed" |
98d0a685c tools/bootconfig:... |
179 |
exit 1 |
081c65360 tools: bootconfig... |
180 |
fi |