tests: Add tr:assert-same function.

* tests/gpgscm/tests.scm (tr:assert-same-string): New.
* tests/openpgp/shell.scm: Option to drop into a REPL.
This commit is contained in:
Werner Koch 2022-11-02 17:03:05 +01:00
parent bd612f2360
commit 9b24d8ab50
No known key found for this signature in database
GPG Key ID: E3FDFF218E45B72B
3 changed files with 13 additions and 5 deletions

View File

@ -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*)

View File

@ -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:

View File

@ -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))))