X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=run-tests.sh;h=d055560fc8d0b8a90f992583d54f53f3f717ab29;hb=e94122e560ac74cecfbd2507bf7ee867171d20e9;hp=900ac1617b1c29e0415287e0dac0781e84b0eb2d;hpb=50592cd60fb6fce297249ae92eaa06a4f3cd753c;p=apply-default-acl.git diff --git a/run-tests.sh b/run-tests.sh index 900ac16..d055560 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -4,6 +4,8 @@ # Exit codes # +EXIT_SUCCESS=0 + # Exit with this when a test fails. EXIT_FAILURE=1 @@ -21,7 +23,12 @@ USERS=( bin daemon ) # Check to see if the above users exist. If not, bail. for idx in $( seq 0 $((${#USERS[@]} - 1)) ); do - id ${USERS[idx]} >/dev/null 2>&1 || exit $EXIT_MISSING_USERS + id "${USERS[idx]}" >/dev/null 2>&1 + + if [ $? -ne $EXIT_SUCCESS ]; then + echo "Error: missing test user ${USERS[idx]}." 1>&2 + exit $EXIT_MISSING_USERS + fi done # The program name. @@ -79,7 +86,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare # Do the same thing as the last test, except with an extended ACL. @@ -102,7 +109,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -124,7 +131,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -150,7 +157,7 @@ default:other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -169,7 +176,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -193,7 +200,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -224,7 +231,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -247,7 +254,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -267,7 +274,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -292,7 +299,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -316,7 +323,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -341,7 +348,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"/bar/quux` +ACTUAL=$(getfacl --omit-header "${TARGET}"/bar/quux) compare @@ -370,7 +377,7 @@ default:other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"/bar` +ACTUAL=$(getfacl --omit-header "${TARGET}"/bar) compare @@ -400,7 +407,7 @@ default:other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -430,7 +437,7 @@ default:other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -454,7 +461,7 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -476,7 +483,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -498,7 +505,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -520,7 +527,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -547,7 +554,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -573,7 +580,7 @@ other::r-x EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") compare @@ -601,5 +608,125 @@ other::r-- EOF ) -ACTUAL=`getfacl --omit-header "${TARGET}"` +ACTUAL=$(getfacl --omit-header "${TARGET}") +compare + + +# Same as test #2, except we pass multiple files on the command +# line and check the result of the first one. +TESTNUM=23 +setfacl -d -m user::r-- "${TESTDIR}" +setfacl -d -m group::r-- "${TESTDIR}" +setfacl -d -m other::r-- "${TESTDIR}" +setfacl -d -m user:${USERS[0]}:rwx "${TESTDIR}" +DUMMY="${TESTDIR}/dummy" +touch "${DUMMY}" +chmod 777 "${DUMMY}" +touch "${TARGET}" +chmod 777 "${TARGET}" +$BIN "${TARGET}" "${DUMMY}" + +EXPECTED=$(cat <&1 ) +EXPECTED="${BIN}: test/nonexistent: No such file or directory" +compare + +# Same as the previous test, but with --recursive. +TESTNUM=26 +ACTUAL=$( ${BIN} --recursive test/nonexistent 2>&1 ) +EXPECTED="${BIN}: test/nonexistent: No such file or directory" +compare + +# If we call apply-default-acl on more than one file, it should report any +# that don't exist (but proceed to operate on the others). +TESTNUM=27 +DUMMY1="${TESTDIR}/dummy1" +DUMMY2="${TESTDIR}/dummy2" +touch "${DUMMY1}" "${DUMMY2}" +ACTUAL=$( ${BIN} "${DUMMY1}" test/nonexistent "${DUMMY2}" 2>&1 ) +EXPECTED="${BIN}: test/nonexistent: No such file or directory" +compare + + +# Ensure that symlinks are not followed. +TESTNUM=28 +TARGET="${TESTDIR}/foo" +LINK2TARGET="${TESTDIR}/foo-sym" +touch "${TARGET}" +ln -s "${TARGET#${TESTDIR}/}" "${LINK2TARGET}" +setfacl --default --modify user:${USERS[0]}:rwx "${TESTDIR}" +"${BIN}" "${LINK2TARGET}" +ACTUAL=$( getfacl --omit-header "${TARGET}" ) +EXPECTED=$(cat <