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) | |
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 04945e531b6..57019c600cf 100644 --- a/tests/modules.scm +++ b/tests/modules.scm | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | 1 | ;;; GNU Guix --- Functional package management for GNU |
| 2 | ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> | 2 | ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> |
| 3 | ;;; | 3 | ;;; |
| 4 | ;;; This file is part of GNU Guix. | 4 | ;;; This file is part of GNU Guix. |
| 5 | ;;; | 5 | ;;; |
| @@ -19,7 +19,9 @@ | |||
| 19 | (define-module (test-modules) | 19 | (define-module (test-modules) |
| 20 | #:use-module (guix modules) | 20 | #:use-module (guix modules) |
| 21 | #:use-module ((guix build-system gnu) #:select (%gnu-build-system-modules)) | 21 | #:use-module ((guix build-system gnu) #:select (%gnu-build-system-modules)) |
| 22 | #:use-module ((guix utils) #:select (call-with-temporary-directory)) | ||
| 22 | #:use-module (srfi srfi-1) | 23 | #:use-module (srfi srfi-1) |
| 24 | #:use-module (srfi srfi-34) | ||
| 23 | #:use-module (srfi srfi-64)) | 25 | #:use-module (srfi srfi-64)) |
| 24 | 26 | ||
| 25 | (test-begin "modules") | 27 | (test-begin "modules") |
| @@ -42,4 +44,25 @@ | |||
| 42 | (live-module-closure '((gnu build vm))) | 44 | (live-module-closure '((gnu build vm))) |
| 43 | (source-module-closure '((gnu build vm))))) | 45 | (source-module-closure '((gnu build vm))))) |
| 44 | 46 | ||
| 47 | (test-equal "&missing-dependency-error" | ||
| 48 | '(something that does not exist) | ||
| 49 | (call-with-temporary-directory | ||
| 50 | (lambda (directory) | ||
| 51 | (call-with-output-file (string-append directory "/foobar.scm") | ||
| 52 | (lambda (port) | ||
| 53 | (write '(define-module (foobar) | ||
| 54 | #:use-module (something that does not exist)) | ||
| 55 | port))) | ||
| 56 | |||
| 57 | (call-with-output-file (string-append directory "/baz.scm") | ||
| 58 | (lambda (port) | ||
| 59 | (write '(define-module (baz) | ||
| 60 | #:use-module (foobar)) | ||
| 61 | port))) | ||
| 62 | |||
| 63 | (guard (c ((missing-dependency-error? c) | ||
| 64 | (missing-dependency-module c))) | ||
| 65 | (source-module-closure '((baz)) (list directory) | ||
| 66 | #:select? (const #t)))))) | ||
| 67 | |||
| 45 | (test-end) | 68 | (test-end) |
