When running regress tests, list pass/fail rate for each dir
(testsudoers and visudo) instead of the total. Also prevent the result files from clobbering each other by keeping them in the relevant directories.
This commit is contained in:
@@ -315,67 +315,69 @@ check: $(TEST_PROGS) visudo testsudoers
|
||||
diff check_wrap.out $(srcdir)/regress/logging/check_wrap.out.ok; \
|
||||
rval=`expr $$rval + $$?`; \
|
||||
passed=0; failed=0; total=0; \
|
||||
for t in $(srcdir)/regress/sudoers/*.in; do \
|
||||
dir=`dirname $$t`; \
|
||||
dirbase=`basename $$dir`; \
|
||||
mkdir -p regress/sudoers; \
|
||||
dir=sudoers; \
|
||||
for t in $(srcdir)/regress/$$dir/*.in; do \
|
||||
base=`basename $$t .in`; \
|
||||
out="$${base}.out"; \
|
||||
toke="$${base}.toke"; \
|
||||
out="regress/sudoers/$${base}.out"; \
|
||||
toke="regress/sudoers/$${base}.toke"; \
|
||||
./testsudoers -dt <$$t >$$out 2>$$toke; \
|
||||
if cmp $$out $$dir/$$out.ok >/dev/null; then \
|
||||
if cmp $$out $(srcdir)/$$out.ok >/dev/null; then \
|
||||
passed=`expr $$passed + 1`; \
|
||||
echo "$$dirbase/$$base (parse): OK"; \
|
||||
echo "$$dir/$$base (parse): OK"; \
|
||||
else \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "$$dirbase/$$base: FAIL"; \
|
||||
diff $$out $$dir/$$out.ok; \
|
||||
echo "$$dir/$$base: FAIL"; \
|
||||
diff $$out $(srcdir)/$$out.ok; \
|
||||
fi; \
|
||||
total=`expr $$total + 1`; \
|
||||
if cmp $$toke $$dir/$$toke.ok >/dev/null; then \
|
||||
if cmp $$toke $(srcdir)/$$toke.ok >/dev/null; then \
|
||||
passed=`expr $$passed + 1`; \
|
||||
echo "$$dirbase/$$base (toke): OK"; \
|
||||
echo "$$dir/$$base (toke): OK"; \
|
||||
else \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "$$dirbase/$$base (toke): FAIL"; \
|
||||
diff $$out $$dir/$$out.ok; \
|
||||
echo "$$dir/$$base (toke): FAIL"; \
|
||||
diff $$out $(srcdir)/$$out.ok; \
|
||||
fi; \
|
||||
total=`expr $$total + 1`; \
|
||||
done; \
|
||||
echo "$$dirbase: $$passed/$$total tests passed; $$failed/$$total tests failed"; \
|
||||
echo "$$dir: $$passed/$$total tests passed; $$failed/$$total tests failed"; \
|
||||
rval=`expr $$rval + $$failed`; \
|
||||
passed=0; failed=0; total=0; \
|
||||
for t in $(srcdir)/regress/*/*.sh; do \
|
||||
dir=`dirname $$t`; \
|
||||
dirbase=`basename $$dir`; \
|
||||
base=`basename $$t .sh`; \
|
||||
out="$${base}.out"; \
|
||||
err="$${base}.err"; \
|
||||
TESTDIR=$$PWD/$$dir $(SHELL) $$t >$$out 2>$$err; \
|
||||
if cmp $$out $$dir/$$out.ok >/dev/null; then \
|
||||
passed=`expr $$passed + 1`; \
|
||||
echo "$$dirbase/$$base: OK"; \
|
||||
else \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "$$dirbase/$$base: FAIL"; \
|
||||
diff $$out $$dir/$$out.ok; \
|
||||
fi; \
|
||||
total=`expr $$total + 1`; \
|
||||
if test -s $$dir/$$err.ok; then \
|
||||
if cmp $$err $$dir/$$err.ok >/dev/null; then \
|
||||
for dir in testsudoers visudo; do \
|
||||
mkdir -p regress/$$dir; \
|
||||
passed=0; failed=0; total=0; \
|
||||
for t in $(srcdir)/regress/$$dir/*.sh; do \
|
||||
base=`basename $$t .sh`; \
|
||||
out="regress/$$dir/$${base}.out"; \
|
||||
err="regress/$$dir/$${base}.err"; \
|
||||
TESTDIR=$$PWD/$(srcdir)/regress/$$dir \
|
||||
$(SHELL) $$t >$$out 2>$$err; \
|
||||
if cmp $$out $(srcdir)/$$out.ok >/dev/null; then \
|
||||
passed=`expr $$passed + 1`; \
|
||||
echo "$$dirbase/$$base (stderr): OK"; \
|
||||
echo "$$dir/$$base: OK"; \
|
||||
else \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "$$dirbase/$$base (stderr): FAIL"; \
|
||||
diff $$out $$dir/$$out.ok; \
|
||||
echo "$$dir/$$base: FAIL"; \
|
||||
diff $$out $(srcdir)/$$out.ok; \
|
||||
fi; \
|
||||
total=`expr $$total + 1`; \
|
||||
elif test -s $$err; then \
|
||||
cat $$err 1>&2; \
|
||||
fi; \
|
||||
if test -s $(srcdir)/$$err.ok; then \
|
||||
if cmp $$err $(srcdir)/$$err.ok >/dev/null; then \
|
||||
passed=`expr $$passed + 1`; \
|
||||
echo "$$dir/$$base (stderr): OK"; \
|
||||
else \
|
||||
failed=`expr $$failed + 1`; \
|
||||
echo "$$dir/$$base (stderr): FAIL"; \
|
||||
diff $$out $(srcdir)/$$out.ok; \
|
||||
fi; \
|
||||
total=`expr $$total + 1`; \
|
||||
elif test -s $$err; then \
|
||||
cat $$err 1>&2; \
|
||||
fi; \
|
||||
done; \
|
||||
echo "$$dir: $$passed/$$total tests passed; $$failed/$$total tests failed"; \
|
||||
rval=`expr $$rval + $$failed`; \
|
||||
done; \
|
||||
echo "$$dirbase: $$passed/$$total tests passed; $$failed/$$total tests failed"; \
|
||||
rval=`expr $$rval + $$failed`; \
|
||||
exit $$rval; \
|
||||
fi
|
||||
|
||||
|
Reference in New Issue
Block a user