From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21983 invoked by alias); 10 Apr 2011 07:46:14 -0000 Received: (qmail 21841 invoked by uid 22791); 10 Apr 2011 07:46:12 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mailout-de.gmx.net (HELO mailout-de.gmx.net) (213.165.64.22) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Sun, 10 Apr 2011 07:46:08 +0000 Received: (qmail invoked by alias); 10 Apr 2011 07:46:03 -0000 Received: from xdsl-89-0-86-5.netcologne.de (EHLO localhost.localdomain) [89.0.86.5] by mail.gmx.net (mp068) with SMTP; 10 Apr 2011 09:46:03 +0200 Received: from ralf by localhost.localdomain with local (Exim 4.72) (envelope-from ) id 1Q8pLO-0007Rr-PG; Sun, 10 Apr 2011 09:46:02 +0200 Date: Sun, 10 Apr 2011 07:46:00 -0000 From: Ralf Wildenhues To: Rainer Orth Cc: gcc-patches@gcc.gnu.org, Ian Lance Taylor Subject: Re: [build] Support multilib testing in libgo Message-ID: <20110410074602.GD28526@gmx.de> Mail-Followup-To: Ralf Wildenhues , Rainer Orth , gcc-patches@gcc.gnu.org, Ian Lance Taylor References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2010-08-04) X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2011-04/txt/msg00696.txt.bz2 * Rainer Orth wrote on Mon, Apr 04, 2011 at 08:19:19PM CEST: > To avoid this mess, I'm instead setting LD_LIBRARY_PATH in CHECK. While > this isn't exactly portable (some platforms, especially Darwin and > HP-UX, use different variables), it's at least more widespread than -R. Toplevel configure computes RPATH_ENVVAR for the host, and toplevel Makefile passes that. If you need it for the target, it should be easy to repeat those five lines of code somewhere. > +check-tail: check-recursive check-multi > + @lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ > + for dir in . $(MULTIDIRS); do \ > + mv ../$${dir}/$${lib}/libgo.sum ../$${dir}/$${lib}/libgo.sum.sep; \ > + mv ../$${dir}/$${lib}/libgo.log ../$${dir}/$${lib}/libgo.log.sep; \ > + done; \ > + mv libgo.head libgo.sum; \ > + cp libgo.sum libgo.log; \ > + echo "Schedule of variations:" >> libgo.sum; \ > + for dir in . $(MULTIDIRS); do \ > + multidir=../$${dir}/$${lib}; \ > + multivar=`cat $${multidir}/libgo.var`; \ > + echo " $${multivar}" >> libgo.sum; \ > + done; \ > + echo >> libgo.sum; \ > + pass=0; fail=0; untested=0; \ > + for dir in . $(MULTIDIRS); do \ > + multidir=../$${dir}/$${lib}; \ > + multivar=`cat $${multidir}/libgo.var`; \ > + echo "Running target $${multivar}" >> libgo.sum; \ > + echo "Running $(srcdir)/libgo.exp ..." >> libgo.sum; \ > + cat $${multidir}/libgo.sum.sep >> libgo.sum; \ > + cat $${multidir}/libgo.log.sep >> libgo.log; \ > + echo " === libgo Summary for $${multivar} ===" >> libgo.sum; \ > + echo >> libgo.sum; \ > + p=`grep -c PASS $${multidir}/libgo.sum.sep`; \ > + if test "$$p" != "0"; then \ I'd use -ne instead of != here and below. > + echo "# of expected passes $$p" >> libgo.sum; \ > + fi; \ > + pass=`expr $$pass + $$p`; \ > + p=`grep -c FAIL $${multidir}/libgo.sum.sep`; \ > + if test "$$p" != "0"; then \ > + echo "# of unexpected failures $$p" >> libgo.sum; \ > + fi; \ > + fail=`expr $$fail + $$p`; \ > + p=`grep -c UNTESTED libgo.sum`; \ > + if test "$$p" != "0"; then \ > + echo "# of untested testcases $$p" >> libgo.tail; \ > + fi; \ > + untested=`expr $$untested + $$p`; \ > + done; \ > + echo >> libgo.sum; \ > + echo " === libgo Summary ===" >> libgo.sum; \ > + echo >> libgo.sum; \ > + if test "$$pass" != "0"; then \ > + echo "# of expected passes $$pass" >> libgo.sum; \ > + fi; \ > + if test "$$fail" != "0"; then \ > + echo "# of unexpected failures $$fail" >> libgo.sum; \ > + fi; \ > + if test "$$untested" != "0"; then \ > + echo "# of untested testcases $$untested" >> libgo.sum; \ > + fi; \ > + echo `echo $(GOC) | sed -e 's/ .*//'` `$(GOC) -v 2>&1 | grep " version" | sed -n -e 's/.* \(version.*$$\)/\1/p'` >> libgo.sum; \ This line: echo `echo $(GOC) | sed -e 's/ .*//'` ... is equivalent to: echo $(GOC) ... as the shell squashes unquoted multiple adjacent white space. > + echo >> libgo.log; \ > + echo "runtest completed at `date`" >> libgo.log > + > check-am: > @rm -f libgo.sum libgo.log libgo.tail > - @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 > - @echo > libgo.tail > - @echo " === libgo summary ===" >> libgo.tail > - @echo >> libgo.tail > + @multivar="unix"; \ > + [ -z "$(MULTIFLAGS)" ] || multivar="$${multivar}/$(MULTIFLAGS)"; \ > + echo "$${multivar}" > libgo.var > @for f in $(TEST_PACKAGES); do \ > rm -f $$f-testsum $$f-testlog; \ > done > - @$(MAKE) -k $(TEST_PACKAGES); \ > - status=$$?; \ > + -@$(MAKE) -k $(TEST_PACKAGES) > for f in $(TEST_PACKAGES); do \ > if test -f $$f-testsum; then \ > cat $$f-testsum >> libgo.sum; \ > @@ -3095,27 +3153,12 @@ check-am: > if test -f $$f-testlog; then \ > cat $$f-testlog >> libgo.log; \ > fi; \ > - done; \ > - 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; \ > - p=`grep -c UNTESTED libgo.sum`; \ > - if test "$$p" != "0"; then \ > - echo "# of untested testcases $$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 > + done > + > +check-multi: > + $(MULTIDO) $(AM_MAKEFLAGS) DO=check-am multi-do # $(MAKE) > + > +MOSTLYCLEAN_FILES = libgo.head libgo.sum.sep libgo.log.sep > > mostlyclean-local: > find . -name '*.lo' -print | xargs $(LIBTOOL) --mode=clean rm -f Cheers, Ralf