OLD | NEW |
1 # Copyright (C) 2010 Google Inc. All rights reserved. | 1 # Copyright (C) 2010 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 20 matching lines...) Expand all Loading... |
31 import fnmatch | 31 import fnmatch |
32 import optparse | 32 import optparse |
33 import re | 33 import re |
34 | 34 |
35 from webkitpy.layout_tests.port import builders | 35 from webkitpy.layout_tests.port import builders |
36 | 36 |
37 | 37 |
38 def platform_options(use_globs=False): | 38 def platform_options(use_globs=False): |
39 return [ | 39 return [ |
40 optparse.make_option('--platform', action='store', | 40 optparse.make_option('--platform', action='store', |
41 help=('Glob-style list of platform/ports to use (e.g., "mac*")' if u
se_globs else 'Platform to use (e.g., "mac-lion")')), | 41 help=('Glob-style list of platform/ports to use (e.
g., "mac*")' if use_globs else 'Platform to use (e.g., "mac-lion")')), |
42 | 42 |
43 # FIXME: Update run_webkit_tests.sh, any other callers to no longer pass
--chromium, then remove this flag. | 43 # FIXME: Update run_webkit_tests.sh, any other callers to no longer pass
--chromium, then remove this flag. |
44 optparse.make_option('--chromium', action='store_const', dest='platform'
, | 44 optparse.make_option('--chromium', action='store_const', dest='platform'
, |
45 const=('chromium*' if use_globs else 'chromium'), | 45 const=('chromium*' if use_globs else 'chromium'), |
46 help=('Alias for --platform=chromium*' if use_globs else 'Alias for
--platform=chromium')), | 46 help=('Alias for --platform=chromium*' if use_globs
else 'Alias for --platform=chromium')), |
47 | 47 |
48 optparse.make_option('--android', action='store_const', dest='platform', | 48 optparse.make_option('--android', action='store_const', dest='platform', |
49 const=('android*' if use_globs else 'android'), | 49 const=('android*' if use_globs else 'android'), |
50 help=('Alias for --platform=android*' if use_globs else 'Alias for -
-platform=android')), | 50 help=('Alias for --platform=android*' if use_globs
else 'Alias for --platform=android')), |
51 ] | 51 ] |
52 | 52 |
53 | 53 |
54 def configuration_options(): | 54 def configuration_options(): |
55 return [ | 55 return [ |
56 optparse.make_option("-t", "--target", dest="configuration", | 56 optparse.make_option('-t', '--target', dest='configuration', |
57 help="specify the target configuration to use (Debu
g/Release)"), | 57 help='specify the target configuration to use (Debu
g/Release)'), |
58 optparse.make_option('--debug', action='store_const', const='Debug', des
t="configuration", | 58 optparse.make_option('--debug', action='store_const', const='Debug', des
t='configuration', |
59 help='Set the configuration to Debug'), | 59 help='Set the configuration to Debug'), |
60 optparse.make_option('--release', action='store_const', const='Release',
dest="configuration", | 60 optparse.make_option('--release', action='store_const', const='Release',
dest='configuration', |
61 help='Set the configuration to Release'), | 61 help='Set the configuration to Release'), |
62 ] | 62 ] |
63 | |
64 | 63 |
65 | 64 |
66 def _builder_options(builder_name): | 65 def _builder_options(builder_name): |
67 configuration = "Debug" if re.search(r"[d|D](ebu|b)g", builder_name) else "R
elease" | 66 configuration = 'Debug' if re.search(r"[d|D](ebu|b)g", builder_name) else 'R
elease' |
68 is_webkit2 = builder_name.find("WK2") != -1 | 67 is_webkit2 = builder_name.find('WK2') != -1 |
69 builder_name = builder_name | 68 builder_name = builder_name |
70 return optparse.Values({'builder_name': builder_name, 'configuration': confi
guration}) | 69 return optparse.Values({'builder_name': builder_name, 'configuration': confi
guration}) |
71 | 70 |
72 | 71 |
73 class PortFactory(object): | 72 class PortFactory(object): |
74 PORT_CLASSES = ( | 73 PORT_CLASSES = ( |
75 'android.AndroidPort', | 74 'android.AndroidPort', |
76 'linux.LinuxPort', | 75 'linux.LinuxPort', |
77 'mac.MacPort', | 76 'mac.MacPort', |
78 'win.WinPort', | 77 'win.WinPort', |
(...skipping 22 matching lines...) Expand all Loading... |
101 | 100 |
102 # FIXME(steveblock): There's no longer any need to pass '--platform | 101 # FIXME(steveblock): There's no longer any need to pass '--platform |
103 # chromium' on the command line so we can remove this logic. | 102 # chromium' on the command line so we can remove this logic. |
104 if port_name == 'chromium': | 103 if port_name == 'chromium': |
105 port_name = self._host.platform.os_name | 104 port_name = self._host.platform.os_name |
106 | 105 |
107 if 'browser_test' in port_name: | 106 if 'browser_test' in port_name: |
108 module_name, class_name = port_name.rsplit('.', 1) | 107 module_name, class_name = port_name.rsplit('.', 1) |
109 module = __import__(module_name, globals(), locals(), [], -1) | 108 module = __import__(module_name, globals(), locals(), [], -1) |
110 port_class_name = module.get_port_class_name(class_name) | 109 port_class_name = module.get_port_class_name(class_name) |
111 if port_class_name != None: | 110 if port_class_name is not None: |
112 cls = module.__dict__[port_class_name] | 111 cls = module.__dict__[port_class_name] |
113 port_name = cls.determine_full_port_name(self._host, options, cl
ass_name) | 112 port_name = cls.determine_full_port_name(self._host, options, cl
ass_name) |
114 return cls(self._host, port_name, options=options, **kwargs) | 113 return cls(self._host, port_name, options=options, **kwargs) |
115 else: | 114 else: |
116 for port_class in self.PORT_CLASSES: | 115 for port_class in self.PORT_CLASSES: |
117 module_name, class_name = port_class.rsplit('.', 1) | 116 module_name, class_name = port_class.rsplit('.', 1) |
118 module = __import__(module_name, globals(), locals(), [], -1) | 117 module = __import__(module_name, globals(), locals(), [], -1) |
119 cls = module.__dict__[class_name] | 118 cls = module.__dict__[class_name] |
120 if port_name.startswith(cls.port_name): | 119 if port_name.startswith(cls.port_name): |
121 port_name = cls.determine_full_port_name(self._host, options
, port_name) | 120 port_name = cls.determine_full_port_name(self._host, options
, port_name) |
122 return cls(self._host, port_name, options=options, **kwargs) | 121 return cls(self._host, port_name, options=options, **kwargs) |
123 raise NotImplementedError('unsupported platform: "%s"' % port_name) | 122 raise NotImplementedError('unsupported platform: "%s"' % port_name) |
124 | 123 |
125 def all_port_names(self, platform=None): | 124 def all_port_names(self, platform=None): |
126 """Return a list of all valid, fully-specified, "real" port names. | 125 """Return a list of all valid, fully-specified, "real" port names. |
127 | 126 |
128 This is the list of directories that are used as actual baseline_paths() | 127 This is the list of directories that are used as actual baseline_paths() |
129 by real ports. This does not include any "fake" names like "test" | 128 by real ports. This does not include any "fake" names like "test" |
130 or "mock-mac", and it does not include any directories that are not. | 129 or "mock-mac", and it does not include any directories that are not. |
131 | 130 |
132 If platform is not specified, we will glob-match all ports""" | 131 If platform is not specified, we will glob-match all ports""" |
133 platform = platform or '*' | 132 platform = platform or '*' |
134 return fnmatch.filter(builders.all_port_names(), platform) | 133 return fnmatch.filter(builders.all_port_names(), platform) |
135 | 134 |
136 def get_from_builder_name(self, builder_name): | 135 def get_from_builder_name(self, builder_name): |
137 port_name = builders.port_name_for_builder_name(builder_name) | 136 port_name = builders.port_name_for_builder_name(builder_name) |
138 assert port_name, "unrecognized builder name '%s'" % builder_name | 137 assert port_name, "unrecognized builder name '%s'" % builder_name |
139 return self.get(port_name, _builder_options(builder_name)) | 138 return self.get(port_name, _builder_options(builder_name)) |
OLD | NEW |