me
/
guix
Archived
1
0
Fork 0

tests: base32: Work around `system*' bug.

* tests/base32.scm (%nix-hash): When `getenv' returns the empty string,
  ignore it.
  (%have-nix-hash?): New variable.  Update `test-skip' clause to use it.
master
Ludovic Courtès 2012-12-13 00:23:20 +01:00
parent a9128eac41
commit fdb50f8d8a
1 changed files with 13 additions and 5 deletions

View File

@ -23,15 +23,24 @@
#:use-module (srfi srfi-64) #:use-module (srfi srfi-64)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 popen) #:use-module (ice-9 popen)
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors) #:use-module (rnrs bytevectors)
#:use-module (rnrs io ports)) #:use-module (rnrs io ports))
;; Test the (guix base32) module. ;; Test the (guix base32) module.
(define %nix-hash (define %nix-hash
(or (getenv "NIX_HASH") (or (and=> (getenv "NIX_HASH")
(match-lambda
("" #f)
(val val)))
"nix-hash")) "nix-hash"))
(define %have-nix-hash?
;; Note: Use `system', not `system*', because of <http://bugs.gnu.org/13166>.
(false-if-exception
(zero? (system (string-append %nix-hash " --version")))))
(test-begin "base32") (test-begin "base32")
(test-assert "bytevector->base32-string" (test-assert "bytevector->base32-string"
@ -67,10 +76,9 @@
;; Examples from RFC 4648. ;; Examples from RFC 4648.
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar")))) (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
;; The following tests requires `nix-hash' in $PATH. ;; The following test requires `nix-hash' in $PATH.
(test-skip (if (false-if-exception (system* %nix-hash "--version")) (unless %have-nix-hash?
0 (test-skip 1))
1))
(test-assert "sha256 & bytevector->nix-base32-string" (test-assert "sha256 & bytevector->nix-base32-string"
(let ((file (search-path %load-path "tests/test.drv"))) (let ((file (search-path %load-path "tests/test.drv")))