summaryrefslogtreecommitdiff
path: root/tests/heredoc.scm
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2022-08-05 19:32:09 -0300
committerEuAndreh <eu@euandre.org>2022-08-05 20:12:17 -0300
commit1856fe44a8f7fe3802e6c3e5e6369f2c7e8e5699 (patch)
tree24e81e263c74c69d6f2ef45603b29b8d9e276016 /tests/heredoc.scm
parentdoc/: Setup Texinfo documentation skeleton (diff)
downloadguile-heredoc-1856fe44a8f7fe3802e6c3e5e6369f2c7e8e5699.tar.gz
guile-heredoc-1856fe44a8f7fe3802e6c3e5e6369f2c7e8e5699.tar.xz
tests/heredoc.scm: Add test for (enable-syntax) macro
Test both compiled and non-compiled variants of the test in order to stress the scenarios of *when* the read-macro is set. Also change the (eval-when ...) case used: - "compile": for when the code is being compiled only, and before its execution; - "eval": for the the code is being evaluated only, during its execution. Also from the Guile manual (via 'info (guile)Loading'): Changing ‘current-reader’ is typically useful to introduce local syntactic changes, such that code following the ‘fluid-set!’ call is read using the newly installed reader. The ‘current-reader’ change should take place at evaluation time when the code is evaluated, or at compilation time when the code is compiled: (eval-when (compile eval) (fluid-set! current-reader my-own-reader)) The ‘eval-when’ form above ensures that the ‘current-reader’ change occurs at the right time.
Diffstat (limited to 'tests/heredoc.scm')
-rw-r--r--tests/heredoc.scm14
1 files changed, 13 insertions, 1 deletions
diff --git a/tests/heredoc.scm b/tests/heredoc.scm
index e368119..931b7a2 100644
--- a/tests/heredoc.scm
+++ b/tests/heredoc.scm
@@ -1,5 +1,6 @@
(use-modules
((xyz euandreh heredoc) #:prefix heredoc:)
+ ((language tree-il) #:prefix tree-il:)
((srfi srfi-64) #:prefix t:))
(heredoc:enable-syntax)
@@ -315,6 +316,16 @@ fi
fi
"""#)))
+(define (test-enable-syntax)
+ (t:test-group "enable-syntax"
+ (t:test-equal '(read-hash-extend #\"
+ (@ (xyz euandreh heredoc)
+ reader))
+ (tree-il:tree-il->scheme
+ (macroexpand
+ '(heredoc:enable-syntax))))))
+
+
(define test-fns
(list
test-extract-single-line-indentation
@@ -322,7 +333,8 @@ fi
test-maximum-indentation
test-trim-indentation
test-non-quote-chars?
- test-reader))
+ test-reader
+ test-enable-syntax))
(define (main)
(t:test-begin "heredoc")