me
/
guix
Archived
1
0
Fork 0

tests: Test fixed-output derivations with several hash algorithms.

* tests/derivations.scm ("fixed-output derivation"): Test several hash
algorithms.
master
Ludovic Courtès 2020-05-18 21:59:58 +02:00
parent 73b27eaa64
commit 9418aaa00d
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 24 additions and 15 deletions

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -324,20 +324,29 @@
#:hash hash #:hash-algo 'sha256))) #:hash hash #:hash-algo 'sha256)))
(fixed-output-derivation? drv))) (fixed-output-derivation? drv)))
(test-assert "fixed-output derivation" (test-equal "fixed-output derivation"
'(sha1 sha256 sha512)
(map (lambda (hash-algorithm)
(let* ((builder (add-text-to-store %store "my-fixed-builder.sh" (let* ((builder (add-text-to-store %store "my-fixed-builder.sh"
"echo -n hello > $out" '())) "echo -n hello > $out" '()))
(hash (sha256 (string->utf8 "hello"))) (sha256 (sha256 (string->utf8 "hello")))
(drv (derivation %store "fixed" (hash (bytevector-hash
(string->utf8 "hello")
(lookup-hash-algorithm hash-algorithm)))
(drv (derivation %store
(string-append
"fixed-" (symbol->string hash-algorithm))
%bash `(,builder) %bash `(,builder)
#:sources `(,builder) ;optional #:sources `(,builder) ;optional
#:hash hash #:hash-algo 'sha256)) #:hash hash
(succeeded? (build-derivations %store (list drv)))) #:hash-algo hash-algorithm)))
(and succeeded? (build-derivations %store (list drv))
(let ((p (derivation->output-path drv))) (let ((p (derivation->output-path drv)))
(and (equal? (string->utf8 "hello") (and (bytevector=? (string->utf8 "hello")
(call-with-input-file p get-bytevector-all)) (call-with-input-file p get-bytevector-all))
(bytevector? (query-path-hash %store p))))))) (bytevector? (query-path-hash %store p))
hash-algorithm))))
'(sha1 sha256 sha512)))
(test-assert "fixed-output derivation: output paths are equal" (test-assert "fixed-output derivation: output paths are equal"
(let* ((builder1 (add-text-to-store %store "fixed-builder1.sh" (let* ((builder1 (add-text-to-store %store "fixed-builder1.sh"