summary refs log tree commit diff
path: root/tests/discovery.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-06-18 00:02:56 +0200
committerLudovic Courtès <ludo@gnu.org>2017-06-18 00:14:07 +0200
commitd46c4423f46278bd2f96770ceb0667431414349e (patch)
tree60c92c81fa91db7b602ec7a6bdec8f6184b11e66 /tests/discovery.scm
parent3bacc655c5fd988f0199ef259adcb4fb3754042e (diff)
downloadguix-d46c4423f46278bd2f96770ceb0667431414349e.tar.gz
discovery: 'scheme-files' returns '() for a non-accessible directory.
Fixes a regression introduced in
d27cc3bfaafe6b5b0831e88afb1c46311d382a0b.

Reported by Ricardo Wurmus <rekado@elephly.net>.

* guix/discovery.scm (scheme-files): Catch 'scandir*' system errors.
Return '() and optionally raise a warning upon 'system-error'.
* tests/discovery.scm ("scheme-modules, non-existent directory"): New
test.
Diffstat (limited to 'tests/discovery.scm')
-rw-r--r--tests/discovery.scm4
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/discovery.scm b/tests/discovery.scm
index b838731e16..04de83f085 100644
--- a/tests/discovery.scm
+++ b/tests/discovery.scm
@@ -32,6 +32,10 @@
     ((('guix 'import _ ...) ..1)
      #t)))
 
+(test-equal "scheme-modules, non-existent directory"
+  '()
+  (scheme-modules "/does/not/exist"))
+
 (test-assert "all-modules"
   (match (map module-name
               (all-modules `((,%top-srcdir . "guix/build-system"))))