mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
Move base32 code to (guix base32).
* guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right, bytevector-quintet-length, bytevector-quintet-fold, bytevector-quintet-fold-right, make-bytevector->base32-string, %nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string, bytevector->nix-base32-string, bytevector-quintet-set!, bytevector-quintet-set-right!, base32-string-unfold, base32-string-unfold-right, make-base32-string->bytevector, base32-string->bytevector, nix-base32-string->bytevector): Move to... * guix/base32.scm: ... here. New file. * tests/utils.scm (%nix-hash, "bytevector->base32-string", "base32-string->bytevector", "nix-base32-string->bytevector", "sha256 & bytevector->base32-string"): Move to... * tests/base32.scm: ... here. New file * guix-download.in, guix/derivations.scm, guix/packages.scm, guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust accordingly. * guix.scm (%public-modules): Add `base32'.
This commit is contained in:
parent
9e782349fe
commit
ddc29a782e
12 changed files with 392 additions and 322 deletions
|
@ -16,59 +16,17 @@
|
|||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
(define-module (test-utils)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix store) #:select (store-path-package-name))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-64)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (rnrs io ports)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define %nix-hash
|
||||
(or (getenv "NIX_HASH")
|
||||
"nix-hash"))
|
||||
|
||||
(test-begin "utils")
|
||||
|
||||
(test-assert "bytevector->base32-string"
|
||||
(fold (lambda (bv expected result)
|
||||
(and result
|
||||
(string=? (bytevector->base32-string bv)
|
||||
expected)))
|
||||
#t
|
||||
|
||||
;; Examples from RFC 4648.
|
||||
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
|
||||
'(""
|
||||
"my"
|
||||
"mzxq"
|
||||
"mzxw6"
|
||||
"mzxw6yq"
|
||||
"mzxw6ytb"
|
||||
"mzxw6ytboi")))
|
||||
|
||||
(test-assert "base32-string->bytevector"
|
||||
(every (lambda (bv)
|
||||
(equal? (base32-string->bytevector
|
||||
(bytevector->base32-string bv))
|
||||
bv))
|
||||
;; Examples from RFC 4648.
|
||||
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
|
||||
|
||||
(test-assert "nix-base32-string->bytevector"
|
||||
(every (lambda (bv)
|
||||
(equal? (nix-base32-string->bytevector
|
||||
(bytevector->nix-base32-string bv))
|
||||
bv))
|
||||
;; Examples from RFC 4648.
|
||||
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
|
||||
|
||||
(test-assert "bytevector->base16-string->bytevector"
|
||||
(every (lambda (bv)
|
||||
(equal? (base16-string->bytevector
|
||||
|
@ -76,22 +34,6 @@
|
|||
bv))
|
||||
(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))
|
||||
|
||||
(test-assert "sha256 & bytevector->nix-base32-string"
|
||||
(let ((file (search-path %load-path "tests/test.drv")))
|
||||
(equal? (bytevector->nix-base32-string
|
||||
(sha256 (call-with-input-file file get-bytevector-all)))
|
||||
(let* ((c (format #f "~a --type sha256 --base32 --flat \"~a\""
|
||||
%nix-hash file))
|
||||
(p (open-input-pipe c))
|
||||
(l (read-line p)))
|
||||
(close-pipe p)
|
||||
l))))
|
||||
|
||||
(test-assert "gnu-triplet->nix-system"
|
||||
(let ((samples '(("i586-gnu0.3" "i686-gnu")
|
||||
("x86_64-unknown-linux-gnu" "x86_64-linux")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue