From 5109da9b3e6a898c8e0ad647303a1b375e3d97d3 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 25 Nov 2020 16:02:31 -0600 Subject: Luke Frankart pointed out a typo (0x111 should be 0111). Fix and update tests to catch this. While there add -k to test sticky bit. --- tests/test.test | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'tests/test.test') diff --git a/tests/test.test b/tests/test.test index 7f574f08..1295be41 100644 --- a/tests/test.test +++ b/tests/test.test @@ -42,7 +42,32 @@ testing "! -e" 'type_test ! -e' "n" "" "" rm f L s p rmdir d -# TODO: Test rwx gu t +# test -rwx each bit position and failure +touch walrus +MASK=111 +for i in x w r k g u; do + [ $i == k ] && MASK=1000 + # test everything off produces "off" + chmod 000 walrus + testcmd "-$i 0" "-$i walrus || echo yes" "yes\n" "" "" + chmod $((7777-$MASK)) walrus + testcmd "-$i inverted" "-$i walrus || echo yes" "yes\n" "" "" + MASK=$(($MASK<<1)) +done +unset MASK +# Test setuid setgid sticky enabled +for i in uu+s gg+s k+t; do + chmod 000 walrus + chmod ${i:1}+s walrus + testcmd "-${i:0:1}" "-${i:0:1} walrus && echo yes" "yes\n" "" "" +done +# test each ugo+rwx bit position individually +for i in 1 10 100; do for j in x w r; do + chmod $i walrus + testcmd "-$j $i" "-$j walrus && echo yes" "yes\n" "" "" + i=$((i<<1)) +done; done +rm -f walrus testcmd "" "'' || echo yes" "yes\n" "" "" testcmd "" "a && echo yes" "yes\n" "" "" -- cgit v1.2.3