~ruther/guix-local

fdb50f8d8aba87e48c00a9633ed3e43b13792c3e — Ludovic Courtès 13 years ago a9128ea
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.
1 files changed, 13 insertions(+), 5 deletions(-)

M tests/base32.scm
M tests/base32.scm => tests/base32.scm +13 -5
@@ 23,15 23,24 @@
  #:use-module (srfi srfi-64)
  #:use-module (ice-9 rdelim)
  #:use-module (ice-9 popen)
  #:use-module (ice-9 match)
  #:use-module (rnrs bytevectors)
  #:use-module (rnrs io ports))

;; Test the (guix base32) module.

(define %nix-hash
  (or (getenv "NIX_HASH")
  (or (and=> (getenv "NIX_HASH")
             (match-lambda
              ("" #f)
              (val val)))
      "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-assert "bytevector->base32-string"


@@ 67,10 76,9 @@
         ;; Examples from RFC 4648.
         (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))

;; The following tests requires `nix-hash' in $PATH.
(test-skip (if (false-if-exception (system* %nix-hash "--version"))
               0
               1))
;; The following test requires `nix-hash' in $PATH.
(unless %have-nix-hash?
  (test-skip 1))

(test-assert "sha256 & bytevector->nix-base32-string"
  (let ((file (search-path %load-path "tests/test.drv")))