diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm index eb278e301..cebe419f8 100644 --- a/tests/gpgscm/tests.scm +++ b/tests/gpgscm/tests.scm @@ -493,6 +493,12 @@ (fail "mismatch")) (list tmpfiles source #f))) +(define (tr:assert-same reference) + (lambda (tmpfiles source) + (if (not (string=? (call-with-input-file source read-all) reference)) + (fail "mismatch")) + (list tmpfiles source #f))) + (define (tr:call-with-content function . args) (lambda (tmpfiles source) (catch (list tmpfiles source *error*) diff --git a/tests/openpgp/README b/tests/openpgp/README index 63f1886c5..1225d4aad 100644 --- a/tests/openpgp/README +++ b/tests/openpgp/README @@ -218,8 +218,8 @@ There is one source function, tr:open. To describe a transformation using some process, use tr:spawn, tr:gpg, or tr:pipe-do. There are several sinks, although sink is not quite the right term, because the data is not consumed, and hence one can use them at any position. The -"sinks" are tr:write-to, tr:call-with-content, tr:assert-identity, and -tr:assert-weak-identity. +"sinks" are tr:write-to, tr:call-with-content, tr:assert-identity, +tr:assert-weak-identity, and tr:assert-same. A somewhat contrived example demonstrating many functions is: diff --git a/tests/openpgp/shell.scm b/tests/openpgp/shell.scm index 347b3a08c..af4f25498 100644 --- a/tests/openpgp/shell.scm +++ b/tests/openpgp/shell.scm @@ -47,7 +47,9 @@ (pathsep-split (getenv "PATH")))) #t) -(echo "\nEnjoy your test environment. " +(if (prompt-yes-no? "Run system shell" #t) + ((echo "\nEnjoy your test environment. " "Type 'exit' to exit it, it will be cleaned up after you.\n") - -(interactive-shell) + (interactive-shell)) + ((echo "\nEnjoy the REPL.") + (interactive-repl (current-environment))))