From 7f89251db6ef11f4becd59d528ce9ab3e1180504 Mon Sep 17 00:00:00 2001 From: Vivien Kraus Date: Fri, 27 Nov 2020 18:03:45 +0100 Subject: Write the code used by all tests --- src/scm/webid-oidc/Makefile.am | 6 ++++-- src/scm/webid-oidc/testing.scm | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/scm/webid-oidc/testing.scm (limited to 'src') 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)))) -- cgit v1.2.3