Browse Source

daemon: Emit a 'build-succeeded' event in check mode.

Until now, something like "guix build sed -v1 --check" would not get a
'build-succeeded' event, which in turn meant that the spinner would not
be erased upon build completion.

* nix/libstore/build.cc (DerivationGoal::registerOutputs): When
'buildMode' is bmCheck and 'settings.printBuildTrace' emit a
"@ build-succeeded" trace upon success.
* tests/store.scm ("build-succeeded trace in check mode"): New test.
wip-deploy2
Ludovic Courtès 3 years ago
parent
commit
d591242808
No known key found for this signature in database GPG Key ID: 90B11993D9AEBB5
  1. 4
      nix/libstore/build.cc
  2. 13
      tests/store.scm

4
nix/libstore/build.cc

@ -2502,6 +2502,10 @@ void DerivationGoal::registerOutputs()
throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs")
% drvPath % path);
}
if (settings.printBuildTrace)
printMsg(lvlError, format("@ build-succeeded %1% -") % drvPath);
continue;
}

13
tests/store.scm

@ -917,6 +917,19 @@
(build-mode check))
#f))))))))
(test-assert "build-succeeded trace in check mode"
(string-contains
(call-with-output-string
(lambda (port)
(let ((d (build-expression->derivation
%store "foo" '(mkdir (assoc-ref %outputs "out"))
#:guile-for-build
(package-derivation %store %bootstrap-guile))))
(build-derivations %store (list d))
(parameterize ((current-build-output-port port))
(build-derivations %store (list d) (build-mode check))))))
"@ build-succeeded"))
(test-assert "build multiple times"
(with-store store
;; Ask to build twice.

Loading…
Cancel
Save