]> granicus.if.org Git - sudo/commitdiff
When running regress tests, list pass/fail rate for each dir
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 23 Aug 2012 18:47:58 +0000 (14:47 -0400)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 23 Aug 2012 18:47:58 +0000 (14:47 -0400)
(testsudoers and visudo) instead of the total.  Also prevent the
result files from clobbering each other by keeping them in the
relevant directories.

plugins/sudoers/Makefile.in

index e47bf7798e5613a26e857e1495a8b769a93d3a3d..74e7bd92e26f14a8aac139730de9a1c3b9e9020d 100644 (file)
@@ -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