test: Produce autotools-looking report in the win32 build system
authorAndrea Canciani <ranma42@gmail.com>
Tue, 8 Nov 2011 21:00:46 +0000 (22:00 +0100)
committerAndrea Canciani <ranma42@gmail.com>
Wed, 9 Nov 2011 08:43:06 +0000 (09:43 +0100)
Tweak the commands used to run the tests on win32 to make the output
look mostly like that produced by the autotools test system.

In addition to this, make sure that the exit status of the test target
is success (0) if and only if no failure occurred.

test/Makefile.win32

index 307ba0c..c88d087 100644 (file)
@@ -19,7 +19,26 @@ BENCHS  = $(patsubst %,   $(CFG_VAR)/%.exe, $(BENCHMARKS))
 all: inform $(TESTS) $(BENCHS)
 
 check: inform $(TESTS)
-       @for test in $(TESTS) ; do ./$$test && echo "PASS: $$test" || echo "FAIL: $$test" ; done
+       @failures=0 ; \
+       total=0 ; \
+       for test in $(TESTS) ; \
+       do \
+               total=`expr $$total + 1` ; \
+               if ./$$test ; \
+               then echo "PASS: $$test" ; \
+               else echo "FAIL: $$test" ; \
+                    failures=`expr $$failures + 1` ; \
+               fi ; \
+       done ; \
+       if test $$failures -eq 0 ; \
+       then banner="All $$total tests passed" ; \
+       else banner="$$failures of $$total tests failed" ; \
+       fi ; \
+       dashes=`echo "$$banner" | sed s/./=/g`; \
+       echo "$$dashes" ; \
+       echo "$$banner" ; \
+       echo "$$dashes" ; \
+       test $$failures -eq 0
 
 $(CFG_VAR)/libutils.lib: $(libutils_OBJECTS)
        @$(AR) $(PIXMAN_ARFLAGS) -OUT:$@ $^