@@ -76,6 +76,9 @@ TABLES=table_templates/pseudo_tables.c table_templates/pseudo_tables.h
all: $(LIBPSEUDO) $(PSEUDO) $(PSEUDODB) $(PSEUDOLOG) $(PSEUDO_PROFILE)
test: all $(TESTS) | $(BIN) $(LIB)
+ ./run_tests.sh
+
+test-verbose: all $(TESTS) | $(BIN) $(LIB)
./run_tests.sh -v
test/test-%: test/test-%.c
@@ -31,22 +31,36 @@ export PSEUDO_PREFIX=${PWD}
num_tests=0
num_passed_tests=0
+num_skipped_tests=0
+num_failed_tests=0
+
+tmplog="$(mktemp pseudo.log.XXXXXXXX)"
for file in test/test*.sh
do
filename=${file#test/}
let num_tests++
mkdir -p var/pseudo
- ./bin/pseudo $file ${opt_verbose}
- if [ "$?" -eq "0" ]; then
+ ./bin/pseudo $file ${opt_verbose} >${tmplog} 2>&1
+ rc=$?
+ if [ "${opt_verbose}" = "-v" ]; then
+ echo
+ cat ${tmplog}
+ fi
+ if [ "$rc" -eq "0" ]; then
let num_passed_tests++
- if [ "${opt_verbose}" == "-v" ]; then
- echo "${filename%.sh}: Passed."
- fi
+ echo "${filename%.sh}: Passed."
+ elif [ "$rc" -eq "255" ]; then
+ let num_skipped_tests++
+ echo "${filename%.sh}: Skipped."
else
+ let num_failed_tests++
echo "${filename/%.sh}: Failed."
fi
rm -rf var/pseudo/*
done
+echo "${num_failed_tests}/${num_tests} test(s) failed."
+echo "${num_skipped_tests}/${num_tests} test(s) skipped."
echo "${num_passed_tests}/${num_tests} test(s) passed."
+rm ${tmplog}
@@ -6,11 +6,27 @@
# Return vals: 2 - Unable to run ACL commands, assertion failure
# 1 - Invalid return value
# 0 - Pass
+# 255 - acl programs unavailable, skip
# NOTE: these test exclusively test setfacl -m
set -u
+rc=0
+which getfacl 2>/dev/null
+if [ $? -ne 0 ]; then
+ echo "getfacl command missing"
+ rc=255
+fi
+which setfacl 2>/dev/null
+if [ $? -ne 0 ]; then
+ echo "setfacl command missing"
+ rc=255
+fi
+if [ $rc -ne 0 ]; then
+ exit $rc
+fi
+
check_owner () {
local file="$1"
local expected="$2"
@@ -7,6 +7,23 @@
# 1 - Invalid return value
# 0 - Pass
+set -u
+
+rc=0
+which getfattr 2>/dev/null
+if [ $? -ne 0 ]; then
+ echo "getfattr command missing"
+ rc=255
+fi
+which setfattr 2>/dev/null
+if [ $? -ne 0 ]; then
+ echo "setfattr command missing"
+ rc=255
+fi
+if [ $rc -ne 0 ]; then
+ exit $rc
+fi
+
touch f1
attrs=`getfattr -d f1 | grep -v '^#'`
if [ -n "$attrs" ]
Change 'make test' to be simple test results. Add new 'make test-verbose' for verbose results. Adjust the run_test.sh to capture logs and only output when in verbose mode. Also capture failure and skip counts. (rc of 255 indicates test was skipped.) Adjust test cases to indicate skipped tests when a command is unavailable. Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> --- Makefile.in | 3 +++ run_tests.sh | 24 +++++++++++++++++++----- test/test-acl.sh | 16 ++++++++++++++++ test/test-xattr.sh | 17 +++++++++++++++++ 4 files changed, 55 insertions(+), 5 deletions(-)