From 90c56d31352a0eeccd382ef5921baf3af4971040 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 26 Jan 2018 20:20:12 -0800 Subject: Added a ton of tests for virtually all the functionality. Helped me find and fix a lot of latent problems. --- tests/all.nom | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/all.nom (limited to 'tests/all.nom') diff --git a/tests/all.nom b/tests/all.nom new file mode 100644 index 0000000..5b95786 --- /dev/null +++ b/tests/all.nom @@ -0,0 +1,28 @@ +use "lib/core.nom" + +# Prerequisites: +%var <- 99 +assume (%var = 99) or barf "Var assignment doesn't work." + +try: barf "barf" +..and if it succeeds: barf "try % and if it succeeds failed." + +try: do nothing +..and if it barfs: barf "try % and if it barfs failed." + +immediately + assume (%ONCE is (nil)) or barf "immediately is executing twice" + export %ONCE <- "ONCE" + %foo <- "immediately local" +assume (%ONCE = "ONCE") or barf "Globals don't work." +assume (%foo is (nil)) or barf "Immediately is leaking locals." + +# Run per-file test suites +run file "tests/metaprogramming.nom" +run file "tests/text.nom" +run file "tests/operators.nom" +run file "tests/control_flow.nom" +run file "tests/math.nom" +run file "tests/collections.nom" + +say "All tests passed!" -- cgit v1.2.3