Subject: Re: bug#65503: Test suite logs aren't printed on failure during package build

From: Maxim Cournoyer <[email-masked]>
Date: Sat, 26 Aug 2023 21:30:04 -0400

Hi Maxime!

Maxime Devos <[email-masked]> writes:

> From <https://ci.guix.gnu.org/build/1865837/log/raw>:
>
>> make[4]: *** [Makefile:6303: tests/publish.log] Error 134
>> make[4]: Leaving directory '/tmp/guix-build-guix-1.4.0-8.0e6215a.drv-0/source'
>> make[3]: *** [Makefile:6285: check-TESTS] Error 2
>> make[3]: Leaving directory '/tmp/guix-build-guix-1.4.0-8.0e6215a.drv-0/source'
>> make[2]: *** [Makefile:6533: check-am] Error 2
>> make[2]: Leaving directory '/tmp/guix-build-guix-1.4.0-8.0e6215a.drv-0/source'
>> make[1]: *** [Makefile:6062: check-recursive] Error 1
>> make[1]: Leaving directory '/tmp/guix-build-guix-1.4.0-8.0e6215a.drv-0/source'
>> make: *** [Makefile:6535: check] Error 2
>> Test suite failed, dumping logs.
>> error: in phase 'check': uncaught exception:
>> %exception #<&invoke-error program: "make" arguments: ("check")
>> exit-status: 2 term-signal: #f stop-signal: #f> phase `check' failed
>> after 358.4 seconds
>> command "make" "check" failed with status 2
>> builder for
>> `/gnu/store/aw8li62xps10cz32crrxvm18ccafvzh0-guix-1.4.0-8.0e6215a.drv'
>> failed with exit code 1
>> @ build-failed
>> /gnu/store/aw8li62xps10cz32crrxvm18ccafvzh0-guix-1.4.0-8.0e6215a.drv
>> - 1 builder for
>> `/gnu/store/aw8li62xps10cz32crrxvm18ccafvzh0-guix-1.4.0-8.0e6215a.drv'
>> failed with exit code 1
>> cannot build derivation
>> `/gnu/store/dhf0chl41bj37a20c7bwdqnbjjgsc1i0-gwl-0.5.1.drv': 1
>> dependencies couldn't be built
>
> Sure, the log has been dumped somewhere, but it's dumped in the build
> directory instead of the build log of the Guix package.  It would be
> quite convenient if there were some kind of flag or something (that is
> enabled in the package definition) to dump dump it to stderr.  Or just
> some ad-hoc:
>
>
> (guard (c ((invoke-error? c)
>            [copy all tests/*.log to stderr]
>            (raise-continuable c)))
>    [run tests]).

It's actually possible to have the test harness copy the errors to the
output directly, via

--8<---------------cut here---------------start------------->8---
make check SCM_LOG_DRIVER_FLAGS="--errors-only=yes" VERBOSE=1
--8<---------------cut here---------------end--------------->8---

I guess we could have these switch enabled by default (perhaps with
'--brief=no' as well) set by default, as they are useful in most
contexts.

For more information, see info "(guix) Running the Test Suite".

-- 
Thanks,
Maxim