From 0c390cb042843e8091cbff0d82538a64e17a7d9f Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 18 Jan 2013 18:40:36 -0500 Subject: [PATCH] Store the test users in a bash array. Use separate exit codes for test failure and missing users. --- run-tests.sh | 104 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 40 deletions(-) diff --git a/run-tests.sh b/run-tests.sh index b20ec79..4cfea29 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,7 +1,31 @@ #!/bin/bash +# +# Exit codes +# + +# Exit with this when a test fails. +EXIT_FAILURE=1 + +# We use a few system users in the tests. If these users aren't +# present, we exit with a different (non-EXIT_FAILURE). +EXIT_MISSING_USERS=2 + +# Define the users that we'll use in the tests below. We store the +# names as variables to avoid repeating them everywhere. +# +# WARNING: These must be in alphabetical order; otherwise the getfacl +# output will not match. +# +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 +done + # The program name. -BIN=./src/apply-default-acl +BIN=src/apply-default-acl # The directory where we'll do all the ACL manipulation. TESTDIR=test @@ -27,7 +51,7 @@ compare() { echo '================' echo "${ACTUAL}" echo '================' - exit 1 + exit $EXIT_FAILURE fi } @@ -63,14 +87,14 @@ TESTNUM=2 setfacl -d -m user::r-- "${TESTDIR}" setfacl -d -m group::r-- "${TESTDIR}" setfacl -d -m other::r-- "${TESTDIR}" -setfacl -d -m user:bin:rwx "${TESTDIR}" +setfacl -d -m user:${USERS[0]}:rwx "${TESTDIR}" touch "${TARGET}" chmod 777 "${TARGET}" $BIN "${TARGET}" EXPECTED=$(cat <