diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-05-25 14:19:51 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-05-25 14:25:17 +0200 |
commit | bfe5264aa10c1af64adc5c24d0cf091562e3e09c (patch) | |
tree | 35a96110a4ae5d201edbf665f49513a08cf61a85 /tests/modules.scm | |
parent | 4862a98be473ac6bb0bfd8a6cdbc81119cb44355 (diff) | |
download | patches-bfe5264aa10c1af64adc5c24d0cf091562e3e09c.tar patches-bfe5264aa10c1af64adc5c24d0cf091562e3e09c.tar.gz |
modules: Raise an error when a dependency could not be found.
* guix/modules.scm (&missing-dependency-error): New error condition.
(source-module-dependencies): Raise it when 'search-path' returns #f.
* tests/modules.scm ("&missing-dependency-error"): New test.
Diffstat (limited to 'tests/modules.scm')
-rw-r--r-- | tests/modules.scm | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/tests/modules.scm b/tests/modules.scm index 04945e531b..57019c600c 100644 --- a/tests/modules.scm +++ b/tests/modules.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +19,9 @@ (define-module (test-modules) #:use-module (guix modules) #:use-module ((guix build-system gnu) #:select (%gnu-build-system-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") @@ -42,4 +44,25 @@ (live-module-closure '((gnu build vm))) (source-module-closure '((gnu build vm))))) +(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-end) |