Ran the test suite for coreutils:

====
root:/scripts# grep -i fail src/coreutils-8.14/gnulib-tests/test-suite.log
1 of 270 tests failed.  (24 tests were not run).  
FAIL: test-parse-datetime (exit: 134)
test-parse-datetime.c:142: assertion failed
====

That's just the grep output (for '-i fail') in case anyone was wondering if 
there's more output.

Is this failure a show-stopper?  Or, can it be safely "ignored" (e.g., a 
bad-but-unavoidable host system)?

* * *

On the issue of failed tests (particularly in gcc & glibc), I've written some 
wrappers around those compilations, and do something like:

        cat test-summary | grep "sources" | egrep -v 
"known-fail-test-1|known-fail-test-2" | wc -l

Which basically scans the test summary files for the failed source files, and 
excludes the files/tests that are known (e.g., libmudflap, etc).  Then, it 
counts the lines with the intention of aborting if there are any lines found 
OTHER than the "sort-of-expected" failures.  I feel this is a reasonable 
approach for most, since we're mostly not gcc/glibc devs, and the test failures 
would be hard to evaluate.  Which is to say, I'm assuming that if the book 
lists these errors, we may as well exclude them from consideration.

For the gcc tests, I've scanned through a few other summaries from the GCC 
status pages, and removed some badly offending ones that seem to fail on lots 
of platforms.

For glibc, I just use the suggested "ignore" list in the book.

Do you feel this is a reasonable approach; if so, does this merit inclusion in 
the book itself?  Something like this:

==== glibc ====
#
# Well, GLIBC will have errors, so we turn bash error-
# handling off...
#
set +e
make -k check 2>&1 | tee glibc-check-log
set -e
#
# Now, turn bash error-handling back on, and check for
# the specific errors that are common.  If we find any
# other errors, then FAIL; otherwise, PASS.
#
__GLIBC_TEST_ERROR_COUNT=$(grep Error glibc-check-log | grep sources | egrep -v 
"posix/annexc|nptl/tst-clock2|nptl/tst-attr3|rt/tst-cpuclock2|misc/tst-writev|elf/check-textrel|nptl/tst-getpid2|stdio-common/bug22|posix/bug-regex32"
 | wc -l)

if [ 0 -ne $__GLIBC_TEST_ERROR_COUNT ] ; then
        grep Error glibc-check-log | grep sources
        false
fi
====

==== gcc ====
#
# GCC has a lot of tests, and some very complex ones can fail.
#
set +e
make -k check
set -e
../gcc-4.6.1/contrib/test_summary > ~/gcc-4.6.1-test_summary-LFS-$(date 
'+%Y%m%d_%H%M%S')

__GCC_FAIL_COUNT=$(../gcc-4.6.1/contrib/test_summary | grep FAIL | wc -l)
__GCC_OKAY_FAIL_COUNT=$(../gcc-4.6.1/contrib/test_summary | grep FAIL | egrep -v
 "gcc.c-torture/compile/limits-exprparen.c|libmudflap.c/pass49-frag.c" | wc -l)

if [ 0 -lt $__GCC_OKAY_FAIL_COUNT ] ; then        
../gcc-4.6.1/contrib/test_summary | grep FAIL
        echo "GCC testing failed; aborting"
        false
elif [ 0 -lt $__GCC_FAIL_COUNT ] ; then
        ../gcc-4.6.1/contrib/test_summary | grep FAIL
        echo "GCC testing had some failures, but these might be okay; 
continuing anyway..."
fi
====

        Q

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-support
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to