From 6f38960055e496193a49d690d7f1b5516b2b8625 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Mar 2017 15:04:18 +0100 Subject: hash: Close or flush sha256 output ports before calling their 'get' procedure. Slightly different buffering of custom binary output ports in Guile 2.1.7 would lead tests missing 'close-port' or 'force-output' to fail. * tests/hash.scm ("open-sha256-port, hello"): Add call to 'force-output' before call to 'get'. * tests/nar.scm ("write-file puts file in C locale collation order"): Call 'close-port' before calling 'get-hash'. --- tests/hash.scm | 3 ++- tests/nar.scm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/hash.scm b/tests/hash.scm index 8039549971..86501dca2d 100644 --- a/tests/hash.scm +++ b/tests/hash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès +;;; Copyright © 2013, 2014, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +67,7 @@ In Guile <= 2.0.9, CBIPs were always fully buffered, so the (let-values (((port get) (open-sha256-port))) (put-bytevector port (string->utf8 "hello world")) + (force-output port) (get))) (test-assert "port-sha256" diff --git a/tests/nar.scm b/tests/nar.scm index 4f4b304b1d..28ead8b783 100644 --- a/tests/nar.scm +++ b/tests/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,6 +186,7 @@ (lambda () (let-values (((port get-hash) (open-sha256-port))) (write-file input port) + (close-port port) (get-hash))) (lambda () (rm-rf input))))) -- cgit v1.2.3 From dd420bf3430eb644b93ca224da4c0a3f5db7a42f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Mar 2017 15:22:07 +0100 Subject: tests: Avoid zero-expression 'begin' form. * tests/cran.scm ("description->package"): Add body after the expected pattern in 'match'. --- tests/cran.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/cran.scm b/tests/cran.scm index f92934c468..c162d45d8a 100644 --- a/tests/cran.scm +++ b/tests/cran.scm @@ -126,7 +126,8 @@ Date/Publication: 2015-07-14 14:15:16 "This is a long description spanning multiple lines: \ and it could confuse the parser that there is a colon : on the \ lines. And: this line continues the description.") - ('license 'gpl3+))) + ('license 'gpl3+)) + #t) (x (begin (format #t "~s\n" x) -- cgit v1.2.3 From 1062063a65036f32a061c54866d33ffe079ec44e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Mar 2017 22:21:31 +0100 Subject: ui: Don't use '%default-port-encoding' to set the encoding of string ports. * guix/ui.scm (right-arrow): Call 'set-port-encoding!' to set PORT's encoding; remove use of 'with-fluids'. This is for compatibility with Guile 2.2 where the encoding of string ports is not influenced by %DEFAULT-PORT-ENCODING. * tests/ui.scm ("show-manifest-transaction"): Likewise. --- guix/ui.scm | 21 +++++++++++---------- tests/ui.scm | 11 +++++++---- 2 files changed, 18 insertions(+), 14 deletions(-) (limited to 'tests') diff --git a/guix/ui.scm b/guix/ui.scm index 5ae082fc0a..3a0a6501d1 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -635,16 +635,17 @@ report what is prerequisites are available for download." (define (right-arrow port) "Return either a string containing the 'RIGHT ARROW' character, or an ASCII replacement if PORT is not Unicode-capable." - (with-fluids ((%default-port-encoding (port-encoding port))) - (let ((arrow "→")) - (catch 'encoding-error - (lambda () - (call-with-output-string - (lambda (port) - (set-port-conversion-strategy! port 'error) - (display arrow port)))) - (lambda (key . args) - "->"))))) + (let ((encoding (port-encoding port)) + (arrow "→")) + (catch 'encoding-error + (lambda () + (call-with-output-string + (lambda (port) + (set-port-encoding! port encoding) + (set-port-conversion-strategy! port 'error) + (display arrow port)))) + (lambda (key . args) + "->")))) (define* (show-manifest-transaction store manifest transaction #:key dry-run?) diff --git a/tests/ui.scm b/tests/ui.scm index 058207e8b9..cfe417d497 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -248,9 +248,12 @@ Second line" 24)) (lambda () (show-manifest-transaction store m t))))) (string-match "guile\t1.8.8 -> 2.0.9" - (with-fluids ((%default-port-encoding "ISO-8859-1")) - (with-error-to-string - (lambda () - (show-manifest-transaction store m t))))))))) + (with-error-to-string + (lambda () + ;; In Guile 2.2, %DEFAULT-PORT-ENCODING doesn't + ;; influence the encoding of string ports. + (set-port-encoding! (current-error-port) + "ISO-8859-1") + (show-manifest-transaction store m t)))))))) (test-end "ui") -- cgit v1.2.3