Patchwork libgo patch committed: Generate DejaGNU style .sum and .log files

login
register
mail settings
Submitter Ian Taylor
Date March 31, 2011, 4:11 p.m.
Message ID <mcr1v1ns20h.fsf@google.com>
Download mbox | patch
Permalink /patch/89093/
State New
Headers show

Comments

Ian Taylor - March 31, 2011, 4:11 p.m.
This patch to libgo makes the testsuite generate a libgo.sum and
libgo.log file which are much like the ones that DejaGNU would generate.
My hope is that this will cause the various scripts we have that parse
DejaGNU files do something useful with the libgo test results.
Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline.

Ian

Patch

diff -r 2b22fade0be0 libgo/Makefile.am
--- a/libgo/Makefile.am	Wed Mar 30 16:02:40 2011 -0700
+++ b/libgo/Makefile.am	Thu Mar 31 09:09:31 2011 -0700
@@ -1547,40 +1547,51 @@ 
 	export RUNTESTFLAGS; \
 	MAKE="$(MAKE)"; \
 	export MAKE; \
-	rm -f $@-log; \
+	rm -f $@-testlog; \
 	prefix=`if test "$(@D)" = "regexp"; then echo regexp-test; else dirname $(@D); fi`; \
 	test "$${prefix}" != "." || prefix="$(@D)"; \
 	if test "$(use_dejagnu)" = "yes"; then \
 	  $(SHELL) $(srcdir)/testsuite/gotest --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS); \
 	else \
-	  if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-log 2>&1; then \
+	  if $(SHELL) $(srcdir)/testsuite/gotest --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --prefix="libgo_$${prefix}" --pkgfiles="$(go_$(subst /,_,$(@D))_files)" $(GOTESTFLAGS) >>$@-testlog 2>&1; then \
 	    echo "PASS: $(@D)"; \
+	    echo "PASS: $(@D)" >> libgo.sum; \
+	    echo "PASS: $(@D)" >> $@-testlog; \
+	    cat $@-testlog >> libgo.log; \
 	  else \
-	    echo "FAIL: $(@D)"; \
-	    cat $@-log; \
+	    echo "FAIL: $(@D)" >> $@-testlog; \
+	    cat $@-testlog; \
+	    echo "FAIL: $(@D)" >> libgo.sum; \
+	    cat $@-testlog >> libgo.log; \
 	    exit 1; \
 	  fi; \
 	fi
 
 # Build all packages before checking any.
 CHECK_DEPS = libgo.la libgobegin.a \
-	$(toolexeclib_DATA) \
-	$(toolexeclibarchive_DATA) \
-	$(toolexeclibcompress_DATA) \
-	$(toolexeclibcontainer_DATA) \
-	$(toolexeclibcrypto_DATA) \
-	$(toolexeclibdebug_DATA) \
-	$(toolexeclibencoding_DATA) \
-	$(toolexeclibexp_DATA) \
 	$(toolexeclibgo_DATA) \
-	$(toolexeclibhash_DATA) \
-	$(toolexeclibhttp_DATA) \
-	$(toolexeclibimage_DATA) \
-	$(toolexeclibio_DATA) \
-	$(toolexeclibos_DATA) \
-	$(toolexeclibrpc_DATA) \
-	$(toolexeclibruntime_DATA) \
-	$(toolexeclibtesting_DATA)
+	$(toolexeclibgoarchive_DATA) \
+	$(toolexeclibgocompress_DATA) \
+	$(toolexeclibgocontainer_DATA) \
+	$(toolexeclibgocrypto_DATA) \
+	$(toolexeclibgocryptoopenpgp_DATA) \
+	$(toolexeclibgodebug_DATA) \
+	$(toolexeclibgoencoding_DATA) \
+	$(toolexeclibgoexp_DATA) \
+	$(toolexeclibgogo_DATA) \
+	$(toolexeclibgohash_DATA) \
+	$(toolexeclibgohttp_DATA) \
+	$(toolexeclibgoimage_DATA) \
+	$(toolexeclibgoindex_DATA) \
+	$(toolexeclibgoio_DATA) \
+	$(toolexeclibgomime_DATA) \
+	$(toolexeclibgonet_DATA) \
+	$(toolexeclibgoos_DATA) \
+	$(toolexeclibgopath_DATA) \
+	$(toolexeclibgorpc_DATA) \
+	$(toolexeclibgoruntime_DATA) \
+	$(toolexeclibgosync_DATA) \
+	$(toolexeclibgotesting_DATA)
 
 asn1/asn1.lo: $(go_asn1_files) bytes.gox fmt.gox io.gox os.gox reflect.gox \
 		strconv.gox strings.gox time.gox
@@ -3040,14 +3051,49 @@ 
 	testing/quick/check \
 	testing/script/check
 
-check-recursive: $(TEST_PACKAGES)
+check-am:
+	@rm -f libgo.sum libgo.log
+	@echo "Test Run By $${USER} on `date`" > libgo.sum
+	@echo "Native configuration is $(host_triplet)" >> libgo.sum
+	@echo >> libgo.sum
+	@echo "		=== libgo tests ===" >> libgo.sum
+	@echo >> libgo.sum
+	@echo "Schedule of variations:" >> libgo.sum
+	@echo "    unix" >> libgo.sum
+	@echo >> libgo.sum
+	@echo "Running target unix" >> libgo.sum
+	@echo "Running $(srcdir)/libgo.exp ..." >> libgo.sum
+	@cp libgo.sum libgo.log
+	@rm -f libgo.tail
+	@$(MAKE) -k $(TEST_PACKAGES); \
+	status=$$?; \
+	echo > libgo.tail; \
+	echo "		=== libgo summary ===" >> libgo.tail; \
+	echo >> libgo.tail; \
+	p=`grep -c PASS libgo.sum`; \
+	if test "$$p" != "0"; then \
+	  echo "# of expected passes		$$p" >> libgo.tail; \
+	fi; \
+	p=`grep -c FAIL libgo.sum`; \
+	if test "$$p" != "0"; then \
+	  echo "# of unexpected failures	$$p" >> libgo.tail; \
+	fi; \
+	cat libgo.tail >> libgo.sum; \
+	cat libgo.tail >> libgo.log; \
+	echo `echo $(GOC) | sed -e 's/ .*//'`  `$(GOC) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> libgo.sum; \
+	echo >> libgo.log; \
+	echo "runtest completed at `date`" >> libgo.log; \
+	exit $$status
+
+MOSTLYCLEAN_FILES = libgo.tail
 
 mostlyclean-local:
 	find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f
 	find . -name '*.$(OBJEXT)' -print | xargs rm -f
+	find . -name '*-testlog' -print | xargs rm -f
+
+CLEANFILES = *.go *.gox goc2c *.c s-version libgo.sum libgo.log
 
 clean-local:
 	find . -name '*.la' -print | xargs $(LIBTOOL) --mode=clean rm -f
 	find . -name '*.a' -print | xargs rm -f
-
-CLEANFILES = *.go *.gox goc2c *.c s-version