[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Speeding up 'make check-system'

From: Maxim Cournoyer
Subject: Speeding up 'make check-system'
Date: Tue, 11 Feb 2020 11:51:19 -0500

Attachment: 0001-gnu-tests-Reduce-the-time-required-to-run-the-system.patch
Description: Text Data

Hello Guix!

The attached patch aims to speed up iterative development with 'make
check-system', by reusing most of the compiled objects from the Guix
checkout you are developing from (which needs to be built anyway for
'make check' to run).

Why most and not all?  Because the C++ daemon refers (links) to external
libraries that were captured at the time it was built, and are most
likely different from those inherited from the Guix package defined in
your checkout.

A solution would be have the "current-guix/pre-built" package inherit
from the *inferior* of the guix package that was used to build the
profile in which the deamon was actually built.  I'm punting on that one
because there doesn't seem to be a robust way to query the provenance of
a profile ('guix environment' generates a profile without said
information, for example).

Anyway, recompiling the daemon only vs the whole Guix .go files already
cuts down the time nicely from 20+ minutes to a couple minutes or so, on
a dated X200 machine, which helps when iterating on Guix code changes

To benchmark the build of just the current-guix/pre-built package, one
can use:

--8<---------------cut here---------------start------------->8---
time ./pre-inst-env guix build -e '((@ (gnu packages package-management) 
--8<---------------cut here---------------end--------------->8---

To try using that package in an actual system test, you could use:

--8<---------------cut here---------------start------------->8---
GUIX_DEV_HACKS=1 make check-system TESTS=basic
--8<---------------cut here---------------end--------------->8---

or just 'make check-system', if you have lots of time on your hands :-)



Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]