aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/gpgscm/ffi.c9
-rw-r--r--tests/gpgscm/tests.scm12
2 files changed, 18 insertions, 3 deletions
diff --git a/tests/gpgscm/ffi.c b/tests/gpgscm/ffi.c
index 44db6bb82..a0fbe2e64 100644
--- a/tests/gpgscm/ffi.c
+++ b/tests/gpgscm/ffi.c
@@ -1276,6 +1276,15 @@ ffi_init (scheme *sc, const char *argv0, const char *scriptname,
ffi_define (sc, "*pathsep*", sc->vptr->mk_character (sc, ':'));
#endif
+ ffi_define (sc, "*win32*",
+#if _WIN32
+ sc->T
+#else
+ sc->F
+#endif
+ );
+
+
ffi_define (sc, "*stdin*",
sc->vptr->mk_port_from_file (sc, stdin, port_input));
ffi_define (sc, "*stdout*",
diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm
index 71ca3692a..8986a705a 100644
--- a/tests/gpgscm/tests.scm
+++ b/tests/gpgscm/tests.scm
@@ -181,9 +181,15 @@
(assert (string=? (path-join "" "bar" "baz") "bar/baz"))
(define (canonical-path path)
- (if (char=? #\/ (string-ref path 0))
+ (if (or (char=? #\/ (string-ref path 0))
+ (and *win32* (char=? #\\ (string-ref path 0)))
+ (and *win32*
+ (char-alphabetic? (string-ref path 0))
+ (char=? #\: (string-ref path 1))
+ (or (char=? #\/ (string-ref path 2))
+ (char=? #\\ (string-ref path 2)))))
path
- (string-append (getcwd) "/" path)))
+ (path-join (getcwd) path)))
(define (in-srcdir . names)
(canonical-path (apply path-join (cons (getenv "srcdir") names))))
@@ -194,7 +200,7 @@
(let loop ((path paths))
(if (null? path)
(throw "Could not find" name "in" paths)
- (let* ((qualified-name (string-append (car path) "/" name))
+ (let* ((qualified-name (path-join (car path) name))
(file-exists (call-with-input-file qualified-name
(lambda (x) #t))))
(if file-exists