summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/testing.scm
diff options
context:
space:
mode:
Diffstat (limited to 'src/scm/webid-oidc/testing.scm')
-rw-r--r--src/scm/webid-oidc/testing.scm27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/scm/webid-oidc/testing.scm b/src/scm/webid-oidc/testing.scm
new file mode 100644
index 0000000..40284cf
--- /dev/null
+++ b/src/scm/webid-oidc/testing.scm
@@ -0,0 +1,27 @@
+(define-module (webid-oidc testing)
+ #:use-module (webid-oidc stubs)
+ #:use-module (webid-oidc errors))
+
+;; This module is used only when running tests.
+
+(define-public (with-test-environment test-name f)
+ (let ((cache-dir (format #f "tests/~a.cache" test-name)))
+ (setenv "XDG_CACHE_HOME" cache-dir)
+ (catch #t
+ (lambda () (mkdir cache-dir))
+ (lambda err #t))
+ (let ((pkg-cache-dir (format #f "~a/webid-oidc" cache-dir)))
+ (catch #t
+ (lambda () (mkdir pkg-cache-dir))
+ (lambda err #t))
+ (let ((seed-file-name (format #f "~a/seed" pkg-cache-dir)))
+ (with-output-to-file seed-file-name
+ (lambda ()
+ (format #t "This is the initial seed for the random number generator"))))))
+ (with-exception-handler
+ (lambda (error)
+ (format (current-error-port) "The test failed, because ~a.\n"
+ (error->str error))
+ (raise-exception error))
+ (lambda ()
+ (f))))