annotate tests/run.d @ 208:41ccd50e7cbc

Added missing tests
author Anders Johnsen <skabet@gmail.com>
date Tue, 12 Aug 2008 18:21:06 +0200
parents d3c148ca429b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
1 // skip
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
2 module run.d;
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
3
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
4 import tango.core.Array,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
5 tango.io.FileConduit,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
6 tango.io.FileScan,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
7 tango.io.Stdout,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
8 tango.sys.Process,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
9 tango.text.Ascii,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
10 tango.text.Regex,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
11 tango.text.Util;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
12
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
13 // -- Settings --
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
14 char[] compiler = "./Dang";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
15 char[] test_folder = "tests";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
16 char[] valid_filenames = r"^[^.].*";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
17 bool print_expected = false;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
18 char[][] options;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
19 // the tests can be sorted by one of the following functions
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
20 bool nameSort (FilePath a, FilePath b) { return a.name < b.name; }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
21 bool pathSort (FilePath a, FilePath b) { return a.toString < b.toString; }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
22 bool modifiedSort(FilePath a, FilePath b) { return a.modified < b.modified; }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
23 bool createdSort (FilePath a, FilePath b) { return a.created < b.created; }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
24 const sortBy = &pathSort;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
25
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
26 // -- end of settings
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
27
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
28 enum TestResult
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
29 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
30 Skipped,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
31 Expected,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
32 Unexpected
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
33 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
34
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
35 void main(char[][] args)
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
36 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
37 foreach (arg ; args[1..$])
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
38 options ~= arg;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
39
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
40 scope scan = new FileScan;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
41 // scope regex = new Regex(valid_filenames); // DMD FAILS!! ??
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
42 // Return true for files/folders to include
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
43 bool filter(FilePath p, bool isDir)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
44 {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
45 if (isDir)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
46 return p.name[0] != '.';
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
47 else
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
48 return p.ext == "d" ; //&& regex.test(p.name);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
49 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
50 scan.sweep(test_folder, &filter, true);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
51 FilePath[] files = scan.files;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
52 int total_tests = files.length;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
53
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
54 // Sort the result by the chosen function - default is the full path
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
55 sort(files, sortBy);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
56
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
57 int[TestResult.max + 1] results = 0;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
58 foreach (i, ref test; files)
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
59 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
60 begin_test(i + 1, total_tests, test.name);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
61 TestResult res = run_test(test);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
62 results[res] += 1;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
63 end_test();
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
64 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
65 Stdout.format("\r{,80}\r", " ");
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
66 Stdout.newline;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
67 int good = TestResult.Expected;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
68 int bad = TestResult.Unexpected;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
69 int tests_run = results[good] + results[bad];
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
70 Stdout.formatln("{}/{} tests failed", results[bad], tests_run);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
71 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
72
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
73 void begin_test(int number, int total_tests, char[] name)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
74 {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
75 char[60] progressbar = ' ';
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
76 int progress = number*progressbar.length/total_tests;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
77 progressbar[0 .. progress] = '=';
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
78 if(progress)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
79 progressbar[progress-1] = '>';
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
80 Stdout.format("\r{}% - [{}]", 1e2 * number / total_tests, progressbar);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
81 Stdout.flush();
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
82 //Thread.sleep(0.05);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
83 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
84
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
85 void end_test() { }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
86
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
87 enum {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
88 NoFail,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
89 CompiletimeFail,
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
90 RuntimeFail
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
91 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
92
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
93 private int min(int a, int b) { return a < b? a : b; }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
94 TestResult run_test(ref FilePath p)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
95 {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
96 auto file = new FileConduit(p.toString(), FileConduit.ReadExisting);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
97 char[256] content;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
98 int len = file.read(content);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
99 file.close();
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
100 char[] line = content[0 .. min(len, content.find('\n'))];
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
101
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
102 bool compile = true;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
103 int fail = NoFail;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
104 if (line.length >= 2 && line[0 .. 2] == "//")
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
105 {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
106 foreach (command; line[2 .. $].delimiters(",;"))
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
107 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
108 switch (toLower(substitute(command, " ", "")))
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
109 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
110 case "skip", "dontcompile":
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
111 compile = false;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
112 break;
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
113 case "fail", "compilefail",
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
114 "compiletimefail", "failatcompiletime":
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
115 fail = CompiletimeFail;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
116 break;
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
117 case "runtime", "runtimefail", "failatruntime":
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
118 fail = RuntimeFail;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
119 Stderr("== Compiled tests will not be run! ==").newline;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
120 return TestResult.Skipped;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
121 default:
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
122 break;
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
123 }
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
124 break;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
125 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
126 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
127
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
128 if (compile)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
129 {
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
130 auto o = compiler ~ options ~ p.toString;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
131 auto process = new Process(o);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
132 process.execute();
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
133 auto result = process.wait();
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
134 return resultOf(p, result.status, fail);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
135 }
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
136
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
137 return TestResult.Skipped;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
138 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
139
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
140 private TestResult resultOf(FilePath p, int result, int expected)
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
141 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
142 char[] good(char[] s)
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
143 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
144 version (Posix)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
145 return "\033[1;32m" ~ s ~ "\033[m";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
146 else
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
147 return s;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
148 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
149
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
150 char[] bad(char[] s)
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
151 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
152 s = s ~ " - Unexpected";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
153 version (Posix)
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
154 return "\033[1;31m" ~ s ~ "\033[m";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
155 else
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
156 return s;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
157 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
158
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
159 bool unexpected = expected == 0 ? result != 0 : result == 0;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
160 auto f = unexpected? &bad : &good;
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
161 char[] s = (result == 0)? "SUCCESS" : "FAILURE";
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
162 // always print if unexpeted, otherwise check the settings
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
163 if (unexpected || print_expected)
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
164 {
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
165 Stdout.format("\r{,80}\r", " ");
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
166 Stdout.format(" {,-45}", p);
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
167 Stdout(f(s)).newline;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
168 }
208
41ccd50e7cbc Added missing tests
Anders Johnsen <skabet@gmail.com>
parents: 206
diff changeset
169 return unexpected? TestResult.Unexpected : TestResult.Expected;
206
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
170 }
d3c148ca429b Major moving of files. all src now goes into src, all docs in docs.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
171