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 <[EMAIL PROTECTED]> 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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]