about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Makeconfig7
-rw-r--r--Makerules10
-rw-r--r--Rules6
-rwxr-xr-xscripts/evaluate-test.sh33
5 files changed, 62 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index ed9f24c6fa..f625d07efc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2014-02-14  Tomas Dohnalek  <tdohnale@redhat.com>
+	    Joseph Myers  <joseph@codesourcery.com>
+
+	* Makeconfig (test-name): New variable.
+	(evaluate-test): Likewise.
+	* Makerules (do-test-clean): Remove .test-result files.
+	(common-mostlyclean): Likewise.
+	* Rules ($(objpfx)%.out): Use $(evaluate-test) in both rules.
+	* scripts/evaluate-test.sh: New file.
+
 2014-02-14  Joseph Myers  <joseph@codesourcery.com>
 
 	* libio/Makefile ($(objpfx)tst-fopenloc.check): Split into
diff --git a/Makeconfig b/Makeconfig
index 1908f275a9..21a7d6ea65 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -1080,6 +1080,13 @@ defines += -D_LIBC_REENTRANT
 libio-mtsafe = -D_IO_MTSAFE_IO
 endif
 
+# The name to give to a test in test results summaries.
+test-name = $(strip $(patsubst %.out, %, $(patsubst $(common-objpfx)%, %, $@)))
+
+# Command to output a test status line (such as PASS: test-name).
+evaluate-test = $(..)scripts/evaluate-test.sh $(test-name) $$? \
+		  > $(common-objpfx)$(test-name).test-result
+
 endif # Makeconfig not yet included
 
 # Local Variables:
diff --git a/Makerules b/Makerules
index 13c3faec3f..54a347104f 100644
--- a/Makerules
+++ b/Makerules
@@ -1332,7 +1332,10 @@ mostlyclean: common-mostlyclean
 
 do-tests-clean:
 	-rm -f $(addprefix $(objpfx),$(addsuffix .out,$(tests) $(xtests) \
-						      $(test-srcs)))
+						      $(test-srcs)) \
+				     $(addsuffix .test-result,$(tests) \
+							      $(xtests) \
+							      $(test-srcs)))
 
 # Remove the object files.
 common-mostlyclean:
@@ -1342,7 +1345,10 @@ common-mostlyclean:
 						    $(test-srcs) $(others) \
 						    $(sysdep-others)) \
 				     $(addsuffix .out,$(tests) $(xtests) \
-						      $(test-srcs)))
+						      $(test-srcs)) \
+				     $(addsuffix .test-result,$(tests) \
+							      $(xtests) \
+							      $(test-srcs)))
 	-rm -f $(addprefix $(objpfx),$(extra-objs) $(extra-test-objs) \
 				     $(install-lib) $(install-lib.so) \
 				     $(install-lib.so:%.so=%_pic.a))
diff --git a/Rules b/Rules
index 49ca8ea7a2..3e305ddaa5 100644
--- a/Rules
+++ b/Rules
@@ -183,9 +183,11 @@ make-test-out = $(test-wrapper-env) \
 		GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
 		$($*-ENV) $(host-test-program-cmd) $($*-ARGS)
 $(objpfx)%.out: %.input $(objpfx)%
-	$(make-test-out) > $@ < $(word 1,$^)
+	$(make-test-out) > $@ < $(word 1,$^); \
+	$(evaluate-test)
 $(objpfx)%.out: /dev/null $(objpfx)%	# Make it 2nd arg for canned sequence.
-	$(make-test-out) > $@
+	$(make-test-out) > $@; \
+	$(evaluate-test)
 
 endif	# tests
 
diff --git a/scripts/evaluate-test.sh b/scripts/evaluate-test.sh
new file mode 100755
index 0000000000..9cb6435de2
--- /dev/null
+++ b/scripts/evaluate-test.sh
@@ -0,0 +1,33 @@
+#! /bin/sh
+# Output a test status line.
+# Copyright (C) 2012-2014 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+# usage: evaluate-test.sh test_name rc
+
+test_name=$1
+rc=$2
+
+if [ $rc -eq 0 ]; then
+  result="PASS"
+else
+  result="FAIL"
+fi
+
+echo "$result: $test_name"
+echo "original exit status $rc"
+exit $rc