Mercurial > projects > dang
annotate tests/run.d @ 15:59bfbaf8847f
Updates to run.d - still errors
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Fri, 18 Apr 2008 17:49:34 +0200 |
parents | 2168f4cb73f1 |
children | 2a7b05d2e4f9 |
rev | line source |
---|---|
1 | 1 module run.d; |
2 | |
3 import tango.io.Stdout, | |
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 | 12 tango.sys.Process; |
13 | |
14 | |
15 char[] prog = "./Dang"; | |
16 | |
17 void main(char[][] args) | |
18 { | |
19 auto cPath = FilePath("tests"); | |
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 | 22 |
23 foreach( path ; cPath.toList((FilePath path, bool isFolder){return isFolder;})) | |
24 { | |
25 Stdout(path.name)(":").newline; | |
26 foreach( p ; path.toList((FilePath path, bool isFolder) | |
27 { | |
28 if(path.ext == "d" && path.name[0] != '.') | |
29 return true; | |
30 return false; | |
31 })) | |
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 | 52 } |
53 } | |
54 | |
55 Stdout().newline.newline() | |
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 | 61 } |
62 | |
63 class Test | |
64 { | |
65 FilePath target; | |
66 public this(FilePath target) | |
67 { | |
68 this.target = target; | |
69 } | |
70 | |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
71 public ubyte run() |
1 | 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 | 94 |
95 Stdout(" - ")(target.file)(".. "); | |
96 | |
97 process.execute; | |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
98 auto buffer = new GrowBuffer(); |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
99 buffer.copy(process.stdout); |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
100 // auto result = process.wait; |
1 | 101 |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
102 Process.Result result; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
103 |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
104 Stdout("1").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
105 // if(result.status == 0) |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
106 // { |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
107 Stdout("2").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
108 auto llvm_process = new Process("llvm-as",target.path~target.file); |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
109 llvm_process.execute; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
110 if(llvm_process.isRunning) |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
111 { |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
112 Stdout("3")(process.stdout)(llvm_process.stdin).newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
113 // llvm_process.stdin.copy(buffer); |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
114 llvm_process.stdin.write("lalalala"); |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
115 Stdout("4").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
116 result = llvm_process.wait; |
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 // } |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
119 |
1 | 120 if(result.status == 0) |
121 { | |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
122 if(mode == 0) |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
123 { |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
124 Stdout("SUCCES").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
125 return 0; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
126 } |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
127 if(mode == 1) |
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 Stdout("SUCCES - Unexpected").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
130 return 3; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
131 } |
1 | 132 } |
133 else | |
134 { | |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
135 if(mode == 1) |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
136 { |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
137 Stdout("FAILURE").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
138 return 2; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
139 } |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
140 if(mode == 0) |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
141 { |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
142 Stdout("FAILURE - Unexpected").newline; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
143 return 1; |
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
144 } |
1 | 145 } |
146 } | |
147 } | |
15
59bfbaf8847f
Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents:
1
diff
changeset
|
148 |