summaryrefslogtreecommitdiff
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-05-11 00:14:27 +0200
commit6068d8fd74218213aadc5d57f246c87907c77fc8 (patch)
tree37a689fc322dda9c567778e62e1721204a27ef1d
parent6ae032967eea16dff9f1169f29e4713a2169bd8c (diff)
Write the code used by all tests
-rw-r--r--src/scm/webid-oidc/Makefile.am6
-rw-r--r--src/scm/webid-oidc/testing.scm27
2 files changed, 31 insertions, 2 deletions
diff --git a/src/scm/webid-oidc/Makefile.am b/src/scm/webid-oidc/Makefile.am
index 8872758..e74b26c 100644
--- a/src/scm/webid-oidc/Makefile.am
+++ b/src/scm/webid-oidc/Makefile.am
@@ -1,7 +1,9 @@
dist_webidoidcmod_DATA += \
%reldir%/errors.scm \
- %reldir%/stubs.scm
+ %reldir%/stubs.scm \
+ %reldir%/testing.scm
webidoidcgo_DATA += \
%reldir%/errors.go \
- %reldir%/stubs.go
+ %reldir%/stubs.go \
+ %reldir%/testing.go
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))))