summaryrefslogtreecommitdiffhomepage
path: root/tests/custom
diff options
context:
space:
mode:
Diffstat (limited to 'tests/custom')
-rw-r--r--tests/custom/02_runtime/07_raw_template_mode_switching45
-rw-r--r--tests/custom/03_stdlib/29_require26
-rw-r--r--tests/custom/03_stdlib/35_include32
-rwxr-xr-xtests/custom/run_tests.sh5
4 files changed, 89 insertions, 19 deletions
diff --git a/tests/custom/02_runtime/07_raw_template_mode_switching b/tests/custom/02_runtime/07_raw_template_mode_switching
new file mode 100644
index 0000000..5ae53e8
--- /dev/null
+++ b/tests/custom/02_runtime/07_raw_template_mode_switching
@@ -0,0 +1,45 @@
+Testing that require(), render() and include() properly toggle between
+raw- and template parse mode.
+
+
+1. Testing recursive invocation.
+
+-- Testcase --
+require("files.requiretest");
+print(render("files/render-test.uc"));
+include("files/include-test.uc");
+-- End --
+
+-- Args --
+-R
+-- End --
+
+-- File requiretest.uc --
+print("This is a raw mode file loaded by require()\n");
+print(render("require-render-test.uc"));
+include("require-include-test.uc");
+-- End --
+
+-- File require-include-test.uc --
+print("This is a raw mode file included by a required file\n");
+-- End --
+
+-- File require-render-test.uc --
+This is a {{ "template mode" }} file rendered by a required file
+-- End --
+
+-- File render-test.uc --
+This is a {{ "template mode" }} file loaded by render() from a raw mode file
+-- End --
+
+-- File include-test.uc --
+print("This is a raw mode file loaded by include() from a raw mode file\n");
+-- End --
+
+-- Expect stdout --
+This is a raw mode file loaded by require()
+This is a template mode file rendered by a required file
+This is a raw mode file included by a required file
+This is a template mode file loaded by render() from a raw mode file
+This is a raw mode file loaded by include() from a raw mode file
+-- End --
diff --git a/tests/custom/03_stdlib/29_require b/tests/custom/03_stdlib/29_require
index 681f3f7..4fb4216 100644
--- a/tests/custom/03_stdlib/29_require
+++ b/tests/custom/03_stdlib/29_require
@@ -42,15 +42,13 @@ Returns the value returned by the invoked module code (typically an object).
-- End --
-- File require/test/module.uc --
-{%
- print("This is require.test.module running!\n\n");
+print("This is require.test.module running!\n\n");
- return {
- greeting: function(name) {
- printf("Hello, %s!\n", name);
- }
- };
-%}
+return {
+ greeting: function(name) {
+ printf("Hello, %s!\n", name);
+ }
+};
-- End --
-- Expect stdout --
@@ -139,19 +137,17 @@ A compilation error in the module triggers an exception.
-- End --
-- File require/test/broken.uc --
-{%
- // Unclosed object to force syntax error
- return {
-%}
+// Unclosed object to force syntax error
+return {
-- End --
-- Expect stderr --
Unable to compile module '.../require/test/broken.uc':
Syntax error: Expecting label
-In line 3, byte 11:
+In line 2, byte 10:
- ` return {`
- Near here --^
+ `return {`
+ ^-- Near here
diff --git a/tests/custom/03_stdlib/35_include b/tests/custom/03_stdlib/35_include
index 6d808f2..1d428f1 100644
--- a/tests/custom/03_stdlib/35_include
+++ b/tests/custom/03_stdlib/35_include
@@ -171,3 +171,35 @@ In line 12, byte 8:
-- End --
+
+
+Ensure that included files inherit the parse mode of their calling file.
+
+-- Testcase --
+{% include("files/inctest.uc"); %}
+-- End --
+
+-- File inctest.uc --
+print("Test\n");
+-- End --
+
+-- Expect stdout --
+print("Test\n");
+-- End --
+
+
+-- Testcase --
+include("files/inctest.uc");
+-- End --
+
+-- Args --
+-R
+-- End --
+
+-- File inctest.uc --
+print("Test\n");
+-- End --
+
+-- Expect stdout --
+Test
+-- End --
diff --git a/tests/custom/run_tests.sh b/tests/custom/run_tests.sh
index 2f13c3b..c2839df 100755
--- a/tests/custom/run_tests.sh
+++ b/tests/custom/run_tests.sh
@@ -93,10 +93,7 @@ run_testcase() {
IFS=$' \t\n'
- $ucode_bin $args -e '{
- "REQUIRE_SEARCH_PATH": [ "'"$ucode_lib"'/*.so" ],
- "TESTFILES_PATH": "'"$dir"'/files"
- }' -i - <"$in" >"$dir/res.out" 2>"$dir/res.err"
+ $ucode_bin -T -L "$ucode_lib/*.so" -D TESTFILES_PATH="$dir/files" $args - <"$in" >"$dir/res.out" 2>"$dir/res.err"
)
printf "%d\n" $? > "$dir/res.code"