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.
This commit is contained in:
parent
25945666e3
commit
d591242808
|
@ -2502,6 +2502,10 @@ void DerivationGoal::registerOutputs()
|
||||||
throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs")
|
throw Error(format("derivation `%1%' may not be deterministic: output `%2%' differs")
|
||||||
% drvPath % path);
|
% drvPath % path);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (settings.printBuildTrace)
|
||||||
|
printMsg(lvlError, format("@ build-succeeded %1% -") % drvPath);
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -917,6 +917,19 @@
|
||||||
(build-mode check))
|
(build-mode check))
|
||||||
#f))))))))
|
#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"
|
(test-assert "build multiple times"
|
||||||
(with-store store
|
(with-store store
|
||||||
;; Ask to build twice.
|
;; Ask to build twice.
|
||||||
|
|
Loading…
Reference in New Issue