;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016, 2019 Ludovic Courtès ;;; ;;; 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-zlib) #:use-module (guix zlib) #:use-module (guix tests) #:use-module (srfi srfi-64) #:use-module (rnrs bytevectors) #:use-module (rnrs io ports) #:use-module (ice-9 match)) ;; Test the (guix zlib) module. (test-begin "zlib") (unless (zlib-available?) (test-skip 1)) (test-assert "compression/decompression pipe" (let ((data (random-bytevector (+ (random 10000) (* 20 1024))))) (match (pipe) ((parent . child) (match (primitive-fork) (0 ;compress (dynamic-wind (const #t) (lambda () (close-port parent) (call-with-gzip-output-port child (lambda (port) (put-bytevector port data)))) (lambda () (primitive-exit 0)))) (pid ;decompress (begin (close-port child) (let ((received (call-with-gzip-input-port parent (lambda (port) (get-bytevector-all port)) #:buffer-size (* 64 1024)))) (match (waitpid pid) ((_ . status) (and (zero? status) (port-closed? parent) (bytevector=? received data)))))))))))) (test-end) live.scm?id=d07543b8862cecbbc6da69a1f3eda2eb605ccb2e'>texlive.scm
AgeCommit message (Expand)Author
2022-07-22tests: Adjust texlive importer tests....This is a follow-up to commit be7b314f3fe22273e935accac22f313e44d3d970. * tests/texlive.scm: Add version field to expected output. Ricardo Wurmus
2022-01-13import: texlive: Remove labels from 'propagated-inputs' field....* guix/import/texlive.scm (tlpdb->package): Remove labels from 'propagated-inputs' field. * tests/texlive.scm ("texlive->guix-package"): Adjust accordingly. Ludovic Courtès
2022-01-11tests: Fix texlive test by sorting locations....* tests/texlive.scm ("texlive->guix-package"): Correct order of locations. Ricardo Wurmus
2021-11-18tests: Replace texlive importer tests....* tests/texlive.scm (xml, sxml): Remove variables. ("fetch-sxml: returns SXML for valid XML", "sxml->package"): Remove tests. ("texlive->guix-package"): Add new test. Ricardo Wurmus
2021-03-06tests: do not hard code HTTP ports...Previously, test cases could fail if some process was listening at a hard-coded port. This patch eliminates most of these potential failures, by automatically assigning an unbound port. This should allow for building multiple guix trees in parallel outside a build container, though this is currently untested. The test "home-page: Connection refused" in tests/lint.scm still hardcodes port 9999, however. * guix/tests/http.scm (http-server-can-listen?): remove now unused procedure. (%http-server-port): default to port 0, meaning the OS will automatically choose a port. (open-http-server-socket): remove the false statement claiming this procedure is exported and also return the allocated port number. (%local-url): raise an error if the port is obviously unbound. (call-with-http-server): set %http-server-port to the allocated port while the thunk is called. * tests/derivations.scm: adjust test cases to use automatically assign a port. As there is no risk of a port conflict now, do not make any tests conditional upon 'http-server-can-listen?' anymore. * tests/elpa.scm: likewise. * tests/lint.scm: likewise, and add a TODO comment about a port that is still hard-coded. * tests/texlive.scm: likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Maxime Devos