Skip to content

Commit 9fe050b

Browse files
committed
Skip leading_dots test for now
This bug is tracked in #3.
1 parent 97f33e5 commit 9fe050b

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

syntax/test/src/main.d

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ import ftl = fluentd.syntax;
55

66
private @safe:
77

8+
immutable string[1] skippedTests = [
9+
// Currently, the whole `Message` turns into `Junk` if there is an error in its attribute.
10+
// Github issue #3.
11+
"reference/leading_dots",
12+
];
13+
814
JSONValue parseJSONFile(string fileName) @system {
915
import std.mmfile;
1016
import std.typecons: scoped;
@@ -44,28 +50,41 @@ bool testAndReport(string fileName, string testName) @system {
4450
write(e, "\n\n");
4551
goto failure;
4652
}
47-
writefln("Test `%s` failed.", testName);
53+
writef("Test `%s` failed.\n", testName);
4854
failure:
4955
stdout.flush();
5056
return false;
5157
}
5258

5359
int main() @system {
60+
import std.algorithm.searching: canFind;
61+
import std.range.primitives: empty;
5462
import std.stdio;
5563
import std.string: makeTransTable, translate;
5664

57-
uint ok, failed;
58-
foreach (string fileName; stdf.dirEntries("fixtures", "*.ftl", stdf.SpanMode.breadth))
59-
if (testAndReport(fileName, fileName[9 .. $ - 4].translate(makeTransTable(`\`, "/"))))
65+
enum backslashToSlash = makeTransTable(`\`, "/");
66+
uint ok, failed, skipped;
67+
foreach (string fileName; stdf.dirEntries("fixtures", "*.ftl", stdf.SpanMode.breadth)) {
68+
const testName = fileName[9 .. $ - 4].translate(backslashToSlash);
69+
if (skippedTests[ ].canFind(testName))
70+
skipped++;
71+
else if (testAndReport(fileName, testName))
6072
ok++;
6173
else
6274
failed++;
63-
64-
if (!failed) {
65-
writefln("%s OK.", ok);
66-
return 0;
6775
}
6876

69-
writefln("%s FAILURES, %s OK.", failed, ok);
70-
return 1;
77+
if (skipped != skippedTests.length)
78+
writefln("%s tests were going to be skipped, but only %s were found.",
79+
skippedTests.length, skipped,
80+
);
81+
82+
if (failed)
83+
writef("%s FAILURES, ", failed);
84+
writef("%s OK", ok);
85+
if (!skippedTests.empty)
86+
writef(", %s skipped", skipped);
87+
write(".\n");
88+
89+
return !!failed;
7190
}

0 commit comments

Comments
 (0)