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
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;
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
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
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
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
120 if(result.status == 0)
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
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
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
132 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
133 else
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
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
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
145 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
146 }
2168f4cb73f1 First push
johnsen@johnsen-desktop
parents:
diff changeset
147 }
15
59bfbaf8847f Updates to run.d - still errors
Anders Johnsen <skabet@gmail.com>
parents: 1
diff changeset
148