Test suite logs aren't printed on failure during package build

  • Open
  • quality assurance status badge
Details
2 participants
  • Maxim Cournoyer
  • Maxime Devos
Owner
unassigned
Submitted by
Maxime Devos
Severity
normal
M
M
Maxime Devos wrote on 24 Aug 2023 17:16
(name . bug-guix)(address . bug-guix@gnu.org)
334ae96c-87d2-c938-a6b6-097ec6899172@telenet.be
Toggle quote (18 lines)
> 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]).
Alternatively, Cuirass could copy some parts of failed builds and
present them in the UI.
Best regards,
Maxime Devos
Attachment: OpenPGP_signature
M
M
Maxim Cournoyer wrote on 27 Aug 2023 03:30
(name . Maxime Devos)(address . maximedevos@telenet.be)(address . 65503@debbugs.gnu.org)
87a5udmfvn.fsf@gmail.com
Hi Maxime!

Maxime Devos <maximedevos@telenet.be> writes:

Toggle quote (41 lines)
>
>> 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

Toggle snippet (3 lines)
make check SCM_LOG_DRIVER_FLAGS="--errors-only=yes" VERBOSE=1

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
?