;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès ;;; Copyright © 2016, 2017 Efraim Flashner ;;; Copyright © 2018 Mark H Weaver ;;; ;;; 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 (gnu packages dejagnu) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix licenses) #:use-module (gnu packages tcl)) (define-public dejagnu (package (name "dejagnu") (version "1.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/dejagnu/dejagnu-" version ".tar.gz")) (sha256 (base32 "14hnq1mh91vqprc43xdy4f15sycw6fbajrh7zi6cw2kyg6xjhnxz")))) (build-system gnu-build-system) (inputs `(("expect" ,expect))) (arguments '(#:phases (modify-phases %standard-phases (replace 'check (lambda _ ;; Note: The test-suite *requires* /dev/pts among the ;; `build-chroot-dirs' of the build daemon when ;; building in a chroot. See ;; ;; for details. (if (and (directory-exists? "/dev/pts") (directory-exists? "/proc")) (begin ;; Provide `runtest' with a log name, otherwise it ;; tries to run `whoami', which fails when in a chroot. (setenv "LOGNAME" "guix-builder") ;; The test-suite needs to have a non-empty stdin: ;; . (unless (zero? (system "make check < /dev/zero")) (error "make check failed"))) (display "test suite cannot be run, skipping\n")) #t)) (add-after 'install 'post-install (lambda* (#:key inputs outputs #:allow-other-keys) ;; Use the right `expect' binary. (let ((out (assoc-ref outputs "out")) (expect (assoc-ref inputs "expect"))) (substitute* (string-append out "/bin/runtest") (("^mypath.*$" all) (string-append all "export PATH=" expect "/bin:$PATH\n"))) #t)))))) (home-page "https://www.gnu.org/software/dejagnu/") (synopsis "GNU software testing framework") (description "DejaGnu is a framework for testing software. In effect, it serves as a front-end for all tests written for a program. Thus, each program can have multiple test suites, which are then all managed by a single harness.") (license gpl3+))) -D y' generates a valid manifest....* guix/scripts/shell.scm (manifest->code*): Add missing 'list' in generated 'concatenate-manifests' call. * tests/guix-shell-export-manifest.sh: Add test. Ludovic Courtès 2022-04-08tests: 'guix shell --export-manifest' test no longer needs networking....* tests/guix-shell-export-manifest.sh: Use '--with-input' rather than '--with-latest' as the latter would crash in the absence of network access. Ludovic Courtès 2022-04-04shell: Add '--export-manifest'....* guix/scripts/shell.scm (show-help, %options): Add '--export-manifest'. (manifest-entry-version-prefix, manifest->code*) (export-manifest): New procedures. (guix-shell): Honor '--export-manifest'. * tests/guix-shell-export-manifest.sh: New file. * Makefile.am (SH_TESTS): Add it. * doc/guix.texi (Invoking guix shell): Document '--export-manifest'. (Invoking guix environment): Link to it. (Invoking guix pack): Likewise. Ludovic Courtès