diff options
author | Fábio Santos <fabiosantosart@gmail.com> | 2015-04-12 14:51:26 +0100 |
---|---|---|
committer | Richard van Velzen <rvanvelzen1@gmail.com> | 2015-04-14 20:26:47 +0200 |
commit | de58b0289d8858b60f5f9aa6e5548fae39109d06 (patch) | |
tree | a4898a60ab824e261c3c4fb97a86df93d2651e1e /test/run-tests.js | |
parent | efea52a4f495ec921cb05d4ce09693520b657257 (diff) | |
download | tracifyjs-de58b0289d8858b60f5f9aa6e5548fae39109d06.tar.gz tracifyjs-de58b0289d8858b60f5f9aa6e5548fae39109d06.zip |
Added expect_exact for testing the OutputStream
This works almost exactly like `expect`, except that you pass a literal string
of which the result is compared with the generated output.
Diffstat (limited to 'test/run-tests.js')
-rwxr-xr-x | test/run-tests.js | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/test/run-tests.js b/test/run-tests.js index 94bf6ad9..215f6af8 100755 --- a/test/run-tests.js +++ b/test/run-tests.js @@ -84,7 +84,12 @@ function run_compress_tests() { warnings: false }); var cmp = new U.Compressor(options, true); - var expect = make_code(as_toplevel(test.expect), false); + var expect; + if (test.expect) { + expect = make_code(as_toplevel(test.expect), false); + } else { + expect = test.expect_exact; + } var input = as_toplevel(test.input); var input_code = make_code(test.input); var output = input.transform(cmp); @@ -150,7 +155,7 @@ function parse_test(file) { } if (node instanceof U.AST_LabeledStatement) { assert.ok( - node.label.name == "input" || node.label.name == "expect", + node.label.name == "input" || node.label.name == "expect" || node.label.name == "expect_exact", tmpl("Unsupported label {name} [{line},{col}]", { name: node.label.name, line: node.label.start.line, @@ -162,7 +167,16 @@ function parse_test(file) { if (stat.body.length == 1) stat = stat.body[0]; else if (stat.body.length == 0) stat = new U.AST_EmptyStatement(); } - test[node.label.name] = stat; + if (node.label.name === "expect_exact") { + if (!(stat.TYPE === "SimpleStatement" && stat.body.TYPE === "String")) { + throw new Error( + "The value of the expect_exact clause should be a string, " + + "like `expect_exact: \"some.exact.javascript;\"`"); + } + test[node.label.name] = stat.body.start.value + } else { + test[node.label.name] = stat; + } return true; } }); |