annotate tests/run.d @ 17:2a7b05d2e4f9

Fixed tests.run - now works really nice
author Anders Johnsen <skabet@gmail.com>
date Fri, 18 Apr 2008 17:55:42 +0200
parents 59bfbaf8847f
children 95e3940d91d4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
1 module run.d;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
2
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
3 import tango.io.Stdout,
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
4 tango.io.FilePath,
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
5 tango.io.GrowBuffer,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
6 tango.io.UnicodeFile,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
7 tango.io.stream.BufferStream,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
8 tango.text.Util,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
9 tango.io.protocol.Reader,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
10 tango.io.protocol.Writer,
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
11 tango.text.Unicode,
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
12 tango.sys.Process;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
13
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
14
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
15 char[] prog = "./Dang";
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
16
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
17 void main(char[][] args)
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
18 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
19 auto cPath = FilePath("tests");
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
20
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
21 ubyte success_success, success_failure, failure_failure, failure_success;
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
22
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
23 foreach( path ; cPath.toList((FilePath path, bool isFolder){return isFolder;}))
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
24 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
25 Stdout(path.name)(":").newline;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
26 foreach( p ; path.toList((FilePath path, bool isFolder)
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
27 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
28 if(path.ext == "d" && path.name[0] != '.')
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
29 return true;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
30 return false;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
31 }))
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
32 {
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
33 auto test = new Test(p);
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
34 ubyte result = test.run();
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
35
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
36 switch(result)
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
37 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
38 case 0:
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
39 success_success++;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
40 break;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
41 case 1:
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
42 success_failure++;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
43 break;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
44 case 2:
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
45 failure_failure++;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
46 break;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
47 case 3:
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
48 failure_success++;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
49 break;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
50 }
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
51
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
52 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
53 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
54
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
55 Stdout().newline.newline()
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
56 ("Result:").newline()
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
57 (" - Succes/Success: ")(success_success).newline()
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
58 (" - Succes/Failure: ")(success_failure).newline()
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
59 (" - Failure/Failure: ")(failure_failure).newline()
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
60 (" - Failure/Success: ")(failure_success).newline;
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
61 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
62
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
63 class Test
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
64 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
65 FilePath target;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
66 public this(FilePath target)
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
67 {
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
68 this.target = target;
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
69 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
70
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
71 public ubyte run()
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
72 {
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
73 auto process = new Process(prog,"--gen-llvm",target.path~target.file);
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
74
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
75 auto file = new UnicodeFile!(char)(target.path~target.file, Encoding.UTF_8);
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
76
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
77 int mode;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
78
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
79 char[] data = file.read;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
80 if(data.length > 6 && data[0..6] == "//test")
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
81 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
82 char[] str = data.splitLines()[0][6..$];
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
83
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
84 switch(toLower(trim(str)))
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
85 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
86 case "fail":
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
87 case "failure":
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
88 mode = 1;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
89 break;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
90 default:
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
91 mode = 0;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
92 }
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
93 }
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
94
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
95 Stdout(" - ")(target.file)(".. ");
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
96
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
97 process.execute;
17
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
98 auto result = process.wait;
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
99
17
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
100 if(result.status == 0)
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
101 {
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
102 auto llvm_process = new Process("llvm-as");
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
103 llvm_process.execute;
17
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
104 llvm_process.stdin.copy(process.stdout);
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
105 llvm_process.stdin.close();
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
106 result = llvm_process.wait;
17
2a7b05d2e4f9 Fixed tests.run - now works really nice
Anders Johnsen <skabet@gmail.com>
parents: 15
diff changeset
107 }
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
108
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
109 if(result.status == 0)
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
110 {
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
111 if(mode == 0)
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
112 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
113 Stdout("SUCCES").newline;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
114 return 0;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
115 }
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
116 if(mode == 1)
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
117 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
118 Stdout("SUCCES - Unexpected").newline;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
119 return 3;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
120 }
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
121 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
122 else
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
123 {
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
124 if(mode == 1)
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
125 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
126 Stdout("FAILURE").newline;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
127 return 2;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
128 }
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
129 if(mode == 0)
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
130 {
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
131 Stdout("FAILURE - Unexpected").newline;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
132 return 1;
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
133 }
1
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
134 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
135 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
136 }
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
137