;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016-2017, 2024 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-modules) #:use-module (guix modules) #:use-module ((guix build-system gnu) #:select (%default-gnu-imported-modules)) #:use-module ((guix utils) #:select (call-with-temporary-directory)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-34) #:use-module (srfi srfi-64)) (test-begin "modules") (test-assert "closure of (guix build gnu-build-system)" (lset= equal? (live-module-closure '((guix build gnu-build-system))) (source-module-closure '((guix build gnu-build-system))) %default-gnu-imported-modules (source-module-closure %default-gnu-imported-modules) (live-module-closure %default-gnu-imported-modules))) (test-assert "closure of (gnu build install)" (lset= equal? (live-module-closure '((gnu build install))) (source-module-closure '((gnu build install))))) (test-assert "closure of (gnu build image)" (lset= equal? (live-module-closure '((gnu build image))) (source-module-closure '((gnu build image))))) (test-equal "&missing-dependency-error" '(something that does not exist) (call-with-temporary-directory (lambda (directory) (call-with-output-file (string-append directory "/foobar.scm") (lambda (port) (write '(define-module (foobar) #:use-module (something that does not exist)) port))) (call-with-output-file (string-append directory "/baz.scm") (lambda (port) (write '(define-module (baz) #:use-module (foobar)) port))) (guard (c ((missing-dependency-error? c) (missing-dependency-module c))) (source-module-closure '((baz)) (list directory) #:select? (const #t)))))) (test-equal "file-name->module-name" '(guix foo) (file-name->module-name "guix/foo.scm")) (test-equal "file-name->module-name, leading dot" '(guix foo) (file-name->module-name "./guix/foo.scm")) (test-end) it's easier to read. * tests/cpan.scm ("cpan->guix-package"): Use a quasiquoted pattern. * tests/elpa.scm (eval-test-with-elpa): Likewise. * tests/gem.scm ("gem->guix-package") ("gem->guix-package with a specific version") ("gem-recursive-import") ("gem-recursive-import with a specific version"): Likewise. * tests/hexpm.scm ("hexpm-recursive-import"): Likewise. * tests/opam.scm ("opam->guix-package"): Likewise. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise. * tests/texlive.scm ("texlive->guix-package"): Likewise. Ludovic Courtès 2023-05-31import: gem: Updater provides input list....* guix/import/gem.scm (import-release): Add 'inputs' field. * tests/gem.scm ("package-latest-release"): New test. Ludovic Courtès 2023-05-31import: gem: Factorize "bundler" special case for name mapping....* guix/import/gem.scm (ruby-package-name): Add "bundler" special case. (gem->guix-package): Adjust accordingly. * tests/gem.scm ("gem-recursive-import") ("gem-recursive-import with a specific version"): Remove "ruby-bundler" from the expected packages. Ludovic Courtès 2022-09-17import: gem: Support importing a specific version of a gem....* guix/import/gem.scm: (rubygems-fetch, gem->guix-package) (gem-recursive-import): Fix to fetch the specified version of the gem. * guix/scripts/import/gem.scm (show-help): Update the help message. (guix-import-gem): Modify so the version number to be passed to subsequent procedures. * tests/gem.scm: Add tests. * doc/guix.texi (Invoking guix import): Document. Signed-off-by: Christopher Baines <mail@cbaines.net> Taiju HIGASHI 2021-07-20import: gem: Emit new-style package inputs....* guix/import/gem.scm (make-gem-sexp): Wrap inputs in 'list' instead of 'quasiquote'. * tests/gem.scm ("gem->guix-package") ("gem-recursive-import"): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Sarah Morgensen 2020-04-27tests: Remove trailing commas in JSON tests....These commas are rejected by Guile-JSON 3.5.0. * tests/crate.scm (test-foo-dependencies) (test-root-dependencies, test-intermediate-1-dependencies) (test-intermediate-2-dependencies): Remove trailing commas. * tests/gem.scm (test-bar-json): Likewise. * tests/pypi.scm (test-json): Likewise. Ludovic Courtès 2020-02-05import: gem: Deal with unavailable licensing info....Fixes <https://bugs.gnu.org/39404>. Reported by Seth <lee.seth@tuta.io>. * guix/import/gem.scm (<gem>)[licenses]: Adjust for non-vector licenses. * tests/gem.scm (test-bar-json): Change "licenses" to 'null'. ("gem-recursive-import"): Adjust accordingly. Ludovic Courtès