r3060 - in glibc-package/branches/glibc-2.8/debian: . rules.d testsuite-checking
Author: aurel32
Date: 2008-08-09 05:00:05 +0000 (Sat, 09 Aug 2008)
New Revision: 3060
Added:
glibc-package/branches/glibc-2.8/debian/testsuite-checking/
glibc-package/branches/glibc-2.8/debian/testsuite-checking/README
glibc-package/branches/glibc-2.8/debian/testsuite-checking/compare.sh
glibc-package/branches/glibc-2.8/debian/testsuite-checking/convertlog.sh
glibc-package/branches/glibc-2.8/debian/testsuite-checking/expected-test-x86_64-linux-gnu-libc
Removed:
glibc-package/branches/glibc-2.8/debian/maint/
Modified:
glibc-package/branches/glibc-2.8/debian/changelog
glibc-package/branches/glibc-2.8/debian/rules
glibc-package/branches/glibc-2.8/debian/rules.d/build.mk
Log:
* debian/rules, debian/rules.d/build.mk, debian/testsuite-checking/*:
implementregression check, based on a patch from Carlos O'Donell.
* testsuite-checking/expected-test-x86_64-linux-gnu-libc: new file.
Modified: glibc-package/branches/glibc-2.8/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.8/debian/changelog 2008-08-09 04:22:45 UTC (rev 3059)
+++ glibc-package/branches/glibc-2.8/debian/changelog 2008-08-09 05:00:05 UTC (rev 3060)
@@ -70,6 +70,9 @@
* locale/check-unknown-symbols.diff: changes errors to warnings.
* debian/control.in/main: update Standards-Version to 3.8.0:
- Add debian/README.source.
+ * debian/rules, debian/rules.d/build.mk, debian/testsuite-checking/*:
+ implementregression check, based on a patch from Carlos O'Donell.
+ * testsuite-checking/expected-test-x86_64-linux-gnu-libc: new file.
-- Aurelien Jarno <aurel32@debian.org> Fri, 08 Aug 2008 05:48:15 +0200
Modified: glibc-package/branches/glibc-2.8/debian/rules
===================================================================
--- glibc-package/branches/glibc-2.8/debian/rules 2008-08-09 04:22:45 UTC (rev 3059)
+++ glibc-package/branches/glibc-2.8/debian/rules 2008-08-09 05:00:05 UTC (rev 3060)
@@ -116,13 +116,10 @@
# Among other things this lets tests run.
configure_build := $(DEB_BUILD_GNU_TYPE)
-ifneq ($(NO_LOG),yes)
-log_build = $(build-tree)/log-build-$(call xx,configure_target)-$(curpass)
-log_test = $(build-tree)/log-test-$(call xx,configure_target)-$(curpass)
-else
-log_build := /dev/tty
-log_test := /dev/tty
-endif
+log_build = $(build-tree)/log-build-$(call xx,configure_target)-$(curpass)
+log_test = $(build-tree)/log-test-$(call xx,configure_target)-$(curpass)
+log_results = $(build-tree)/test-results-$(call xx,configure_target)-$(curpass)
+log_expected = debian/expected-results-$(call xx,configure_target)-$(curpass)
# Which build pass are we on?
curpass = $(filter-out %_,$(subst _,_ ,$@))
Modified: glibc-package/branches/glibc-2.8/debian/rules.d/build.mk
===================================================================
--- glibc-package/branches/glibc-2.8/debian/rules.d/build.mk 2008-08-09 04:22:45 UTC (rev 3059)
+++ glibc-package/branches/glibc-2.8/debian/rules.d/build.mk 2008-08-09 05:00:05 UTC (rev 3060)
@@ -95,31 +95,33 @@
$(patsubst %,check_%,$(GLIBC_PASSES)) :: check_% : $(stamp)check_%
$(stamp)check_%: $(stamp)build_%
- if [ -n "$(findstring nocheck,$(DEB_BUILD_OPTIONS))" ]; then \
+ @if [ -n "$(findstring nocheck,$(DEB_BUILD_OPTIONS))" ]; then \
echo "DEB_BUILD_OPTIONS contains nocheck, skipping tests."; \
- echo "Tests have been disabled via DEB_BUILD_OPTIONS." > $(log_test) ; \
+ echo "Tests have been disabled via DEB_BUILD_OPTIONS." > $(log_results) ; \
elif [ $(call xx,configure_build) != $(call xx,configure_target) ] && \
! $(DEB_BUILDDIR)/elf/ld.so $(DEB_BUILDDIR)/libc.so >/dev/null 2>&1 ; then \
echo "Cross compiling, skipping tests."; \
- echo "Flavour cross-compiled, tests have been skipped." > $(log_test) ; \
+ echo "Flavour cross-compiled, tests have been skipped." > $(log_results) ; \
elif ! $(call kernel_check,$(call xx,MIN_KERNEL_SUPPORTED)); then \
echo "Kernel too old, skipping tests."; \
- echo "Kernel too old, tests have been skipped." > $(log_test) ; \
- elif uname -m | grep -q "^arm" && uname -r | grep -q "2\.6\.2[1-4]" ; then \
- echo "ARM machine running a 2.6.21-24 kernel detected, tests have been skipped."; \
- echo "ARM machine running a 2.6.21-24 kernel detected, tests have been skipped." > $(log_test) ; \
+ echo "Kernel too old, tests have been skipped." > $(log_results) ; \
elif [ $(call xx,RUN_TESTSUITE) != "yes" ]; then \
echo "Testsuite disabled for $(curpass), skipping tests."; \
- echo "Tests have been disabled." > $(log_test) ; \
+ echo "Tests have been disabled." > $(log_results) ; \
else \
echo Testing $(curpass); \
- echo -n "Testsuite started: " | tee -a $(log_test); \
- date --rfc-2822 | tee -a $(log_test); \
- echo "--------------" | tee -a $(log_test); \
+ find $(DEB_BUILDDIR) -name '*.out' -exec rm {} ';' ; \
TIMEOUTFACTOR="$(TIMEOUTFACTOR)" $(MAKE) -C $(DEB_BUILDDIR) $(NJOBS) -k check 2>&1 | tee -a $(log_test); \
- echo "--------------" | tee -a $(log_test); \
- echo -n "Testsuite ended: " | tee -a $(log_test); \
- date --rfc-2822 | tee -a $(log_test); \
+ chmod +x debian/testsuite-checking/convertlog.sh; \
+ debian/testsuite-checking/convertlog.sh $(log_test) > $(log_results) ; \
+ if -f $(log_expected) ; then ; \
+ chmod +x debian/testsuite-checking/compare.sh ; \
+ debian/testsuite-checking/compare.sh $(log_expected) $(log_results) ; \
+ else \
+ echo "***WARNING***" ; \
+ echo "Please generate expected testsuite results for this arch!" ; \
+ echo "***WARNING***" ; \
+ fi ; \
fi
touch $@
Added: glibc-package/branches/glibc-2.8/debian/testsuite-checking/README
===================================================================
--- glibc-package/branches/glibc-2.8/debian/testsuite-checking/README (rev 0)
+++ glibc-package/branches/glibc-2.8/debian/testsuite-checking/README 2008-08-09 05:00:05 UTC (rev 3060)
@@ -0,0 +1,17 @@
+Testsuite Regression Testing
+============================
+
+This directory contains a file for each arch/os, listing the allowed failures
+during a testsuite run for a given arch/os pair. The files are listed as
+"${arch-os}-test-results". Where "${arch-os}" is extracted by rules as
+"$(call xx,configure_target)".
+
+A script, "convertlog.sh", can be used to process the normal log-test-*
+file into a test-results-* file.
+
+Since we cannot run the testsuite without "-k", we run the enitre testsuite
+ignoring errors. Then we compare the error set with the expected errors,
+differences in signal numbers or errors fails the build. If the architecture
+does not have a test-results-* file a warning is given and no comparison is
+made.
+
Added: glibc-package/branches/glibc-2.8/debian/testsuite-checking/compare.sh
===================================================================
--- glibc-package/branches/glibc-2.8/debian/testsuite-checking/compare.sh (rev 0)
+++ glibc-package/branches/glibc-2.8/debian/testsuite-checking/compare.sh 2008-08-09 05:00:05 UTC (rev 3060)
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+if [ $# -ne '2' ]; then
+ echo -e "\nUsage: Compare a test-expected-* file and a test-results-* file."
+ echo -e "$0 : < Expected testsuite results > < Testsuite results >\n";
+ exit 1
+fi;
+
+REGRESSIONS=$(diff -wBI '^#.*' expected-test-x86_64-linux-gnu-libc /tmp/a | sed -e '/^>/!d;s/^> //g')
+if [ -n "$REGRESSIONS" ] ; then
+ echo "Encountered regressions that don't match expected failures:"
+ echo "$REGRESSIONS"
+ exit 1
+else
+ echo "Passed regression testing. No new failures, no changed error values."
+ exit 0
+fi
+
Property changes on: glibc-package/branches/glibc-2.8/debian/testsuite-checking/compare.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: glibc-package/branches/glibc-2.8/debian/testsuite-checking/convertlog.sh
===================================================================
--- glibc-package/branches/glibc-2.8/debian/testsuite-checking/convertlog.sh (rev 0)
+++ glibc-package/branches/glibc-2.8/debian/testsuite-checking/convertlog.sh 2008-08-09 05:00:05 UTC (rev 3060)
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+if [ $# -ne '1' ]; then
+ echo -e "\nUsage: Converts a log-test-* file into a test-results-* file."
+ echo -e "$0 : < Input testsuite log file >\n";
+ exit 1
+fi;
+
+echo '#'
+echo '# Testsuite failures, someone should be working towards'
+echo '# fixing these! They are listed here for the purpose of'
+echo '# regression testing during builds.'
+echo '# Format: <Failed test>, Error <Make error code> [(ignored)]'
+echo '#'
+grep 'make\[.*\]:.* \[/.*' $1 | sed -e's,^.*/,,g' -e 's/\]/,/g' | sort
Property changes on: glibc-package/branches/glibc-2.8/debian/testsuite-checking/convertlog.sh
___________________________________________________________________
Name: svn:executable
+ *
Added: glibc-package/branches/glibc-2.8/debian/testsuite-checking/expected-test-x86_64-linux-gnu-libc
===================================================================
--- glibc-package/branches/glibc-2.8/debian/testsuite-checking/expected-test-x86_64-linux-gnu-libc (rev 0)
+++ glibc-package/branches/glibc-2.8/debian/testsuite-checking/expected-test-x86_64-linux-gnu-libc 2008-08-09 05:00:05 UTC (rev 3060)
@@ -0,0 +1,7 @@
+#
+# Allowed failures for AMD64 and the returned make failure
+# number, indicating the signal the process died with.
+# Format: <Failed test>, Error <Make error code> [(ignored)]
+#
+annexc.out, Error 1
+check-localplt.out, Error 1
Reply to: