diff options
author | Arthur A. Gleckler <srfi@speechcode.com> | 2021-01-13 20:53:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-13 20:53:35 -0800 |
commit | 9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e (patch) | |
tree | f7dc6ed6637092740b43a37cbc3aae1be75417b4 /implementation/srfi-64-minimal.scm | |
parent | 7eb8ddca6a0df8acd138d140afd52cb630f9c9f9 (diff) | |
parent | cde743ee1148f89d9299b444244d0a5ba8856e13 (diff) | |
download | srfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.tar.gz srfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.tar.xz srfi-214-9cebcba5ca8ee47d74a2efc96c8111ddf98f3b6e.zip |
Merge pull request #1 from ar-nelson/add-source
Add implementation source for next draft
Diffstat (limited to 'implementation/srfi-64-minimal.scm')
-rw-r--r-- | implementation/srfi-64-minimal.scm | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/implementation/srfi-64-minimal.scm b/implementation/srfi-64-minimal.scm new file mode 100644 index 0000000..e60632b --- /dev/null +++ b/implementation/srfi-64-minimal.scm @@ -0,0 +1,50 @@ +; Just enough of SRFI 64 (unit tests) to run test.scm. + +(define *test-failures* '()) + +(define (test-begin name) + (newline) + (display "Test group: ") + (display name) + (newline) + (newline)) + +(define (test-end name) + (newline) + (cond + ((null? *test-failures*) + (display "All tests passed!") + (newline) + (newline) + (exit 0)) + (else + (write (length *test-failures*)) + (display " TEST(S) FAILED:") + (newline) + (for-each (lambda (x) (x)) (reverse *test-failures*)) + (newline) + (exit 1)))) + +(define (%test-equal name expected actual) + (cond + ((equal? expected actual) + (display "pass: ")) + (else + (set! *test-failures* + (cons + (lambda () + (display name) + (display ": Expected ") + (write expected) + (display ", got ") + (write actual) + (newline)) + *test-failures*)) + (display "FAIL: "))) + (display name) + (newline)) + +(define-syntax test-equal + (syntax-rules () + ((_ name expected actual) + (%test-equal name expected (guard (e (#t e)) actual))))) |