| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2014 Google Inc. All rights reserved. | 2 # Copyright (c) 2014 Google Inc. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Tests for analyzer | 6 """Tests for analyzer |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 import json | 9 import json |
| 10 import TestGyp | 10 import TestGyp |
| 11 | 11 |
| 12 found = 'Found dependency' | 12 found = 'Found dependency' |
| 13 found_all = 'Found dependency (all)' | 13 found_all = 'Found dependency (all)' |
| 14 not_found = 'No dependencies' | 14 not_found = 'No dependencies' |
| 15 | 15 |
| 16 | 16 |
| 17 def _CreateConfigFile(files, targets): | 17 def _CreateConfigFile(files, additional_compile_targets, test_targets=[]): |
| 18 """Creates the analyzer config file, which is used as the input to analyzer. | 18 """Creates the analyzer config file, which is used as the input to analyzer. |
| 19 See description of analyzer.py for description of the arguments.""" | 19 See description of analyzer.py for description of the arguments.""" |
| 20 f = open('test_file', 'w') | 20 f = open('test_file', 'w') |
| 21 to_write = {'files': files, 'targets': targets } | 21 to_write = {'files': files, |
| 22 'test_targets': test_targets, |
| 23 'additional_compile_targets': additional_compile_targets } |
| 22 json.dump(to_write, f) | 24 json.dump(to_write, f) |
| 23 f.close() | 25 f.close() |
| 24 | 26 |
| 25 | 27 |
| 26 def _CreateBogusConfigFile(): | 28 def _CreateBogusConfigFile(): |
| 27 f = open('test_file','w') | 29 f = open('test_file','w') |
| 28 f.write('bogus') | 30 f.write('bogus') |
| 29 f.close() | 31 f.close() |
| 30 | 32 |
| 31 | 33 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 62 args += CommonArgs() | 64 args += CommonArgs() |
| 63 test.run_gyp('test3.gyp', *args, **kw) | 65 test.run_gyp('test3.gyp', *args, **kw) |
| 64 | 66 |
| 65 | 67 |
| 66 def run_analyzer4(*args, **kw): | 68 def run_analyzer4(*args, **kw): |
| 67 """Same as run_analyzer(), but passes in test3.gyp instead of test.gyp.""" | 69 """Same as run_analyzer(), but passes in test3.gyp instead of test.gyp.""" |
| 68 args += CommonArgs() | 70 args += CommonArgs() |
| 69 test.run_gyp('test4.gyp', *args, **kw) | 71 test.run_gyp('test4.gyp', *args, **kw) |
| 70 | 72 |
| 71 | 73 |
| 72 def EnsureContains(matched=False, build_targets=set()): | 74 def EnsureContains(matched=False, compile_targets=set(), test_targets=set()): |
| 73 """Verifies output contains |build_targets|.""" | 75 """Verifies output contains |compile_targets|.""" |
| 74 result = _ReadOutputFileContents() | 76 result = _ReadOutputFileContents() |
| 75 if result.get('error', None): | 77 if result.get('error', None): |
| 76 print 'unexpected error', result.get('error') | 78 print 'unexpected error', result.get('error') |
| 77 test.fail_test() | 79 test.fail_test() |
| 78 | 80 |
| 79 if result.get('invalid_targets', None): | 81 if result.get('invalid_targets', None): |
| 80 print 'unexpected invalid_targets', result.get('invalid_targets') | 82 print 'unexpected invalid_targets', result.get('invalid_targets') |
| 81 test.fail_test() | 83 test.fail_test() |
| 82 | 84 |
| 83 # TODO(sky): nuke when get rid of targets. | 85 actual_compile_targets = set(result['compile_targets']) |
| 84 targets = build_targets | 86 if actual_compile_targets != compile_targets: |
| 85 actual_targets = set(result['targets']) | 87 print 'actual compile_targets:', actual_compile_targets, \ |
| 86 if actual_targets != targets: | 88 '\nexpected compile_targets:', compile_targets |
| 87 print 'actual targets:', actual_targets, '\nexpected targets:', targets | |
| 88 test.fail_test() | 89 test.fail_test() |
| 89 | 90 |
| 90 actual_build_targets = set(result['build_targets']) | 91 actual_test_targets = set(result['test_targets']) |
| 91 if actual_build_targets != build_targets: | 92 if actual_test_targets != test_targets: |
| 92 print 'actual build_targets:', actual_build_targets, \ | 93 print 'actual test_targets:', actual_test_targets, \ |
| 93 '\nexpected build_targets:', build_targets | 94 '\nexpected test_targets:', test_targets |
| 94 test.fail_test() | 95 test.fail_test() |
| 95 | 96 |
| 96 if matched and result['status'] != found: | 97 if matched and result['status'] != found: |
| 97 print 'expected', found, 'got', result['status'] | 98 print 'expected', found, 'got', result['status'] |
| 98 test.fail_test() | 99 test.fail_test() |
| 99 elif not matched and result['status'] != not_found: | 100 elif not matched and result['status'] != not_found: |
| 100 print 'expected', not_found, 'got', result['status'] | 101 print 'expected', not_found, 'got', result['status'] |
| 101 test.fail_test() | 102 test.fail_test() |
| 102 | 103 |
| 103 | 104 |
| 104 def EnsureMatchedAll(targets): | 105 def EnsureMatchedAll(compile_targets, test_targets=set()): |
| 105 result = _ReadOutputFileContents() | 106 result = _ReadOutputFileContents() |
| 106 if result.get('error', None): | 107 if result.get('error', None): |
| 107 print 'unexpected error', result.get('error') | 108 print 'unexpected error', result.get('error') |
| 108 test.fail_test() | 109 test.fail_test() |
| 109 | 110 |
| 110 if result.get('invalid_targets', None): | 111 if result.get('invalid_targets', None): |
| 111 print 'unexpected invalid_targets', result.get('invalid_targets') | 112 print 'unexpected invalid_targets', result.get('invalid_targets') |
| 112 test.fail_test() | 113 test.fail_test() |
| 113 | 114 |
| 114 if result['status'] != found_all: | 115 if result['status'] != found_all: |
| 115 print 'expected', found_all, 'got', result['status'] | 116 print 'expected', found_all, 'got', result['status'] |
| 116 test.fail_test() | 117 test.fail_test() |
| 117 | 118 |
| 118 actual_targets = set(result['targets']) | 119 actual_compile_targets = set(result['compile_targets']) |
| 119 if actual_targets != targets: | 120 if actual_compile_targets != compile_targets: |
| 120 print 'actual targets:', actual_targets, '\nexpected targets:', targets | 121 print ('actual compile_targets:', actual_compile_targets, |
| 122 '\nexpected compile_targets:', compile_targets) |
| 123 test.fail_test() |
| 124 |
| 125 actual_test_targets = set(result['test_targets']) |
| 126 if actual_test_targets != test_targets: |
| 127 print ('actual test_targets:', actual_test_targets, |
| 128 '\nexpected test_targets:', test_targets) |
| 121 test.fail_test() | 129 test.fail_test() |
| 122 | 130 |
| 123 | 131 |
| 124 def EnsureError(expected_error_string): | 132 def EnsureError(expected_error_string): |
| 125 """Verifies output contains the error string.""" | 133 """Verifies output contains the error string.""" |
| 126 result = _ReadOutputFileContents() | 134 result = _ReadOutputFileContents() |
| 127 if result.get('error', '').find(expected_error_string) == -1: | 135 if result.get('error', '').find(expected_error_string) == -1: |
| 128 print 'actual error:', result.get('error', ''), '\nexpected error:', \ | 136 print 'actual error:', result.get('error', ''), '\nexpected error:', \ |
| 129 expected_error_string | 137 expected_error_string |
| 130 test.fail_test() | 138 test.fail_test() |
| (...skipping 12 matching lines...) Expand all Loading... |
| 143 actual_invalid_targets = set(result['invalid_targets']) | 151 actual_invalid_targets = set(result['invalid_targets']) |
| 144 if actual_invalid_targets != expected_invalid_targets: | 152 if actual_invalid_targets != expected_invalid_targets: |
| 145 print 'actual invalid_targets:', actual_invalid_targets, \ | 153 print 'actual invalid_targets:', actual_invalid_targets, \ |
| 146 '\nexpected :', expected_invalid_targets | 154 '\nexpected :', expected_invalid_targets |
| 147 test.fail_test() | 155 test.fail_test() |
| 148 | 156 |
| 149 | 157 |
| 150 # Two targets, A and B (both static_libraries) and A depends upon B. If a file | 158 # Two targets, A and B (both static_libraries) and A depends upon B. If a file |
| 151 # in B changes, then both A and B are output. It is not strictly necessary that | 159 # in B changes, then both A and B are output. It is not strictly necessary that |
| 152 # A is compiled in this case, only B. | 160 # A is compiled in this case, only B. |
| 153 _CreateConfigFile(['b.c'], ['a']) | 161 _CreateConfigFile(['b.c'], ['all']) |
| 154 test.run_gyp('static_library_test.gyp', *CommonArgs()) | 162 test.run_gyp('static_library_test.gyp', *CommonArgs()) |
| 155 EnsureContains(matched=True, build_targets={'a' ,'b'}) | 163 EnsureContains(matched=True, compile_targets={'a' ,'b'}) |
| 156 | 164 |
| 157 # Verifies config_path must be specified. | 165 # Verifies config_path must be specified. |
| 158 test.run_gyp('test.gyp') | 166 test.run_gyp('test.gyp') |
| 159 EnsureStdoutContains('Must specify files to analyze via config_path') | 167 EnsureStdoutContains('Must specify files to analyze via config_path') |
| 160 | 168 |
| 161 # Verifies config_path must point to a valid file. | 169 # Verifies config_path must point to a valid file. |
| 162 test.run_gyp('test.gyp', '-Gconfig_path=bogus_file', | 170 test.run_gyp('test.gyp', '-Gconfig_path=bogus_file', |
| 163 '-Ganalyzer_output_path=analyzer_output') | 171 '-Ganalyzer_output_path=analyzer_output') |
| 164 EnsureError('Unable to open file bogus_file') | 172 EnsureError('Unable to open file bogus_file') |
| 165 | 173 |
| 166 # Verify 'invalid_targets' is present when bad target is specified. | 174 # Verify 'invalid_targets' is present when bad target is specified. |
| 167 _CreateConfigFile(['exe2.c'], ['bad_target', 'all', 'exe2']) | 175 _CreateConfigFile(['exe2.c'], ['bad_target']) |
| 168 run_analyzer() | 176 run_analyzer() |
| 169 EnsureInvalidTargets({'bad_target'}) | 177 EnsureInvalidTargets({'bad_target'}) |
| 170 | 178 |
| 171 # Verifies config_path must point to a valid json file. | 179 # Verifies config_path must point to a valid json file. |
| 172 _CreateBogusConfigFile() | 180 _CreateBogusConfigFile() |
| 173 run_analyzer() | 181 run_analyzer() |
| 174 EnsureError('Unable to parse config file test_file') | 182 EnsureError('Unable to parse config file test_file') |
| 175 | 183 |
| 176 # Trivial test of a source. | 184 # Trivial test of a source. |
| 177 _CreateConfigFile(['foo.c'], ['all', 'exe2']) | 185 _CreateConfigFile(['foo.c'], ['all']) |
| 178 run_analyzer() | 186 run_analyzer() |
| 179 EnsureContains(matched=True, build_targets={'exe'}) | 187 EnsureContains(matched=True, compile_targets={'exe'}) |
| 180 | 188 |
| 181 # Conditional source that is excluded. | 189 # Conditional source that is excluded. |
| 182 _CreateConfigFile(['conditional_source.c'], ['all', 'exe2']) | 190 _CreateConfigFile(['conditional_source.c'], ['all']) |
| 183 run_analyzer() | 191 run_analyzer() |
| 184 EnsureContains(matched=False) | 192 EnsureContains(matched=False) |
| 185 | 193 |
| 186 # Conditional source that is included by way of argument. | 194 # Conditional source that is included by way of argument. |
| 187 _CreateConfigFile(['conditional_source.c'], ['all', 'exe2']) | 195 _CreateConfigFile(['conditional_source.c'], ['all']) |
| 188 run_analyzer('-Dtest_variable=1') | 196 run_analyzer('-Dtest_variable=1') |
| 189 EnsureContains(matched=True, build_targets={'exe'}) | 197 EnsureContains(matched=True, compile_targets={'exe'}) |
| 190 | 198 |
| 191 # Two unknown files. | 199 # Two unknown files. |
| 192 _CreateConfigFile(['unknown1.c', 'unoknow2.cc'], ['all', 'exe2']) | 200 _CreateConfigFile(['unknown1.c', 'unoknow2.cc'], ['all']) |
| 193 run_analyzer() | 201 run_analyzer() |
| 194 EnsureContains() | 202 EnsureContains() |
| 195 | 203 |
| 196 # Two unknown files. | 204 # Two unknown files. |
| 197 _CreateConfigFile(['unknown1.c', 'subdir/subdir_sourcex.c'], ['all', 'exe2']) | 205 _CreateConfigFile(['unknown1.c', 'subdir/subdir_sourcex.c'], ['all']) |
| 198 run_analyzer() | 206 run_analyzer() |
| 199 EnsureContains() | 207 EnsureContains() |
| 200 | 208 |
| 201 # Included dependency | 209 # Included dependency |
| 202 _CreateConfigFile(['unknown1.c', 'subdir/subdir_source.c'], ['all', 'exe2']) | 210 _CreateConfigFile(['unknown1.c', 'subdir/subdir_source.c'], ['all']) |
| 203 run_analyzer() | 211 run_analyzer() |
| 204 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) | 212 EnsureContains(matched=True, compile_targets={'exe', 'exe3'}) |
| 205 | 213 |
| 206 # Included inputs to actions. | 214 # Included inputs to actions. |
| 207 _CreateConfigFile(['action_input.c'], ['all', 'exe2']) | 215 _CreateConfigFile(['action_input.c'], ['all']) |
| 208 run_analyzer() | 216 run_analyzer() |
| 209 EnsureContains(matched=True, build_targets={'exe'}) | 217 EnsureContains(matched=True, compile_targets={'exe'}) |
| 210 | 218 |
| 211 # Don't consider outputs. | 219 # Don't consider outputs. |
| 212 _CreateConfigFile(['action_output.c'], ['all', 'exe2']) | 220 _CreateConfigFile(['action_output.c'], ['all']) |
| 213 run_analyzer() | 221 run_analyzer() |
| 214 EnsureContains(matched=False) | 222 EnsureContains(matched=False) |
| 215 | 223 |
| 216 # Rule inputs. | 224 # Rule inputs. |
| 217 _CreateConfigFile(['rule_input.c'], ['all', 'exe2']) | 225 _CreateConfigFile(['rule_input.c'], ['all']) |
| 218 run_analyzer() | 226 run_analyzer() |
| 219 EnsureContains(matched=True, build_targets={'exe'}) | 227 EnsureContains(matched=True, compile_targets={'exe'}) |
| 220 | 228 |
| 221 # Ignore path specified with PRODUCT_DIR. | 229 # Ignore path specified with PRODUCT_DIR. |
| 222 _CreateConfigFile(['product_dir_input.c'], ['all', 'exe2']) | 230 _CreateConfigFile(['product_dir_input.c'], ['all']) |
| 223 run_analyzer() | 231 run_analyzer() |
| 224 EnsureContains(matched=False) | 232 EnsureContains(matched=False) |
| 225 | 233 |
| 226 # Path specified via a variable. | 234 # Path specified via a variable. |
| 227 _CreateConfigFile(['subdir/subdir_source2.c'], ['all', 'exe2']) | 235 _CreateConfigFile(['subdir/subdir_source2.c'], ['all']) |
| 228 run_analyzer() | 236 run_analyzer() |
| 229 EnsureContains(matched=True, build_targets={'exe'}) | 237 EnsureContains(matched=True, compile_targets={'exe'}) |
| 230 | 238 |
| 231 # Verifies paths with // are fixed up correctly. | 239 # Verifies paths with // are fixed up correctly. |
| 232 _CreateConfigFile(['parent_source.c'], ['all', 'exe2']) | 240 _CreateConfigFile(['parent_source.c'], ['all']) |
| 233 run_analyzer() | 241 run_analyzer() |
| 234 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) | 242 EnsureContains(matched=True, compile_targets={'exe', 'exe3'}) |
| 235 | 243 |
| 236 # Verifies relative paths are resolved correctly. | 244 # Verifies relative paths are resolved correctly. |
| 237 _CreateConfigFile(['subdir/subdir_source.h'], ['all', 'exe2']) | 245 _CreateConfigFile(['subdir/subdir_source.h'], ['all']) |
| 238 run_analyzer() | 246 run_analyzer() |
| 239 EnsureContains(matched=True, build_targets={'exe'}) | 247 EnsureContains(matched=True, compile_targets={'exe'}) |
| 240 | 248 |
| 241 # Verifies relative paths in inputs are resolved correctly. | 249 # Verifies relative paths in inputs are resolved correctly. |
| 242 _CreateConfigFile(['rel_path1.h'], ['all', 'exe2']) | 250 _CreateConfigFile(['rel_path1.h'], ['all']) |
| 243 run_analyzer() | 251 run_analyzer() |
| 244 EnsureContains(matched=True, build_targets={'exe'}) | 252 EnsureContains(matched=True, compile_targets={'exe'}) |
| 245 | 253 |
| 246 # Various permutations when passing in targets. | 254 # Various permutations when passing in targets. |
| 247 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], | 255 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], |
| 248 ['exe', 'exe3', 'all', 'exe2']) | 256 ['all'], ['exe', 'exe3']) |
| 249 run_analyzer() | 257 run_analyzer() |
| 250 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 258 EnsureContains(matched=True, test_targets={'exe3'}, |
| 251 | 259 compile_targets={'exe2', 'exe3'}) |
| 252 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], | 260 |
| 253 ['exe', 'all', 'exe2']) | 261 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], ['all'], ['exe']) |
| 254 run_analyzer() | 262 run_analyzer() |
| 255 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 263 EnsureContains(matched=True, compile_targets={'exe2', 'exe3'}) |
| 256 | 264 |
| 257 # Verifies duplicates are ignored. | 265 # Verifies duplicates are ignored. |
| 258 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], | 266 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], ['all'], |
| 259 ['exe', 'exe', 'all', 'exe2']) | 267 ['exe', 'exe']) |
| 260 run_analyzer() | 268 run_analyzer() |
| 261 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 269 EnsureContains(matched=True, compile_targets={'exe2', 'exe3'}) |
| 262 | 270 |
| 263 _CreateConfigFile(['exe2.c'], ['exe', 'all', 'exe2']) | 271 _CreateConfigFile(['exe2.c'], ['all'], ['exe']) |
| 264 run_analyzer() | 272 run_analyzer() |
| 265 EnsureContains(matched=True, build_targets={'exe2'}) | 273 EnsureContains(matched=True, compile_targets={'exe2'}) |
| 266 | 274 |
| 267 _CreateConfigFile(['exe2.c'], ['all', 'exe2']) | 275 _CreateConfigFile(['exe2.c'], ['all']) |
| 268 run_analyzer() | 276 run_analyzer() |
| 269 EnsureContains(matched=True, build_targets={'exe2'}) | 277 EnsureContains(matched=True, compile_targets={'exe2'}) |
| 270 | 278 |
| 271 _CreateConfigFile(['subdir/subdir2b_source.c', 'exe2.c'], ['all', 'exe2']) | 279 _CreateConfigFile(['subdir/subdir2b_source.c', 'exe2.c'], ['all']) |
| 272 run_analyzer() | 280 run_analyzer() |
| 273 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 281 EnsureContains(matched=True, compile_targets={'exe2', 'exe3'}) |
| 274 | 282 |
| 275 _CreateConfigFile(['subdir/subdir2b_source.c'], ['exe3', 'all', 'exe2']) | 283 _CreateConfigFile(['subdir/subdir2b_source.c'], ['all'], ['exe3']) |
| 276 run_analyzer() | 284 run_analyzer() |
| 277 EnsureContains(matched=True, build_targets={'exe3'}) | 285 EnsureContains(matched=True, test_targets={'exe3'}, compile_targets={'exe3'}) |
| 278 | 286 |
| 279 _CreateConfigFile(['foo.c'], ['all', 'exe2']) | 287 _CreateConfigFile(['exe2.c'], ['all']) |
| 280 run_analyzer() | 288 run_analyzer() |
| 281 EnsureContains(matched=True, build_targets={'exe'}) | 289 EnsureContains(matched=True, compile_targets={'exe2'}) |
| 290 |
| 291 _CreateConfigFile(['foo.c'], ['all']) |
| 292 run_analyzer() |
| 293 EnsureContains(matched=True, compile_targets={'exe'}) |
| 282 | 294 |
| 283 # Assertions when modifying build (gyp/gypi) files, especially when said files | 295 # Assertions when modifying build (gyp/gypi) files, especially when said files |
| 284 # are included. | 296 # are included. |
| 285 _CreateConfigFile(['subdir2/d.cc'], ['exe', 'exe2', 'foo', 'exe3']) | 297 _CreateConfigFile(['subdir2/d.cc'], ['all'], ['exe', 'exe2', 'foo', 'exe3']) |
| 286 run_analyzer2() | 298 run_analyzer2() |
| 287 EnsureContains(matched=True, build_targets={'exe'}) | 299 EnsureContains(matched=True, test_targets={'exe', 'foo'}, |
| 288 | 300 compile_targets={'exe'}) |
| 289 _CreateConfigFile(['subdir2/subdir.includes.gypi'], | 301 |
| 302 _CreateConfigFile(['subdir2/subdir.includes.gypi'], ['all'], |
| 290 ['exe', 'exe2', 'foo', 'exe3']) | 303 ['exe', 'exe2', 'foo', 'exe3']) |
| 291 run_analyzer2() | 304 run_analyzer2() |
| 292 EnsureContains(matched=True, build_targets={'exe'}) | 305 EnsureContains(matched=True, test_targets={'exe', 'foo'}, |
| 293 | 306 compile_targets={'exe'}) |
| 294 _CreateConfigFile(['subdir2/subdir.gyp'], ['exe', 'exe2', 'foo', 'exe3']) | 307 |
| 295 run_analyzer2() | 308 _CreateConfigFile(['subdir2/subdir.gyp'], ['all'], |
| 296 EnsureContains(matched=True, build_targets={'exe'}) | 309 ['exe', 'exe2', 'foo', 'exe3']) |
| 297 | 310 run_analyzer2() |
| 298 _CreateConfigFile(['test2.includes.gypi'], ['exe', 'exe2', 'foo', 'exe3']) | 311 EnsureContains(matched=True, test_targets={'exe', 'foo'}, |
| 299 run_analyzer2() | 312 compile_targets={'exe'}) |
| 300 EnsureContains(matched=True, build_targets={'exe', 'exe2', 'exe3'}) | 313 |
| 314 _CreateConfigFile(['test2.includes.gypi'], ['all'], |
| 315 ['exe', 'exe2', 'foo', 'exe3']) |
| 316 run_analyzer2() |
| 317 EnsureContains(matched=True, test_targets={'exe', 'exe2', 'exe3'}, |
| 318 compile_targets={'exe', 'exe2', 'exe3'}) |
| 301 | 319 |
| 302 # Verify modifying a file included makes all targets dirty. | 320 # Verify modifying a file included makes all targets dirty. |
| 303 _CreateConfigFile(['common.gypi'], ['exe', 'exe2', 'foo', 'exe3']) | 321 _CreateConfigFile(['common.gypi'], ['all'], ['exe', 'exe2', 'foo', 'exe3']) |
| 304 run_analyzer2('-Icommon.gypi') | 322 run_analyzer2('-Icommon.gypi') |
| 305 EnsureMatchedAll({'exe', 'exe2', 'foo', 'exe3'}) | 323 EnsureMatchedAll({'all', 'exe', 'exe2', 'foo', 'exe3'}, |
| 324 {'exe', 'exe2', 'foo', 'exe3'}) |
| 306 | 325 |
| 307 # Assertions from test3.gyp. | 326 # Assertions from test3.gyp. |
| 308 _CreateConfigFile(['d.c', 'f.c'], ['a', 'all']) | 327 _CreateConfigFile(['d.c', 'f.c'], ['all'], ['a']) |
| 309 run_analyzer3() | 328 run_analyzer3() |
| 310 EnsureContains(matched=True, build_targets={'a', 'b'}) | 329 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a', 'b'}) |
| 311 | 330 |
| 312 _CreateConfigFile(['f.c'], ['a', 'all']) | 331 _CreateConfigFile(['f.c'], ['all'], ['a']) |
| 313 run_analyzer3() | 332 run_analyzer3() |
| 314 EnsureContains(matched=True, build_targets={'a', 'b'}) | 333 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a', 'b'}) |
| 315 | 334 |
| 316 _CreateConfigFile(['f.c'], ['all']) | 335 _CreateConfigFile(['f.c'], ['all']) |
| 317 run_analyzer3() | 336 run_analyzer3() |
| 318 EnsureContains(matched=True, build_targets={'a', 'b'}) | 337 EnsureContains(matched=True, compile_targets={'a', 'b'}) |
| 319 | 338 |
| 320 _CreateConfigFile(['c.c', 'e.c'], ['all']) | 339 _CreateConfigFile(['c.c', 'e.c'], ['all']) |
| 321 run_analyzer3() | 340 run_analyzer3() |
| 322 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'e'}) | 341 EnsureContains(matched=True, compile_targets={'a', 'b', 'c', 'e'}) |
| 323 | 342 |
| 324 _CreateConfigFile(['d.c'], ['a', 'all']) | 343 _CreateConfigFile(['d.c'], ['all'], ['a']) |
| 325 run_analyzer3() | 344 run_analyzer3() |
| 326 EnsureContains(matched=True, build_targets={'a', 'b'}) | 345 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a', 'b'}) |
| 327 | 346 |
| 328 _CreateConfigFile(['a.c'], ['a', 'b', 'all']) | 347 _CreateConfigFile(['a.c'], ['all'], ['a', 'b']) |
| 329 run_analyzer3() | 348 run_analyzer3() |
| 330 EnsureContains(matched=True, build_targets={'a'}) | 349 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a'}) |
| 331 | 350 |
| 332 _CreateConfigFile(['a.c'], ['a', 'b', 'all']) | 351 _CreateConfigFile(['a.c'], ['all'], ['a', 'b']) |
| 333 run_analyzer3() | 352 run_analyzer3() |
| 334 EnsureContains(matched=True, build_targets={'a'}) | 353 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a'}) |
| 335 | 354 |
| 336 _CreateConfigFile(['d.c'], ['a', 'b', 'all']) | 355 _CreateConfigFile(['d.c'], ['all'], ['a', 'b']) |
| 337 run_analyzer3() | 356 run_analyzer3() |
| 338 EnsureContains(matched=True, build_targets={'a', 'b'}) | 357 EnsureContains(matched=True, test_targets={'a', 'b'}, |
| 339 | 358 compile_targets={'a', 'b'}) |
| 340 _CreateConfigFile(['f.c'], ['a', 'all']) | 359 |
| 341 run_analyzer3() | 360 _CreateConfigFile(['f.c'], ['all'], ['a']) |
| 342 EnsureContains(matched=True, build_targets={'a', 'b'}) | 361 run_analyzer3() |
| 343 | 362 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a', 'b'}) |
| 344 _CreateConfigFile(['a.c'], ['a', 'all']) | 363 |
| 345 run_analyzer3() | 364 _CreateConfigFile(['a.c'], ['all'], ['a']) |
| 346 EnsureContains(matched=True, build_targets={'a'}) | 365 run_analyzer3() |
| 366 EnsureContains(matched=True, test_targets={'a'}, compile_targets={'a'}) |
| 347 | 367 |
| 348 _CreateConfigFile(['a.c'], ['all']) | 368 _CreateConfigFile(['a.c'], ['all']) |
| 349 run_analyzer3() | 369 run_analyzer3() |
| 350 EnsureContains(matched=True, build_targets={'a'}) | 370 EnsureContains(matched=True, compile_targets={'a'}) |
| 351 | 371 |
| 352 _CreateConfigFile(['d.c'], ['all']) | 372 _CreateConfigFile(['d.c'], ['all']) |
| 353 run_analyzer3() | 373 run_analyzer3() |
| 354 EnsureContains(matched=True, build_targets={'a', 'b'}) | 374 EnsureContains(matched=True, compile_targets={'a', 'b'}) |
| 355 | 375 |
| 356 # Assertions around test4.gyp. | 376 # Assertions around test4.gyp. |
| 357 _CreateConfigFile(['f.c'], ['a', 'e', 'h']) | 377 _CreateConfigFile(['f.c'], ['all']) |
| 358 run_analyzer4() | 378 run_analyzer4() |
| 359 EnsureContains(matched=True, build_targets={'e', 'f'}) | 379 EnsureContains(matched=True, compile_targets={'e', 'f'}) |
| 360 | 380 |
| 361 _CreateConfigFile(['d.c'], ['a', 'e', 'h']) | 381 _CreateConfigFile(['d.c'], ['all']) |
| 362 run_analyzer4() | 382 run_analyzer4() |
| 363 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'd'}) | 383 EnsureContains(matched=True, compile_targets={'a', 'b', 'c', 'd'}) |
| 364 | 384 |
| 365 _CreateConfigFile(['i.c'], ['a', 'e', 'h']) | 385 _CreateConfigFile(['i.c'], ['all']) |
| 366 run_analyzer4() | 386 run_analyzer4() |
| 367 EnsureContains(matched=True, build_targets={'h', 'i'}) | 387 EnsureContains(matched=True, compile_targets={'h', 'i'}) |
| 388 |
| 389 # Assertions where 'all' is not supplied in compile_targets. |
| 390 |
| 391 _CreateConfigFile(['exe2.c'], [], ['exe2']) |
| 392 run_analyzer() |
| 393 EnsureContains(matched=True, test_targets={'exe2'}, compile_targets={'exe2'}) |
| 394 |
| 395 _CreateConfigFile(['exe20.c'], [], ['exe2']) |
| 396 run_analyzer() |
| 397 EnsureContains(matched=False) |
| 398 |
| 399 |
| 400 _CreateConfigFile(['exe2.c', 'exe3.c'], [], ['exe2', 'exe3']) |
| 401 run_analyzer() |
| 402 EnsureContains(matched=True, test_targets={'exe2', 'exe3'}, |
| 403 compile_targets={'exe2', 'exe3'}) |
| 404 |
| 405 _CreateConfigFile(['exe2.c', 'exe3.c'], ['exe3'], ['exe2']) |
| 406 run_analyzer() |
| 407 EnsureContains(matched=True, test_targets={'exe2'}, |
| 408 compile_targets={'exe2', 'exe3'}) |
| 409 |
| 410 _CreateConfigFile(['exe3.c'], ['exe2'], ['exe2']) |
| 411 run_analyzer() |
| 412 EnsureContains(matched=False) |
| 413 |
| 414 # Assertions with 'all' listed as a test_target. |
| 415 _CreateConfigFile(['exe3.c'], [], ['all']) |
| 416 run_analyzer() |
| 417 EnsureContains(matched=True, compile_targets={'exe3'}, test_targets={'all'}) |
| 418 |
| 419 _CreateConfigFile(['exe2.c'], [], ['all', 'exe2']) |
| 420 run_analyzer() |
| 421 EnsureContains(matched=True, compile_targets={'exe2'}, |
| 422 test_targets={'all', 'exe2'}) |
| 368 | 423 |
| 369 test.pass_test() | 424 test.pass_test() |
| OLD | NEW |