From ed4281ff072443167c43207c039570126061d23b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 12 Apr 2022 13:30:32 +0200 Subject: Add a lot of new unit tests. --- tests/convert.scm | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/convert.scm (limited to 'tests/convert.scm') diff --git a/tests/convert.scm b/tests/convert.scm new file mode 100644 index 00000000..534c5b70 --- /dev/null +++ b/tests/convert.scm @@ -0,0 +1,69 @@ +(add-to-load-path "../module") + +(use-modules (ice-9 documentation) + (ice-9 format) + (srfi srfi-1) + (hnh util path) + (datetime) + ) + +(print-set! quote-keywordish-symbols #f) + +(define (module-definition name old-sandbox-definition) + `(define-module (test ,name) + :use-module (srfi srfi-64) + :use-module (srfi srfi-88) + ,@(concatenate + (map (lambda (def) `(:use-module (,(car def) :select ,(cdr def)))) + old-sandbox-definition)))) + +(define (read-multiple port) + (let loop ((done '())) + (let ((sexp (read port))) + (if (eof-object? sexp) + (reverse done) + (loop (cons sexp done)))))) + +(define files + '("annoying-events.scm" + "base64.scm" + "cpp.scm" + "datetime-compare.scm" + "datetime.scm" + "datetime-util.scm" + "let-env.scm" + "let.scm" + "param.scm" + "recurrence-advanced.scm" + "recurrence-simple.scm" + "rrule-serialization.scm" + "server.scm" + "srfi-41-util.scm" + "termios.scm" + "tz.scm" + "util.scm" + "vcomponent-control.scm" + "vcomponent-datetime.scm" + "vcomponent-formats-common-types.scm" + "vcomponent.scm" + "web-server.scm" + "xcal.scm" + "xml-namespace.scm" + )) + +(for-each (lambda (file) + (format #t "~a~%" file) + (call-with-output-file (path-append "test" (basename file)) + (lambda (p) + (define commentary (file-commentary file)) + (unless (string-null? commentary) + (format p ";;; Commentary:~%") + (for-each (lambda (line) (format p ";; ~a~%" line)) + (string-split commentary #\newline)) + (format p ";;; Code:~%~%")) + (let ((forms (call-with-input-file file read-multiple))) + (format p "~y~%" (module-definition (string->symbol (string-drop-right file 4)) + (car forms))) + (format p "~{~y~%~}~%" (cdr forms)))))) + files) + -- cgit v1.2.3