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-05 16:09:42 +0200
commit7f89251db6ef11f4becd59d528ce9ab3e1180504 (patch)
tree6c8aa5b3a052e168edb3ff642a01cf45f72ea794
parent7ea0ff35a872b298fadb4263d080de40027db9ac (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))))