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-06-19 13:06:24 +0200
commit16500ad69798224b00a2f2bf138db36628378bec (patch)
tree8881232d90a8c614ba367a6c2facd30279dd11fc
parent60764a52849248caf59ce75377a2b38503f773a7 (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))))