[Pkg-gauche-devel] some make check failures in the buildd logs

Jens Thiele karme at karme.de
Mon Feb 7 07:46:49 UTC 2011


NIIBE Yutaka <gniibe at fsij.org> writes:

> 2011-02-05 18:50, Jens Thiele wrote:
>> too late for squeeze, but didn't notice this until now:
>
> Thanks.  I should have been more careful...
>
>> amd64:
>> https://buildd.debian.org/fetch.cgi?pkg=gauche;ver=0.9-17;arch=amd64;stamp=1296811617
>> [...]
>> GAUCHE_TEST_RECORD_FILE=../../test.record ../../src/gosh -ftest -I. test.scm > test.log
>> Testing net ...                                                  failed.
>> discrepancies found.  Errors are:
>> test inet client socket: expects #t => got #f
>> [...]
>> 
>> (afair this might be due to /etc/services missing / netbase dependency?)
>
> No.  We have netbase build time dependency in debian/control.
> I think that this is IPv6 failure.

will you look into this?
(i noted that you disabled that test, for now.)

>> armel:
>> https://buildd.debian.org/fetch.cgi?pkg=gauche;ver=0.9-17;arch=armel;stamp=1296813246
>> /bin/bash: line 4: 22137 Segmentation fault      ${dir}$tst
> [...]
>> mipsel:
>> https://buildd.debian.org/fetch.cgi?pkg=gauche;ver=0.9-17;arch=mipsel;stamp=1296812775
>> /bin/bash: line 4:  2953 Segmentation fault      ${dir}$tst
>
> Ouch.  I will fix those failure.

thanks

>> imho build should fail if any test fails. what do you think?
>
> For Debian build, I had assumed so.
>
> This is because the Makefile of gauche is written like:
>
> ------------------
> check: all
> 	@rm -f $(TESTRECORD)
> 	for d in $(SUBDIRS); do (cd $$d; $(MAKE) check); done
> 	@cat $(TESTRECORD)
> ------------------
>
> This ignore result of $(MAKE).  If we want to stop immediately, it
> should be something like:
>
> 	for d in $(SUBDIRS); do (cd $$d && $(MAKE) check || exit 1); done

This is not good enough (it only exits the subshell)

$ dash -c 'for i in $(seq 1 10); do (echo $i ; exit 1 ; ); done'
1
2
3
4
5
6
7
8
9
10

options (note: did not really check posix conformance)

use break:
$ dash -c 'for i in $(seq 1 10); do (echo $i ; exit 1 ; ) || break; done'
1

don't use subshell:
$ dash -c 'for i in $(seq 1 10); do { echo $i ; exit 1 ; } ; done'
1

use set -e:
(maybe not really an option [0])
$ dash -c 'set -e; for i in $(seq 1 10); do echo $i; false; done'
1

jens

[0] http://www.in-ulm.de/~mascheck/various/set-e/



More information about the Pkg-gauche-devel mailing list