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; \
|
diff check_wrap.out $(srcdir)/regress/logging/check_wrap.out.ok; \
|
||||||
rval=`expr $$rval + $$?`; \
|
rval=`expr $$rval + $$?`; \
|
||||||
passed=0; failed=0; total=0; \
|
passed=0; failed=0; total=0; \
|
||||||
for t in $(srcdir)/regress/sudoers/*.in; do \
|
mkdir -p regress/sudoers; \
|
||||||
dir=`dirname $$t`; \
|
dir=sudoers; \
|
||||||
dirbase=`basename $$dir`; \
|
for t in $(srcdir)/regress/$$dir/*.in; do \
|
||||||
base=`basename $$t .in`; \
|
base=`basename $$t .in`; \
|
||||||
out="$${base}.out"; \
|
out="regress/sudoers/$${base}.out"; \
|
||||||
toke="$${base}.toke"; \
|
toke="regress/sudoers/$${base}.toke"; \
|
||||||
./testsudoers -dt <$$t >$$out 2>$$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`; \
|
passed=`expr $$passed + 1`; \
|
||||||
echo "$$dirbase/$$base (parse): OK"; \
|
echo "$$dir/$$base (parse): OK"; \
|
||||||
else \
|
else \
|
||||||
failed=`expr $$failed + 1`; \
|
failed=`expr $$failed + 1`; \
|
||||||
echo "$$dirbase/$$base: FAIL"; \
|
echo "$$dir/$$base: FAIL"; \
|
||||||
diff $$out $$dir/$$out.ok; \
|
diff $$out $(srcdir)/$$out.ok; \
|
||||||
fi; \
|
fi; \
|
||||||
total=`expr $$total + 1`; \
|
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`; \
|
passed=`expr $$passed + 1`; \
|
||||||
echo "$$dirbase/$$base (toke): OK"; \
|
echo "$$dir/$$base (toke): OK"; \
|
||||||
else \
|
else \
|
||||||
failed=`expr $$failed + 1`; \
|
failed=`expr $$failed + 1`; \
|
||||||
echo "$$dirbase/$$base (toke): FAIL"; \
|
echo "$$dir/$$base (toke): FAIL"; \
|
||||||
diff $$out $$dir/$$out.ok; \
|
diff $$out $(srcdir)/$$out.ok; \
|
||||||
fi; \
|
fi; \
|
||||||
total=`expr $$total + 1`; \
|
total=`expr $$total + 1`; \
|
||||||
done; \
|
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`; \
|
rval=`expr $$rval + $$failed`; \
|
||||||
passed=0; failed=0; total=0; \
|
for dir in testsudoers visudo; do \
|
||||||
for t in $(srcdir)/regress/*/*.sh; do \
|
mkdir -p regress/$$dir; \
|
||||||
dir=`dirname $$t`; \
|
passed=0; failed=0; total=0; \
|
||||||
dirbase=`basename $$dir`; \
|
for t in $(srcdir)/regress/$$dir/*.sh; do \
|
||||||
base=`basename $$t .sh`; \
|
base=`basename $$t .sh`; \
|
||||||
out="$${base}.out"; \
|
out="regress/$$dir/$${base}.out"; \
|
||||||
err="$${base}.err"; \
|
err="regress/$$dir/$${base}.err"; \
|
||||||
TESTDIR=$$PWD/$$dir $(SHELL) $$t >$$out 2>$$err; \
|
TESTDIR=$$PWD/$(srcdir)/regress/$$dir \
|
||||||
if cmp $$out $$dir/$$out.ok >/dev/null; then \
|
$(SHELL) $$t >$$out 2>$$err; \
|
||||||
passed=`expr $$passed + 1`; \
|
if cmp $$out $(srcdir)/$$out.ok >/dev/null; then \
|
||||||
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 \
|
|
||||||
passed=`expr $$passed + 1`; \
|
passed=`expr $$passed + 1`; \
|
||||||
echo "$$dirbase/$$base (stderr): OK"; \
|
echo "$$dir/$$base: OK"; \
|
||||||
else \
|
else \
|
||||||
failed=`expr $$failed + 1`; \
|
failed=`expr $$failed + 1`; \
|
||||||
echo "$$dirbase/$$base (stderr): FAIL"; \
|
echo "$$dir/$$base: FAIL"; \
|
||||||
diff $$out $$dir/$$out.ok; \
|
diff $$out $(srcdir)/$$out.ok; \
|
||||||
fi; \
|
fi; \
|
||||||
total=`expr $$total + 1`; \
|
total=`expr $$total + 1`; \
|
||||||
elif test -s $$err; then \
|
if test -s $(srcdir)/$$err.ok; then \
|
||||||
cat $$err 1>&2; \
|
if cmp $$err $(srcdir)/$$err.ok >/dev/null; then \
|
||||||
fi; \
|
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; \
|
done; \
|
||||||
echo "$$dirbase: $$passed/$$total tests passed; $$failed/$$total tests failed"; \
|
|
||||||
rval=`expr $$rval + $$failed`; \
|
|
||||||
exit $$rval; \
|
exit $$rval; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user