aboutsummaryrefslogtreecommitdiffstats
path: root/tests/gpgscm/tests.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/gpgscm/tests.scm')
-rw-r--r--tests/gpgscm/tests.scm14
1 files changed, 11 insertions, 3 deletions
diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm
index c32e2fa5e..58b1430f8 100644
--- a/tests/gpgscm/tests.scm
+++ b/tests/gpgscm/tests.scm
@@ -183,10 +183,12 @@
(define (in-srcdir what)
(canonical-path (string-append (getenv "srcdir") "/" what)))
-(define (with-path name)
- (let loop ((path (string-split (getenv "GPGSCM_PATH") #\:)))
+;; Try to find NAME in PATHS. Returns the full path name on success,
+;; or raises an error.
+(define (path-expand name paths)
+ (let loop ((path paths))
(if (null? path)
- name
+ (throw "Could not find" name "in" paths)
(let* ((qualified-name (string-append (car path) "/" name))
(file-exists (call-with-input-file qualified-name
(lambda (x) #t))))
@@ -194,6 +196,12 @@
qualified-name
(loop (cdr path)))))))
+;; Expand NAME using the gpgscm load path. Use like this:
+;; (load (with-path "library.scm"))
+(define (with-path name)
+ (catch name
+ (path-expand name (string-split (getenv "GPGSCM_PATH") *pathsep*))))
+
(define (basename path)
(let ((i (string-index path #\/)))
(if (equal? i #f)