| OLD | NEW |
| 1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 # for details. All rights reserved. Use of this source code is governed by a | 2 # for details. All rights reserved. Use of this source code is governed by a |
| 3 # BSD-style license that can be found in the LICENSE file. | 3 # BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 | 5 |
| 6 import os | 6 import os |
| 7 from os.path import join, exists | 7 from os.path import join, exists |
| 8 import re | 8 import re |
| 9 | 9 |
| 10 import test | 10 import test |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 def IsTest(self, name): | 123 def IsTest(self, name): |
| 124 return self._TESTNAME_PATTERN.match(name) | 124 return self._TESTNAME_PATTERN.match(name) |
| 125 | 125 |
| 126 def GetTestStatus(self, sections, defs): | 126 def GetTestStatus(self, sections, defs): |
| 127 status = join(self.root, "co19-runtime.status") | 127 status = join(self.root, "co19-runtime.status") |
| 128 if exists(status): | 128 if exists(status): |
| 129 test.ReadConfigurationInto(status, sections, defs) | 129 test.ReadConfigurationInto(status, sections, defs) |
| 130 status = join(self.root, "co19-compiler.status") | 130 status = join(self.root, "co19-compiler.status") |
| 131 if exists(status): | 131 if exists(status): |
| 132 test.ReadConfigurationInto(status, sections, defs) | 132 test.ReadConfigurationInto(status, sections, defs) |
| 133 status = join(self.root, "co19-frog.status") |
| 134 if exists(status): |
| 135 test.ReadConfigurationInto(status, sections, defs) |
| 133 | 136 |
| 134 def Contains(self, path, file): | 137 def Contains(self, path, file): |
| 135 """ reimplemented for support '**' glob pattern """ | 138 """ reimplemented for support '**' glob pattern """ |
| 136 if len(path) > len(file): | 139 if len(path) > len(file): |
| 137 return | 140 return |
| 138 # ** matches to any number of directories, a/**/d matches a/b/c/d | 141 # ** matches to any number of directories, a/**/d matches a/b/c/d |
| 139 # paths like a/**/x/**/b not allowed | 142 # paths like a/**/x/**/b not allowed |
| 140 patterns = [p.pattern for p in path] | 143 patterns = [p.pattern for p in path] |
| 141 if '**' in patterns: | 144 if '**' in patterns: |
| 142 idx = patterns.index('**') | 145 idx = patterns.index('**') |
| 143 patterns[idx : idx] = ['*'] * (len(file) - len(path)) | 146 patterns[idx : idx] = ['*'] * (len(file) - len(path)) |
| 144 path = [test.Pattern(p) for p in patterns] | 147 path = [test.Pattern(p) for p in patterns] |
| 145 | 148 |
| 146 for i in xrange(len(path)): | 149 for i in xrange(len(path)): |
| 147 if not path[i].match(file[i]): | 150 if not path[i].match(file[i]): |
| 148 return False | 151 return False |
| 149 return True | 152 return True |
| 150 | 153 |
| 151 def GetConfiguration(context, root): | 154 def GetConfiguration(context, root): |
| 152 return Co19TestConfiguration(context, root) | 155 return Co19TestConfiguration(context, root) |
| OLD | NEW |