From: Mike Frysinger Date: Sun, 23 Oct 2022 19:45:18 +0000 (+0545) Subject: sim: testsuite: improve parallel test processing X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8f97b519fb061a7243344905cc23a77adda6be7a;p=binutils-gdb.git sim: testsuite: improve parallel test processing The current logic limits itself to a maxdepth of 4 when looking for results. This wouldn't be a problem if cris didn't have a testsuite at a depth of 5 which we end up ignoring when summarizing. Rather than bump the number from 4 to 5, rework the code so that we gather the exact set of tests that we tried to run. --- diff --git a/sim/Makefile.in b/sim/Makefile.in index 18e84e52266..f471289600c 100644 --- a/sim/Makefile.in +++ b/sim/Makefile.in @@ -2474,13 +2474,14 @@ check/%.exp: check-DEJAGNU-parallel: $(AM_V_at)( \ - $(MAKE) -k \ - `cd $(srcdir)/testsuite && find . -name '*.exp' -printf 'check/%P '`; \ + set -- `cd $(srcdir)/testsuite && find . -name '*.exp' -printf '%P\n' | sed 's:[.]exp$$::'`; \ + $(MAKE) -k `printf 'check/%s.exp ' $$@`; \ ret=$$?; \ + set -- `printf 'testsuite/%s/ ' $$@`; \ $(SHELL) $(srcroot)/contrib/dg-extract-results.sh \ - `find testsuite/ -maxdepth 4 -name testrun.sum | sort` > testrun.sum; \ + `find $$@ -maxdepth 1 -name testrun.sum 2>/dev/null | sort` > testrun.sum; \ $(SHELL) $(srcroot)/contrib/dg-extract-results.sh -L \ - `find testsuite/ -maxdepth 4 -name testrun.log | sort` > testrun.log; \ + `find $$@ -maxdepth 1 -name testrun.log 2>/dev/null | sort` > testrun.log; \ echo; \ $(SED) -n '/^.*===.*Summary.*===/,$$p' testrun.sum; \ exit $$ret) diff --git a/sim/testsuite/local.mk b/sim/testsuite/local.mk index b8114a56599..cee51f24ae0 100644 --- a/sim/testsuite/local.mk +++ b/sim/testsuite/local.mk @@ -50,13 +50,14 @@ check/%.exp: check-DEJAGNU-parallel: $(AM_V_at)( \ - $(MAKE) -k \ - `cd $(srcdir)/testsuite && find . -name '*.exp' -printf 'check/%P '`; \ + set -- `cd $(srcdir)/testsuite && find . -name '*.exp' -printf '%P\n' | sed 's:[.]exp$$::'`; \ + $(MAKE) -k `printf 'check/%s.exp ' $$@`; \ ret=$$?; \ + set -- `printf 'testsuite/%s/ ' $$@`; \ $(SHELL) $(srcroot)/contrib/dg-extract-results.sh \ - `find testsuite/ -maxdepth 4 -name testrun.sum | sort` > testrun.sum; \ + `find $$@ -maxdepth 1 -name testrun.sum 2>/dev/null | sort` > testrun.sum; \ $(SHELL) $(srcroot)/contrib/dg-extract-results.sh -L \ - `find testsuite/ -maxdepth 4 -name testrun.log | sort` > testrun.log; \ + `find $$@ -maxdepth 1 -name testrun.log 2>/dev/null | sort` > testrun.log; \ echo; \ $(SED) -n '/^.*===.*Summary.*===/,$$p' testrun.sum; \ exit $$ret)