From 9e79ac5f9f753e3bb8c16562e9573d535a44df3e Mon Sep 17 00:00:00 2001 From: alex-eg Date: Tue, 21 Oct 2025 21:47:20 +0300 Subject: [PATCH] prettify reader test with a nice macro --- tests/reader.scm | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/tests/reader.scm b/tests/reader.scm index 85f8bfb..8edb836 100644 --- a/tests/reader.scm +++ b/tests/reader.scm @@ -1,28 +1,17 @@ (import (chicken port)) +(define-syntax reader-test + (syntax-rules () + ((reader-test result string) + (test result + (with-input-from-string string + (lambda () (read-raw-forms 'stdin))))))) + (test-group "reader" ;; []-syntax. For array types and array access expressions - (test '((¤ * char)) - (with-input-from-string "[* char]" - (lambda () - (read-raw-forms 'stdin)))) - - (test '((¤ * * char const 512)) - (with-input-from-string "[* * char const 512]" - (lambda () - (read-raw-forms 'stdin)))) - - (test '((¤)) - (with-input-from-string "[]" - (lambda () - (read-raw-forms 'stdin)))) - - (test '((¤ (¤))) - (with-input-from-string "[[]]" - (lambda () - (read-raw-forms 'stdin)))) - - (test '((¤ (¤ const char))) - (with-input-from-string "[[const char]]" - (lambda () - (read-raw-forms 'stdin))))) + (reader-test '((¤ * char)) "[* char]") + (reader-test '((¤ * * char const 512)) "[* * char const 512]") + (reader-test '((¤)) "[]") + (reader-test '((¤ (¤))) "[[]]") + (reader-test '((¤ (¤ const char))) "[[const char]]") +)