;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (test-utils) #:use-module ((gui
aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions
:foo 42)))) (test-equal "default-keyword-arguments" '((#:foo 2) (#:foo 2) (#:foo 2 #:bar 3) (#:foo 2 #:bar 3) (#:foo 2 #:bar 3)) (list (default-keyword-arguments '() '(#:foo 2)) (default-keyword-arguments '(#:foo 2) '(#:foo 4)) (default-keyword-arguments '() '(#:bar 3 #:foo 2)) (default-keyword-arguments '(#:bar 3) '(#:foo 2)) (default-keyword-arguments '(#:foo 2 #:bar 3) '(#:bar 6)))) (test-equal "substitute-keyword-arguments" '((#:foo 3) (#:foo 3) (#:foo 3 #:bar (1 2)) (#:bar (1 2) #:foo 3) (#:foo 3)) (list (substitute-keyword-arguments '(#:foo 2) ((#:foo f) (1+ f))) (substitute-keyword-arguments '() ((#:foo f 2) (1+ f))) (substitute-keyword-arguments '(#:foo 2 #:bar (2)) ((#:foo f) (1+ f)) ((#:bar b) (cons 1 b))) (substitute-keyword-arguments '(#:foo 2) ((#:foo _) 3) ((#:bar b '(2)) (cons 1 b))) (substitute-keyword-arguments '(#:foo 2) ((#:foo f 1) (1+ f)) ((#:bar b) (cons 42 b))))) (test-assert "filtered-port, file" (let* ((file (search-path %load-path "guix.scm")) (input (open-file file "r0b"))) (let*-values (((compressed pids1) (filtered-port `(,%gzip "-c" "--fast") input)) ((decompressed pids2) (filtered-port `(,%gzip "-d") compressed))) (and (every (compose zero? cdr waitpid) (append pids1 pids2)) (equal? (get-bytevector-all decompressed) (call-with-input-file file get-bytevector-all)))))) (test-assert "filtered-port, non-file" (let ((data (call-with-input-file (search-path %load-path "guix.scm") get-bytevector-all))) (let*-values (((compressed pids1) (filtered-port `(,%gzip "-c" "--fast") (open-bytevector-input-port data))) ((decompressed pids2) (filtered-port `(,%gzip "-d") compressed))) (and (pk (every (compose zero? cdr waitpid) (append pids1 pids2))) (equal? (get-bytevector-all decompressed) data))))) (test-assert "filtered-port, does not exist" (let* ((file (search-path %load-path "guix.scm")) (input (open-file file "r0b"))) (let-values (((port pids) (filtered-port '("/does/not/exist") input))) (any (compose (negate zero?) cdr waitpid) pids)))) (test-assert "compressed-port, decompressed-port, non-file" (let ((data (call-with-input-file (search-path %load-path "guix.scm") get-bytevector-all))) (let*-values (((compressed pids1) (compressed-port 'xz (open-bytevector-input-port data))) ((decompressed pids2) (decompressed-port 'xz compressed))) (and (every (compose zero? cdr waitpid) (append pids1 pids2)) (equal? (get-bytevector-all decompressed) data))))) (false-if-exception (delete-file temp-file)) (test-assert "compressed-output-port + decompressed-port" (let* ((file (search-path %load-path "guix/derivations.scm")) (data (call-with-input-file file get-bytevector-all)) (port (open-file temp-file "w0b"))) (call-with-compressed-output-port 'xz port (lambda (compressed) (put-bytevector compressed data))) (close-port port) (bytevector=? data (call-with-decompressed-port 'xz (open-file temp-file "r0b") get-bytevector-all)))) ;; This is actually in (guix store). (test-equal "store-path-package-name" "bash-4.2-p24" (store-path-package-name (string-append (%store-prefix) "/qvs2rj2ia5vci3wsdb7qvydrmacig4pg-bash-4.2-p24"))) (test-equal "canonical-newline-port" "This is a journey\nInto the sound\nA journey ...\n" (let ((port (open-string-input-port "This is a journey\r\nInto the sound\r\nA journey ...\n"))) (get-string-all (canonical-newline-port port)))) (test-equal "edit-expression" "(display \"GNU Guix\")\n(newline)\n" (begin (call-with-output-file temp-file (lambda (port) (display "(display \"xiuG UNG\")\n(newline)\n" port))) (edit-expression `((filename . ,temp-file) (line . 0) (column . 9)) string-reverse) (call-with-input-file temp-file get-string-all))) (test-end) (false-if-exception (delete-file temp-file))