This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Parallelize better 28_regex/* testing


Hi!

I've noticed recently that the 28_regex/ tests look very expensive
testing time wise, while there are only ~ 120 tests, I'm routinely seeing
28_regex/* complete last.  This patch moves the most expensive 28_regex/
tests ([ab]*, about 2/3 of all the regex tests) to a separate job, while
one of the former 10 jobs tests the rest of 28_regex/ together with 26_*/.

The make check time on i686-linux shortened by ~5 minutes today,
x86_64-linux by about ~4 minutes.

Ok for trunk?

2013-11-22  Jakub Jelinek  <jakub@redhat.com>

	* testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
	(check-DEJAGNU): Add normal10, run 28_regex/[ab]*
	tests as another separate job.
	* testsuite/Makefile.in: Regenerated.

--- libstdc++-v3/testsuite/Makefile.am.jj	2013-02-04 18:16:14.000000000 +0100
+++ libstdc++-v3/testsuite/Makefile.am	2013-11-22 16:40:05.300362400 +0100
@@ -101,7 +101,7 @@ new-abi-baseline:
 	@test ! -f $*/site.exp || mv $*/site.exp $*/site.bak
 	@mv $*/site.exp.tmp $*/site.exp
 
-check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9)
+check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9 10)
 $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp
 
 # Run the testsuite in normal mode.
@@ -111,16 +111,16 @@ check-DEJAGNU $(check_DEJAGNU_normal_tar
 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
 	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
-	  for idx in 0 1 2 3 4 5 6 7 8 9; do \
+	  for idx in 0 1 2 3 4 5 6 7 8 9 10; do \
 	    mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \
 	    mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \
 	  done; \
 	  mv -f libstdc++.sum libstdc++.sum.sep; \
 	  mv -f libstdc++.log libstdc++.log.sep; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	    libstdc++.sum.sep normal[0-9]/libstdc++.sum.sep > libstdc++.sum; \
+	    libstdc++.sum.sep normal[0-9]*/libstdc++.sum.sep > libstdc++.sum; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
-	    libstdc++.log.sep normal[0-9]/libstdc++.log.sep > libstdc++.log; \
+	    libstdc++.log.sep normal[0-9]*/libstdc++.log.sep > libstdc++.log; \
 	  exit 0; \
 	fi; \
 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
@@ -150,10 +150,12 @@ check-DEJAGNU $(check_DEJAGNU_normal_tar
 	  normal6) \
 	    dirs="`cd $$srcdir; echo 2[459]_*/*`";; \
 	  normal7) \
-	    dirs="`cd $$srcdir; echo 2[68]_*/*`";; \
+	    dirs="`cd $$srcdir; echo 26_*/* 28_*/[c-z]*`";; \
 	  normal8) \
 	    dirs="`cd $$srcdir; echo 27_*/*`";; \
 	  normal9) \
+	    dirs="`cd $$srcdir; echo 28_*/[ab]*`";; \
+	  normal10) \
 	    dirs="`cd $$srcdir; echo t*/*`";; \
 	esac; \
 	if [ -n "$*" ]; then cd "$*"; fi; \
--- libstdc++-v3/testsuite/Makefile.in.jj	2013-08-13 12:20:49.619089640 +0200
+++ libstdc++-v3/testsuite/Makefile.in	2013-11-22 16:40:48.389146404 +0100
@@ -301,7 +301,7 @@ lists_of_files = \
 
 extract_symvers = $(glibcxx_builddir)/scripts/extract_symvers
 baseline_subdir := $(shell $(CXX) $(baseline_subdir_switch))
-check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9)
+check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3 4 5 6 7 8 9 10)
 
 # Runs the testsuite, but in compile only mode.
 # Can be used to test sources with non-GNU FE's at various warning
@@ -562,16 +562,16 @@ check-DEJAGNU $(check_DEJAGNU_normal_tar
 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
 	  $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_normal_targets); \
-	  for idx in 0 1 2 3 4 5 6 7 8 9; do \
+	  for idx in 0 1 2 3 4 5 6 7 8 9 10; do \
 	    mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \
 	    mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \
 	  done; \
 	  mv -f libstdc++.sum libstdc++.sum.sep; \
 	  mv -f libstdc++.log libstdc++.log.sep; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	    libstdc++.sum.sep normal[0-9]/libstdc++.sum.sep > libstdc++.sum; \
+	    libstdc++.sum.sep normal[0-9]*/libstdc++.sum.sep > libstdc++.sum; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
-	    libstdc++.log.sep normal[0-9]/libstdc++.log.sep > libstdc++.log; \
+	    libstdc++.log.sep normal[0-9]*/libstdc++.log.sep > libstdc++.log; \
 	  exit 0; \
 	fi; \
 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
@@ -601,10 +601,12 @@ check-DEJAGNU $(check_DEJAGNU_normal_tar
 	  normal6) \
 	    dirs="`cd $$srcdir; echo 2[459]_*/*`";; \
 	  normal7) \
-	    dirs="`cd $$srcdir; echo 2[68]_*/*`";; \
+	    dirs="`cd $$srcdir; echo 26_*/* 28_*/[c-z]*`";; \
 	  normal8) \
 	    dirs="`cd $$srcdir; echo 27_*/*`";; \
 	  normal9) \
+	    dirs="`cd $$srcdir; echo 28_*/[ab]*`";; \
+	  normal10) \
 	    dirs="`cd $$srcdir; echo t*/*`";; \
 	esac; \
 	if [ -n "$*" ]; then cd "$*"; fi; \

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]