@@ -5,6 +5,12 @@ import ftl = fluentd.syntax;
5
5
6
6
private @safe :
7
7
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
+
8
14
JSONValue parseJSONFile (string fileName) @system {
9
15
import std.mmfile ;
10
16
import std.typecons : scoped;
@@ -44,28 +50,41 @@ bool testAndReport(string fileName, string testName) @system {
44
50
write(e, " \n\n " );
45
51
goto failure;
46
52
}
47
- writefln (" Test `%s` failed." , testName);
53
+ writef (" Test `%s` failed.\n " , testName);
48
54
failure:
49
55
stdout.flush();
50
56
return false ;
51
57
}
52
58
53
59
int main () @system {
60
+ import std.algorithm.searching : canFind;
61
+ import std.range.primitives : empty;
54
62
import std.stdio ;
55
63
import std.string : makeTransTable, translate;
56
64
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))
60
72
ok++ ;
61
73
else
62
74
failed++ ;
63
-
64
- if (! failed) {
65
- writefln(" %s OK." , ok);
66
- return 0 ;
67
75
}
68
76
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;
71
90
}
0 commit comments