summaryrefslogtreecommitdiff
path: root/src/scm/webid-oidc/testing.scm
diff options
context:
space:
mode:
authorVivien Kraus <vivien@planete-kraus.eu>2020-11-27 18:03:45 +0100
committerVivien Kraus <vivien@planete-kraus.eu>2021-06-19 13:06:24 +0200
commit16500ad69798224b00a2f2bf138db36628378bec (patch)
tree8881232d90a8c614ba367a6c2facd30279dd11fc /src/scm/webid-oidc/testing.scm
parent60764a52849248caf59ce75377a2b38503f773a7 (diff)
Write the code used by all tests
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))))