TEST-17: make the test test

'! grep -v' does *not* test that there are no matching lines.
Instead, it checks that whether there are any non-matching lines.

And of course, for the test to fail, '! grep' cannot be part of
an expression with &&.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2021-04-08 20:21:50 +02:00
parent 68bb821e21
commit b1e1e5ac25
+24 -33
View File
@@ -4,12 +4,9 @@ set -o pipefail
mkdir -p /run/udev/rules.d/
! test -f /run/udev/tags/added/c1:3 &&
! test -f /run/udev/tags/changed/c1:3 &&
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*'
test ! -f /run/udev/tags/added/c1:3
test ! -f /run/udev/tags/changed/c1:3
udevadm info /dev/null | grep -E 'E: (TAGS|CURRENT_TAGS)=.*:(added|changed):' && exit 1
cat >/run/udev/rules.d/50-testsuite.rules <<EOF
ACTION=="add", SUBSYSTEM=="mem", KERNEL=="null", TAG+="added"
@@ -19,45 +16,39 @@ EOF
udevadm control --reload
udevadm trigger -c add /dev/null
while : ; do
test -f /run/udev/tags/added/c1:3 &&
! test -f /run/udev/tags/changed/c1:3 &&
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q -v 'E: TAGS=.*:changed:.*' &&
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
break
while test ! -f /run/udev/tags/added/c1:3 ||
test -f /run/udev/tags/changed/c1:3 ||
! udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' ||
! udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' ||
udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' ||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*'
do
sleep .5
done
udevadm control --reload
udevadm trigger -c change /dev/null
while : ; do
test -f /run/udev/tags/added/c1:3 &&
test -f /run/udev/tags/changed/c1:3 &&
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*' &&
break
while test ! -f /run/udev/tags/added/c1:3 ||
test ! -f /run/udev/tags/changed/c1:3 ||
! udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' ||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' ||
! udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' ||
! udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*'
do
sleep .5
done
udevadm control --reload
udevadm trigger -c add /dev/null
while : ; do
test -f /run/udev/tags/added/c1:3 &&
test -f /run/udev/tags/changed/c1:3 &&
udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' &&
udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' &&
udevadm info /dev/null | grep -q -v 'E: CURRENT_TAGS=.*:changed:.*' &&
break
while test ! -f /run/udev/tags/added/c1:3 ||
test ! -f /run/udev/tags/changed/c1:3 ||
! udevadm info /dev/null | grep -q 'E: TAGS=.*:added:.*' ||
! udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:added:.*' ||
! udevadm info /dev/null | grep -q 'E: TAGS=.*:changed:.*' ||
udevadm info /dev/null | grep -q 'E: CURRENT_TAGS=.*:changed:.*'
do
sleep .5
done