diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-06-26 16:14:40 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-06-26 23:19:14 +0200 |
commit | f99f00fc814a3e1a3e1cedb5059c896e3303677c (patch) | |
tree | 6487e1037b10872cdffc8a7ad607b46b6bb38b6a /tests | |
parent | c31605b58228dbd10c819311a17341a22c9e5118 (diff) | |
download | guix-f99f00fc814a3e1a3e1cedb5059c896e3303677c.tar.gz guix-f99f00fc814a3e1a3e1cedb5059c896e3303677c.zip |
status: Relay "updating substitutes" messages.
Until now, those messages would be accumulated and displayed all at
once, when a '\n' was finally emitted by 'guix substitute'. In the
meantime, clients would remain silent.
* guix/status.scm (bytevector-index): Change 'number' parameter to
'numbers' and adjust accordingly.
(build-event-output-port): Pass both #\newline and #\return to
'bytevector-index'.
* tests/status.scm ("build-output-port, daemon messages with LF"): New
test.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/status.scm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/status.scm b/tests/status.scm index 79024ba2b3..b0af619872 100644 --- a/tests/status.scm +++ b/tests/status.scm @@ -124,6 +124,20 @@ (force-output port) (get-status))) +(test-equal "build-output-port, daemon messages with LF" + '((build-log #f "updating substitutes... 0%\r") + (build-log #f "updating substitutes... 50%\r") + (build-log #f "updating substitutes... 100%\r")) + (let ((port get-status (build-event-output-port cons '()))) + (for-each (lambda (suffix) + (let ((bv (string->utf8 + (string-append "updating substitutes... " + suffix "\r")))) + (put-bytevector port bv) + (force-output port))) + '("0%" "50%" "100%")) + (reverse (get-status)))) + (test-equal "current-build-output-port, UTF-8 + garbage" ;; What about a mixture of UTF-8 + garbage? (let ((replacement "�")) |