[2725] | 1 | #!/bin/sh
|
---|
| 2 | # Copyright 2008 by Denys Vlasenko
|
---|
| 3 | # Licensed under GPLv2, see file LICENSE in this source tree.
|
---|
| 4 |
|
---|
| 5 | . ./testing.sh
|
---|
| 6 |
|
---|
| 7 | # ls -ln is showing date. Need to remove that, it's variable
|
---|
| 8 | # sed: (1) "maj, min" -> "maj,min" (2) coalesce spaces
|
---|
| 9 | # cut: remove date
|
---|
| 10 | FILTER_LS="grep -v '^total ' | sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-5,9-"
|
---|
| 11 | # cut: remove size+date
|
---|
| 12 | FILTER_LS2="grep -v '^total ' | sed -e 's/, */,/g' -e 's/ */ /g' | cut -d' ' -f 1-4,9-"
|
---|
| 13 |
|
---|
[3232] | 14 | # testing "test name" "commands" "expected result" "file input" "stdin"
|
---|
[2725] | 15 |
|
---|
| 16 | rm -rf mdev.testdir
|
---|
| 17 | mkdir mdev.testdir
|
---|
| 18 | # We need mdev executable to be in chroot jail!
|
---|
| 19 | # (will still fail with dynamically linked one, though...)
|
---|
| 20 | cp ../busybox mdev.testdir/mdev
|
---|
| 21 | mkdir mdev.testdir/bin
|
---|
| 22 | cp ../busybox mdev.testdir/bin/sh 2>/dev/null # for testing cmd feature
|
---|
| 23 | mkdir mdev.testdir/etc
|
---|
| 24 | mkdir mdev.testdir/dev
|
---|
| 25 | mkdir -p mdev.testdir/sys/block/sda
|
---|
| 26 | echo "8:0" >mdev.testdir/sys/block/sda/dev
|
---|
| 27 |
|
---|
| 28 | # env - PATH=$PATH: on some systems chroot binary won't otherwise be found
|
---|
| 29 |
|
---|
| 30 | optional STATIC FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 31 | testing "mdev add /block/sda" \
|
---|
| 32 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 33 | ls -ln mdev.testdir/dev | $FILTER_LS" \
|
---|
| 34 | "\
|
---|
| 35 | brw-rw---- 1 0 0 8,0 sda
|
---|
| 36 | " \
|
---|
| 37 | "" ""
|
---|
| 38 | SKIP=
|
---|
| 39 |
|
---|
| 40 | # continuing to use directory structure from prev test
|
---|
| 41 | optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 42 | testing "mdev deletes /block/sda" \
|
---|
| 43 | "env - PATH=$PATH ACTION=remove DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 44 | ls -ln mdev.testdir/dev | $FILTER_LS" \
|
---|
| 45 | "\
|
---|
| 46 | " \
|
---|
| 47 | "" ""
|
---|
| 48 | SKIP=
|
---|
| 49 |
|
---|
| 50 | # continuing to use directory structure from prev test
|
---|
| 51 | rm -rf mdev.testdir/dev/*
|
---|
| 52 | echo ".* 1:1 666" >mdev.testdir/etc/mdev.conf
|
---|
| 53 | echo "sda 2:2 444" >>mdev.testdir/etc/mdev.conf
|
---|
| 54 | optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 55 | testing "mdev stops on first rule" \
|
---|
| 56 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 57 | ls -ln mdev.testdir/dev | $FILTER_LS" \
|
---|
| 58 | "\
|
---|
| 59 | brw-rw-rw- 1 1 1 8,0 sda
|
---|
| 60 | " \
|
---|
| 61 | "" ""
|
---|
| 62 | SKIP=
|
---|
| 63 |
|
---|
| 64 | # continuing to use directory structure from prev test
|
---|
| 65 | rm -rf mdev.testdir/dev/*
|
---|
| 66 | echo "-.* 1:1 666" >mdev.testdir/etc/mdev.conf
|
---|
| 67 | echo "sda 2:2 444" >>mdev.testdir/etc/mdev.conf
|
---|
| 68 | optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 69 | testing "mdev does not stop on dash-rule" \
|
---|
| 70 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 71 | ls -ln mdev.testdir/dev | $FILTER_LS" \
|
---|
| 72 | "\
|
---|
| 73 | br--r--r-- 1 2 2 8,0 sda
|
---|
| 74 | " \
|
---|
| 75 | "" ""
|
---|
| 76 | SKIP=
|
---|
| 77 |
|
---|
| 78 | # continuing to use directory structure from prev test
|
---|
| 79 | rm -rf mdev.testdir/dev/*
|
---|
| 80 | echo "\$MODALIAS=qw 1:1 666" >mdev.testdir/etc/mdev.conf
|
---|
| 81 | echo "\$MODALIAS=qw. 2:2 444" >>mdev.testdir/etc/mdev.conf
|
---|
| 82 | echo "\$MODALIAS=qw. 3:3 400" >>mdev.testdir/etc/mdev.conf
|
---|
| 83 | optional STATIC FEATURE_MDEV_CONF FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 84 | testing "mdev \$ENVVAR=regex match" \
|
---|
| 85 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda MODALIAS=qwe chroot mdev.testdir /mdev 2>&1;
|
---|
| 86 | ls -ln mdev.testdir/dev | $FILTER_LS" \
|
---|
| 87 | "\
|
---|
| 88 | br--r--r-- 1 2 2 8,0 sda
|
---|
| 89 | " \
|
---|
| 90 | "" ""
|
---|
| 91 | SKIP=
|
---|
| 92 |
|
---|
| 93 | # continuing to use directory structure from prev test
|
---|
| 94 | rm -rf mdev.testdir/dev/*
|
---|
| 95 | echo "sda 0:0 444 >disk/scsiA" >mdev.testdir/etc/mdev.conf
|
---|
| 96 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 97 | testing "mdev move/symlink rule '>bar/baz'" \
|
---|
| 98 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 99 | ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
---|
| 100 | "\
|
---|
| 101 | mdev.testdir/dev:
|
---|
| 102 | drwxr-xr-x 2 0 0 disk
|
---|
| 103 | lrwxrwxrwx 1 0 0 sda -> disk/scsiA
|
---|
| 104 |
|
---|
| 105 | mdev.testdir/dev/disk:
|
---|
| 106 | br--r--r-- 1 0 0 scsiA
|
---|
| 107 | " \
|
---|
| 108 | "" ""
|
---|
| 109 | SKIP=
|
---|
| 110 |
|
---|
| 111 | # continuing to use directory structure from prev test
|
---|
| 112 | rm -rf mdev.testdir/dev/*
|
---|
| 113 | echo "sda 0:0 444 >disk/" >mdev.testdir/etc/mdev.conf
|
---|
| 114 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 115 | testing "mdev move/symlink rule '>bar/'" \
|
---|
| 116 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 117 | ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
---|
| 118 | "\
|
---|
| 119 | mdev.testdir/dev:
|
---|
| 120 | drwxr-xr-x 2 0 0 disk
|
---|
| 121 | lrwxrwxrwx 1 0 0 sda -> disk/sda
|
---|
| 122 |
|
---|
| 123 | mdev.testdir/dev/disk:
|
---|
| 124 | br--r--r-- 1 0 0 sda
|
---|
| 125 | " \
|
---|
| 126 | "" ""
|
---|
| 127 | SKIP=
|
---|
| 128 |
|
---|
| 129 | # continuing to use directory structure from prev test
|
---|
| 130 | rm -rf mdev.testdir/dev/*
|
---|
[3232] | 131 | echo "sda 0:0 444 =disk/sd/a" >mdev.testdir/etc/mdev.conf
|
---|
| 132 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 133 | testing "mdev move rule '=bar/baz/fname'" \
|
---|
| 134 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 135 | ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
---|
| 136 | "\
|
---|
| 137 | mdev.testdir/dev:
|
---|
| 138 | drwxr-xr-x 3 0 0 disk
|
---|
| 139 |
|
---|
| 140 | mdev.testdir/dev/disk:
|
---|
| 141 | drwxr-xr-x 2 0 0 sd
|
---|
| 142 |
|
---|
| 143 | mdev.testdir/dev/disk/sd:
|
---|
| 144 | br--r--r-- 1 0 0 a
|
---|
| 145 | " \
|
---|
| 146 | "" ""
|
---|
| 147 | SKIP=
|
---|
| 148 |
|
---|
| 149 | # continuing to use directory structure from prev test
|
---|
| 150 | rm -rf mdev.testdir/dev/*
|
---|
[2725] | 151 | # here we complicate things by having non-matching group 1 and using %0
|
---|
| 152 | echo "s([0-9])*d([a-z]+) 0:0 644 >sd/%2_%0" >mdev.testdir/etc/mdev.conf
|
---|
| 153 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_MDEV_RENAME_REGEXP FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_LS_SORTFILES
|
---|
| 154 | testing "mdev regexp substring match + replace" \
|
---|
| 155 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 156 | ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
---|
| 157 | "\
|
---|
| 158 | mdev.testdir/dev:
|
---|
| 159 | drwxr-xr-x 2 0 0 sd
|
---|
| 160 | lrwxrwxrwx 1 0 0 sda -> sd/a_sda
|
---|
| 161 |
|
---|
| 162 | mdev.testdir/dev/sd:
|
---|
| 163 | brw-r--r-- 1 0 0 a_sda
|
---|
| 164 | " \
|
---|
| 165 | "" ""
|
---|
| 166 | SKIP=
|
---|
| 167 |
|
---|
| 168 | # continuing to use directory structure from prev test
|
---|
| 169 | rm -rf mdev.testdir/dev/*
|
---|
| 170 | echo "sda 0:0 644 @echo @echo TEST" >mdev.testdir/etc/mdev.conf
|
---|
| 171 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_EXEC FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_SH_IS_ASH
|
---|
| 172 | testing "mdev command" \
|
---|
| 173 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 174 | ls -lnR mdev.testdir/dev | $FILTER_LS" \
|
---|
| 175 | "\
|
---|
| 176 | @echo TEST
|
---|
| 177 | mdev.testdir/dev:
|
---|
| 178 | brw-r--r-- 1 0 0 8,0 sda
|
---|
| 179 | " \
|
---|
| 180 | "" ""
|
---|
| 181 | SKIP=
|
---|
| 182 |
|
---|
| 183 | # continuing to use directory structure from prev test
|
---|
| 184 | rm -rf mdev.testdir/dev/*
|
---|
| 185 | echo "sda 0:0 644 =block/ @echo @echo TEST:\$MDEV" >mdev.testdir/etc/mdev.conf
|
---|
| 186 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_MDEV_EXEC FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_SH_IS_ASH
|
---|
| 187 | testing "mdev move and command" \
|
---|
| 188 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 189 | ls -lnR mdev.testdir/dev | $FILTER_LS2" \
|
---|
| 190 | "\
|
---|
| 191 | @echo TEST:block/sda
|
---|
| 192 | mdev.testdir/dev:
|
---|
| 193 | drwxr-xr-x 2 0 0 block
|
---|
| 194 |
|
---|
| 195 | mdev.testdir/dev/block:
|
---|
| 196 | brw-r--r-- 1 0 0 sda
|
---|
| 197 | " \
|
---|
| 198 | "" ""
|
---|
| 199 | SKIP=
|
---|
| 200 |
|
---|
| 201 | # continuing to use directory structure from prev test
|
---|
| 202 | rm -rf mdev.testdir/dev/*
|
---|
| 203 | echo "@8,0 0:1 644" >mdev.testdir/etc/mdev.conf
|
---|
| 204 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_MDEV_RENAME_REGEXP FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME
|
---|
| 205 | testing "mdev #maj,min and no explicit uid" \
|
---|
| 206 | "env - PATH=$PATH ACTION=add DEVPATH=/block/sda chroot mdev.testdir /mdev 2>&1;
|
---|
| 207 | ls -lnR mdev.testdir/dev | $FILTER_LS" \
|
---|
| 208 | "\
|
---|
| 209 | mdev.testdir/dev:
|
---|
| 210 | brw-r--r-- 1 0 1 8,0 sda
|
---|
| 211 | " \
|
---|
| 212 | "" ""
|
---|
| 213 | SKIP=
|
---|
| 214 |
|
---|
| 215 | # continuing to use directory structure from prev test
|
---|
| 216 | rm -rf mdev.testdir/dev/*
|
---|
| 217 | mkdir -p mdev.testdir/sys/class/tty/capi
|
---|
| 218 | echo "191:0" >mdev.testdir/sys/class/tty/capi/dev
|
---|
| 219 | mkdir -p mdev.testdir/sys/class/tty/capi1
|
---|
| 220 | echo "191:1" >mdev.testdir/sys/class/tty/capi1/dev
|
---|
| 221 | mkdir -p mdev.testdir/sys/class/tty/capi20
|
---|
| 222 | echo "191:20" >mdev.testdir/sys/class/tty/capi20/dev
|
---|
| 223 | echo "capi 0:0 0660 =capi20" >mdev.testdir/etc/mdev.conf
|
---|
| 224 | echo "capi([0-9]) 0:0 0660 =capi20.0%1" >>mdev.testdir/etc/mdev.conf
|
---|
| 225 | echo "capi([0-9]*) 0:0 0660 =capi20.%1" >>mdev.testdir/etc/mdev.conf
|
---|
| 226 | # mdev invocation with DEVPATH=/class/tty/capi20 was deleting /dev/capi20
|
---|
| 227 | optional STATIC FEATURE_MDEV_CONF FEATURE_MDEV_RENAME FEATURE_MDEV_RENAME_REGEXP FEATURE_LS_RECURSIVE FEATURE_LS_TIMESTAMPS FEATURE_LS_USERNAME FEATURE_LS_SORTFILES
|
---|
| 228 | testing "move rule does not delete node with name == device_name" \
|
---|
| 229 | "\
|
---|
| 230 | env - PATH=$PATH ACTION=add DEVPATH=/class/tty/capi chroot mdev.testdir /mdev 2>&1;
|
---|
| 231 | env - PATH=$PATH ACTION=add DEVPATH=/class/tty/capi1 chroot mdev.testdir /mdev 2>&1;
|
---|
| 232 | env - PATH=$PATH ACTION=add DEVPATH=/class/tty/capi20 chroot mdev.testdir /mdev 2>&1;
|
---|
| 233 | ls -lnR mdev.testdir/dev | $FILTER_LS" \
|
---|
| 234 | "\
|
---|
| 235 | mdev.testdir/dev:
|
---|
| 236 | crw-rw---- 1 0 0 191,0 capi20
|
---|
| 237 | crw-rw---- 1 0 0 191,1 capi20.01
|
---|
| 238 | crw-rw---- 1 0 0 191,20 capi20.20
|
---|
| 239 | " \
|
---|
| 240 | "" ""
|
---|
| 241 | SKIP=
|
---|
| 242 |
|
---|
| 243 | # clean up
|
---|
| 244 | rm -rf mdev.testdir
|
---|
| 245 |
|
---|
| 246 | exit $FAILCOUNT
|
---|