1#!/usr/bin/env chibi-scheme23(import (scheme base) (kahl) (chibi test))45(define (%test-parse parser bv)6 (define (parse-with-error parser stream)7 (call-with-parse parser stream 08 (lambda (r s i fk) r)9 (lambda (s i reason) (error reason))))1011 (let* ((stream (bytevector->parse-stream bv))12 (result (parse-with-error parser stream)))13 result))1415(define (test-parse expected parser bv)16 (test expected (%test-parse parser bv)))1718(define (test-parse-error expected parser bv)19 (let ((r (call-with-current-continuation20 (lambda (k)21 (with-exception-handler22 (lambda (e) (k e))23 (lambda ( ) (k (%test-parse parser bv))))))))24 (test expected25 (if (error-object? r)26 (error-object-message r))))) ;; (not (error-object? r)) → undefined2728(test-group "Primitive Types"29 (include "tests/primitive.scm"))30(test-group "Aggregate Types"31 (include "tests/aggregated.scm"))32(test-group "Integration Tests"33 (include "tests/integration.scm"))