aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog13
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in47
2 files changed, 47 insertions, 13 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 54e9c8a..3bb099c 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,16 @@
+2014-09-15 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc-interface/Make-lang.in (check_acats_numbers0,
+ check_acats_numbers1, check_acats_numbers2, check_acats_numbers3,
+ check_acats_numbers4, check_acats_numbers5, check_acats_numbers6,
+ check_acats_numbers, check_acats_subdirs): New variables.
+ (check_acats_targets): Use $(check_acats_subdirs).
+ (check-acats, check-acats%): Rewritten so that for parallelized
+ testing each job runs all the chapters files, with
+ GCC_RUNTEST_PARALLELIZE_DIR set in environment. Prepare the support
+ directory sequentially and share it.
+ (check-acats-subtargets): Always print just check-acats.
+
2014-08-25 Martin Liska <mliska@suse.cz>
* gcc-interface/utils.c (rest_of_subprog_body_compilation): Adjust to
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 478272f..e11794f 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -862,7 +862,18 @@ check-ada-subtargets: check-acats-subtargets check-gnat-subtargets
ACATSDIR = $(TESTSUITEDIR)/ada/acats
-check_acats_targets = $(patsubst %,check-acats%, 0 1 2)
+check_acats_numbers0:=1 2 3 4 5 6 7 8 9
+check_acats_numbers1:=0 $(check_acats_numbers0)
+check_acats_numbers2:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers1)))
+check_acats_numbers3:=$(addprefix 0,$(check_acats_numbers1)) $(check_acats_numbers2)
+check_acats_numbers4:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers3)))
+check_acats_numbers5:=$(addprefix 0,$(check_acats_numbers3)) $(check_acats_numbers4)
+check_acats_numbers6:=$(foreach i,$(check_acats_numbers0),$(addprefix $(i),$(check_acats_numbers5)))
+check_acats_numbers:=$(check_acats_numbers0) $(check_acats_numbers2) $(check_acats_numbers4) $(check_acats_numbers6)
+check_acats_subdirs=$(wordlist 1, \
+ $(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),128), \
+ $(check_acats_numbers))
+check_acats_targets = $(addprefix check-acats, $(check_acats_subdirs))
check-acats:
@test -d $(ACATSDIR) || mkdir -p $(ACATSDIR); \
@@ -870,35 +881,45 @@ check-acats:
EXPECT=$(EXPECT); export EXPECT; \
if [ -z "$(CHAPTERS)" ] && [ "$(filter -j, $(MFLAGS))" = "-j" ]; \
then \
+ rm -rf $(ACATSDIR)-parallel; \
+ mkdir $(ACATSDIR)-parallel; \
+ ( testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \
+ export testdir; \
+ cd $(ACATSDIR) && $(SHELL) $${testdir}/run_acats NONE ) \
+ || exit 1; \
+ GCC_RUNTEST_PARALLELIZE_DIR=$$rootme/$(ACATSDIR)-parallel; \
+ export GCC_RUNTEST_PARALLELIZE_DIR; \
$(MAKE) $(check_acats_targets); \
- for idx in 0 1 2; do \
+ rm -rf $(ACATSDIR)-parallel; \
+ acats_sums= ; acats_logs= ; \
+ for idx in "" $(check_acats_subdirs); do \
+ [ -d $(ACATSDIR)$$idx ] || continue; \
mv -f $(ACATSDIR)$$idx/acats.sum $(ACATSDIR)$$idx/acats.sum.sep; \
mv -f $(ACATSDIR)$$idx/acats.log $(ACATSDIR)$$idx/acats.log.sep; \
+ acats_sums="$$acats_sums $(ACATSDIR)$$idx/acats.sum.sep"; \
+ acats_logs="$$acats_logs $(ACATSDIR)$$idx/acats.log.sep"; \
done; \
$(SHELL) $(srcdir)/../contrib/dg-extract-results.sh \
- $(ACATSDIR)0/acats.sum.sep $(ACATSDIR)1/acats.sum.sep \
- $(ACATSDIR)2/acats.sum.sep > $(ACATSDIR)/acats.sum; \
+ $$acats_sums > $(ACATSDIR)/acats.sum; \
$(SHELL) $(srcdir)/../contrib/dg-extract-results.sh -L \
- $(ACATSDIR)0/acats.log.sep $(ACATSDIR)1/acats.log.sep \
- $(ACATSDIR)2/acats.log.sep > $(ACATSDIR)/acats.log; \
+ $$acats_logs > $(ACATSDIR)/acats.log; \
exit 0; \
fi; \
testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \
export testdir; cd $(ACATSDIR) && $(SHELL) $${testdir}/run_acats $(CHAPTERS)
check-acats-subtargets:
- @echo $(check_acats_targets)
+ @echo check-acats
# Parallelized check-acats
$(check_acats_targets): check-acats%:
+ if [ -f $$GCC_RUNTEST_PARALLELIZE_DIR/finished ]; then \
+ rm -rf $(ACATSDIR)$*; exit 0; \
+ fi; \
test -d $(ACATSDIR)$* || mkdir -p $(ACATSDIR)$*; \
testdir=`cd ${srcdir}/${ACATSDIR} && ${PWD_COMMAND}`; \
- case "$*" in \
- 0) chapters="`cd $$testdir/tests; echo [a-b]* c[0-4]*`";; \
- 1) chapters="`cd $$testdir/tests; echo c[5-9ab]*`";; \
- 2) chapters="`cd $$testdir/tests; echo c[c-z]* [d-z]*`";; \
- esac; \
- export testdir; cd $(ACATSDIR)$* && $(SHELL) $${testdir}/run_acats $$chapters
+ export testdir; cd $(ACATSDIR)$* && $(SHELL) $${testdir}/run_acats
+ touch $$GCC_RUNTEST_PARALLELIZE_DIR/finished
.PHONY: check-acats $(check_acats_targets)