This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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]

Re: [build] Support multilib testing in libgo


* 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


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