OLD | NEW |
1 # Copyright 2012 the V8 project authors. All rights reserved. | 1 # Copyright 2012 the V8 project authors. All rights reserved. |
2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
4 # met: | 4 # met: |
5 # | 5 # |
6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 | 50 |
51 def Starting(self): | 51 def Starting(self): |
52 pass | 52 pass |
53 | 53 |
54 def Done(self): | 54 def Done(self): |
55 pass | 55 pass |
56 | 56 |
57 def AboutToRun(self, test): | 57 def AboutToRun(self, test): |
58 pass | 58 pass |
59 | 59 |
60 def HasRun(self, test): | 60 def HasRun(self, test, has_unexpected_output): |
61 pass | 61 pass |
62 | 62 |
63 def PrintFailureHeader(self, test): | 63 def PrintFailureHeader(self, test): |
64 if test.suite.IsNegativeTest(test): | 64 if test.suite.IsNegativeTest(test): |
65 negative_marker = '[negative] ' | 65 negative_marker = '[negative] ' |
66 else: | 66 else: |
67 negative_marker = '' | 67 negative_marker = '' |
68 print "=== %(label)s %(negative)s===" % { | 68 print "=== %(label)s %(negative)s===" % { |
69 'label': test.GetLabel(), | 69 'label': test.GetLabel(), |
70 'negative': negative_marker | 70 'negative': negative_marker |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
104 print "=== %i tests CRASHED" % self.runner.crashed | 104 print "=== %i tests CRASHED" % self.runner.crashed |
105 print "===" | 105 print "===" |
106 | 106 |
107 | 107 |
108 class VerboseProgressIndicator(SimpleProgressIndicator): | 108 class VerboseProgressIndicator(SimpleProgressIndicator): |
109 | 109 |
110 def AboutToRun(self, test): | 110 def AboutToRun(self, test): |
111 print 'Starting %s...' % test.GetLabel() | 111 print 'Starting %s...' % test.GetLabel() |
112 sys.stdout.flush() | 112 sys.stdout.flush() |
113 | 113 |
114 def HasRun(self, test): | 114 def HasRun(self, test, has_unexpected_output): |
115 if test.suite.HasUnexpectedOutput(test): | 115 if has_unexpected_output: |
116 if test.output.HasCrashed(): | 116 if test.output.HasCrashed(): |
117 outcome = 'CRASH' | 117 outcome = 'CRASH' |
118 else: | 118 else: |
119 outcome = 'FAIL' | 119 outcome = 'FAIL' |
120 else: | 120 else: |
121 outcome = 'pass' | 121 outcome = 'pass' |
122 print 'Done running %s: %s' % (test.GetLabel(), outcome) | 122 print 'Done running %s: %s' % (test.GetLabel(), outcome) |
123 | 123 |
124 | 124 |
125 class DotsProgressIndicator(SimpleProgressIndicator): | 125 class DotsProgressIndicator(SimpleProgressIndicator): |
126 | 126 |
127 def HasRun(self, test): | 127 def HasRun(self, test, has_unexpected_output): |
128 total = self.runner.succeeded + len(self.runner.failed) | 128 total = self.runner.succeeded + len(self.runner.failed) |
129 if (total > 1) and (total % 50 == 1): | 129 if (total > 1) and (total % 50 == 1): |
130 sys.stdout.write('\n') | 130 sys.stdout.write('\n') |
131 if test.suite.HasUnexpectedOutput(test): | 131 if has_unexpected_output: |
132 if test.output.HasCrashed(): | 132 if test.output.HasCrashed(): |
133 sys.stdout.write('C') | 133 sys.stdout.write('C') |
134 sys.stdout.flush() | 134 sys.stdout.flush() |
135 elif test.output.HasTimedOut(): | 135 elif test.output.HasTimedOut(): |
136 sys.stdout.write('T') | 136 sys.stdout.write('T') |
137 sys.stdout.flush() | 137 sys.stdout.flush() |
138 else: | 138 else: |
139 sys.stdout.write('F') | 139 sys.stdout.write('F') |
140 sys.stdout.flush() | 140 sys.stdout.flush() |
141 else: | 141 else: |
(...skipping 10 matching lines...) Expand all Loading... |
152 self.last_status_length = 0 | 152 self.last_status_length = 0 |
153 self.start_time = time.time() | 153 self.start_time = time.time() |
154 | 154 |
155 def Done(self): | 155 def Done(self): |
156 self.PrintProgress('Done') | 156 self.PrintProgress('Done') |
157 print "" # Line break. | 157 print "" # Line break. |
158 | 158 |
159 def AboutToRun(self, test): | 159 def AboutToRun(self, test): |
160 self.PrintProgress(test.GetLabel()) | 160 self.PrintProgress(test.GetLabel()) |
161 | 161 |
162 def HasRun(self, test): | 162 def HasRun(self, test, has_unexpected_output): |
163 if test.suite.HasUnexpectedOutput(test): | 163 if has_unexpected_output: |
164 self.ClearLine(self.last_status_length) | 164 self.ClearLine(self.last_status_length) |
165 self.PrintFailureHeader(test) | 165 self.PrintFailureHeader(test) |
166 stdout = test.output.stdout.strip() | 166 stdout = test.output.stdout.strip() |
167 if len(stdout): | 167 if len(stdout): |
168 print self.templates['stdout'] % stdout | 168 print self.templates['stdout'] % stdout |
169 stderr = test.output.stderr.strip() | 169 stderr = test.output.stderr.strip() |
170 if len(stderr): | 170 if len(stderr): |
171 print self.templates['stderr'] % stderr | 171 print self.templates['stderr'] % stderr |
172 print "Command: %s" % EscapeCommand(self.runner.GetCommand(test)) | 172 print "Command: %s" % EscapeCommand(self.runner.GetCommand(test)) |
173 if test.output.HasCrashed(): | 173 if test.output.HasCrashed(): |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
248 | 248 |
249 def Done(self): | 249 def Done(self): |
250 self.progress_indicator.Done() | 250 self.progress_indicator.Done() |
251 self.outputter.FinishAndWrite(self.outfile) | 251 self.outputter.FinishAndWrite(self.outfile) |
252 if self.outfile != sys.stdout: | 252 if self.outfile != sys.stdout: |
253 self.outfile.close() | 253 self.outfile.close() |
254 | 254 |
255 def AboutToRun(self, test): | 255 def AboutToRun(self, test): |
256 self.progress_indicator.AboutToRun(test) | 256 self.progress_indicator.AboutToRun(test) |
257 | 257 |
258 def HasRun(self, test): | 258 def HasRun(self, test, has_unexpected_output): |
259 self.progress_indicator.HasRun(test) | 259 self.progress_indicator.HasRun(test, has_unexpected_output) |
260 fail_text = "" | 260 fail_text = "" |
261 if test.suite.HasUnexpectedOutput(test): | 261 if has_unexpected_output: |
262 stdout = test.output.stdout.strip() | 262 stdout = test.output.stdout.strip() |
263 if len(stdout): | 263 if len(stdout): |
264 fail_text += "stdout:\n%s\n" % stdout | 264 fail_text += "stdout:\n%s\n" % stdout |
265 stderr = test.output.stderr.strip() | 265 stderr = test.output.stderr.strip() |
266 if len(stderr): | 266 if len(stderr): |
267 fail_text += "stderr:\n%s\n" % stderr | 267 fail_text += "stderr:\n%s\n" % stderr |
268 fail_text += "Command: %s" % EscapeCommand(self.runner.GetCommand(test)) | 268 fail_text += "Command: %s" % EscapeCommand(self.runner.GetCommand(test)) |
269 if test.output.HasCrashed(): | 269 if test.output.HasCrashed(): |
270 fail_text += "exit code: %d\n--- CRASHED ---" % test.output.exit_code | 270 fail_text += "exit code: %d\n--- CRASHED ---" % test.output.exit_code |
271 if test.output.HasTimedOut(): | 271 if test.output.HasTimedOut(): |
272 fail_text += "--- TIMEOUT ---" | 272 fail_text += "--- TIMEOUT ---" |
273 self.outputter.HasRunTest( | 273 self.outputter.HasRunTest( |
274 [test.GetLabel()] + self.runner.context.mode_flags + test.flags, | 274 [test.GetLabel()] + self.runner.context.mode_flags + test.flags, |
275 test.duration, | 275 test.duration, |
276 fail_text) | 276 fail_text) |
277 | 277 |
278 | 278 |
279 PROGRESS_INDICATORS = { | 279 PROGRESS_INDICATORS = { |
280 'verbose': VerboseProgressIndicator, | 280 'verbose': VerboseProgressIndicator, |
281 'dots': DotsProgressIndicator, | 281 'dots': DotsProgressIndicator, |
282 'color': ColorProgressIndicator, | 282 'color': ColorProgressIndicator, |
283 'mono': MonochromeProgressIndicator | 283 'mono': MonochromeProgressIndicator |
284 } | 284 } |
OLD | NEW |