| 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 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 args += CommonArgs() | 62 args += CommonArgs() |
| 63 test.run_gyp('test3.gyp', *args, **kw) | 63 test.run_gyp('test3.gyp', *args, **kw) |
| 64 | 64 |
| 65 | 65 |
| 66 def run_analyzer4(*args, **kw): | 66 def run_analyzer4(*args, **kw): |
| 67 """Same as run_analyzer(), but passes in test3.gyp instead of test.gyp.""" | 67 """Same as run_analyzer(), but passes in test3.gyp instead of test.gyp.""" |
| 68 args += CommonArgs() | 68 args += CommonArgs() |
| 69 test.run_gyp('test4.gyp', *args, **kw) | 69 test.run_gyp('test4.gyp', *args, **kw) |
| 70 | 70 |
| 71 | 71 |
| 72 def EnsureContains(targets=set(), matched=False, build_targets=set()): | 72 def EnsureContains(matched=False, build_targets=set()): |
| 73 """Verifies output contains |targets|.""" | 73 """Verifies output contains |build_targets|.""" |
| 74 result = _ReadOutputFileContents() | 74 result = _ReadOutputFileContents() |
| 75 if result.get('error', None): | 75 if result.get('error', None): |
| 76 print 'unexpected error', result.get('error') | 76 print 'unexpected error', result.get('error') |
| 77 test.fail_test() | 77 test.fail_test() |
| 78 | 78 |
| 79 if result.get('invalid_targets', None): | 79 if result.get('invalid_targets', None): |
| 80 print 'unexpected invalid_targets', result.get('invalid_targets') | 80 print 'unexpected invalid_targets', result.get('invalid_targets') |
| 81 test.fail_test() | 81 test.fail_test() |
| 82 | 82 |
| 83 # TODO(sky): nuke when get rid of targets. |
| 84 targets = build_targets |
| 83 actual_targets = set(result['targets']) | 85 actual_targets = set(result['targets']) |
| 84 if actual_targets != targets: | 86 if actual_targets != targets: |
| 85 print 'actual targets:', actual_targets, '\nexpected targets:', targets | 87 print 'actual targets:', actual_targets, '\nexpected targets:', targets |
| 86 test.fail_test() | 88 test.fail_test() |
| 87 | 89 |
| 88 actual_build_targets = set(result['build_targets']) | 90 actual_build_targets = set(result['build_targets']) |
| 89 if actual_build_targets != build_targets: | 91 if actual_build_targets != build_targets: |
| 90 print 'actual build_targets:', actual_build_targets, \ | 92 print 'actual build_targets:', actual_build_targets, \ |
| 91 '\nexpected build_targets:', build_targets | 93 '\nexpected build_targets:', build_targets |
| 92 test.fail_test() | 94 test.fail_test() |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 actual_invalid_targets = set(result['invalid_targets']) | 143 actual_invalid_targets = set(result['invalid_targets']) |
| 142 if actual_invalid_targets != expected_invalid_targets: | 144 if actual_invalid_targets != expected_invalid_targets: |
| 143 print 'actual invalid_targets:', actual_invalid_targets, \ | 145 print 'actual invalid_targets:', actual_invalid_targets, \ |
| 144 '\nexpected :', expected_invalid_targets | 146 '\nexpected :', expected_invalid_targets |
| 145 test.fail_test() | 147 test.fail_test() |
| 146 | 148 |
| 147 | 149 |
| 148 # Two targets, A and B (both static_libraries) and A depends upon B. If a file | 150 # Two targets, A and B (both static_libraries) and A depends upon B. If a file |
| 149 # in B changes, then both A and B are output. It is not strictly necessary that | 151 # in B changes, then both A and B are output. It is not strictly necessary that |
| 150 # A is compiled in this case, only B. | 152 # A is compiled in this case, only B. |
| 151 _CreateConfigFile(['b.c'], []) | 153 _CreateConfigFile(['b.c'], ['a']) |
| 152 test.run_gyp('static_library_test.gyp', *CommonArgs()) | 154 test.run_gyp('static_library_test.gyp', *CommonArgs()) |
| 153 EnsureContains(matched=True, build_targets={'a' ,'b'}) | 155 EnsureContains(matched=True, build_targets={'a' ,'b'}) |
| 154 | 156 |
| 155 # Verifies config_path must be specified. | 157 # Verifies config_path must be specified. |
| 156 test.run_gyp('test.gyp') | 158 test.run_gyp('test.gyp') |
| 157 EnsureStdoutContains('Must specify files to analyze via config_path') | 159 EnsureStdoutContains('Must specify files to analyze via config_path') |
| 158 | 160 |
| 159 # Verifies config_path must point to a valid file. | 161 # Verifies config_path must point to a valid file. |
| 160 test.run_gyp('test.gyp', '-Gconfig_path=bogus_file', | 162 test.run_gyp('test.gyp', '-Gconfig_path=bogus_file', |
| 161 '-Ganalyzer_output_path=analyzer_output') | 163 '-Ganalyzer_output_path=analyzer_output') |
| 162 EnsureError('Unable to open file bogus_file') | 164 EnsureError('Unable to open file bogus_file') |
| 163 | 165 |
| 164 # Verify 'invalid_targets' is present when bad target is specified. | 166 # Verify 'invalid_targets' is present when bad target is specified. |
| 165 _CreateConfigFile(['exe2.c'], ['bad_target']) | 167 _CreateConfigFile(['exe2.c'], ['bad_target', 'all', 'exe2']) |
| 166 run_analyzer() | 168 run_analyzer() |
| 167 EnsureInvalidTargets({'bad_target'}) | 169 EnsureInvalidTargets({'bad_target'}) |
| 168 | 170 |
| 169 # Verifies config_path must point to a valid json file. | 171 # Verifies config_path must point to a valid json file. |
| 170 _CreateBogusConfigFile() | 172 _CreateBogusConfigFile() |
| 171 run_analyzer() | 173 run_analyzer() |
| 172 EnsureError('Unable to parse config file test_file') | 174 EnsureError('Unable to parse config file test_file') |
| 173 | 175 |
| 174 # Trivial test of a source. | 176 # Trivial test of a source. |
| 175 _CreateConfigFile(['foo.c'], []) | 177 _CreateConfigFile(['foo.c'], ['all', 'exe2']) |
| 176 run_analyzer() | 178 run_analyzer() |
| 177 EnsureContains(matched=True, build_targets={'exe'}) | 179 EnsureContains(matched=True, build_targets={'exe'}) |
| 178 | 180 |
| 179 # Conditional source that is excluded. | 181 # Conditional source that is excluded. |
| 180 _CreateConfigFile(['conditional_source.c'], []) | 182 _CreateConfigFile(['conditional_source.c'], ['all', 'exe2']) |
| 181 run_analyzer() | 183 run_analyzer() |
| 182 EnsureContains(matched=False) | 184 EnsureContains(matched=False) |
| 183 | 185 |
| 184 # Conditional source that is included by way of argument. | 186 # Conditional source that is included by way of argument. |
| 185 _CreateConfigFile(['conditional_source.c'], []) | 187 _CreateConfigFile(['conditional_source.c'], ['all', 'exe2']) |
| 186 run_analyzer('-Dtest_variable=1') | 188 run_analyzer('-Dtest_variable=1') |
| 187 EnsureContains(matched=True, build_targets={'exe'}) | 189 EnsureContains(matched=True, build_targets={'exe'}) |
| 188 | 190 |
| 189 # Two unknown files. | 191 # Two unknown files. |
| 190 _CreateConfigFile(['unknown1.c', 'unoknow2.cc'], []) | 192 _CreateConfigFile(['unknown1.c', 'unoknow2.cc'], ['all', 'exe2']) |
| 191 run_analyzer() | 193 run_analyzer() |
| 192 EnsureContains() | 194 EnsureContains() |
| 193 | 195 |
| 194 # Two unknown files. | 196 # Two unknown files. |
| 195 _CreateConfigFile(['unknown1.c', 'subdir/subdir_sourcex.c'], []) | 197 _CreateConfigFile(['unknown1.c', 'subdir/subdir_sourcex.c'], ['all', 'exe2']) |
| 196 run_analyzer() | 198 run_analyzer() |
| 197 EnsureContains() | 199 EnsureContains() |
| 198 | 200 |
| 199 # Included dependency | 201 # Included dependency |
| 200 _CreateConfigFile(['unknown1.c', 'subdir/subdir_source.c'], []) | 202 _CreateConfigFile(['unknown1.c', 'subdir/subdir_source.c'], ['all', 'exe2']) |
| 201 run_analyzer() | 203 run_analyzer() |
| 202 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) | 204 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) |
| 203 | 205 |
| 204 # Included inputs to actions. | 206 # Included inputs to actions. |
| 205 _CreateConfigFile(['action_input.c'], []) | 207 _CreateConfigFile(['action_input.c'], ['all', 'exe2']) |
| 206 run_analyzer() | 208 run_analyzer() |
| 207 EnsureContains(matched=True, build_targets={'exe'}) | 209 EnsureContains(matched=True, build_targets={'exe'}) |
| 208 | 210 |
| 209 # Don't consider outputs. | 211 # Don't consider outputs. |
| 210 _CreateConfigFile(['action_output.c'], []) | 212 _CreateConfigFile(['action_output.c'], ['all', 'exe2']) |
| 211 run_analyzer() | 213 run_analyzer() |
| 212 EnsureContains(matched=False) | 214 EnsureContains(matched=False) |
| 213 | 215 |
| 214 # Rule inputs. | 216 # Rule inputs. |
| 215 _CreateConfigFile(['rule_input.c'], []) | 217 _CreateConfigFile(['rule_input.c'], ['all', 'exe2']) |
| 216 run_analyzer() | 218 run_analyzer() |
| 217 EnsureContains(matched=True, build_targets={'exe'}) | 219 EnsureContains(matched=True, build_targets={'exe'}) |
| 218 | 220 |
| 219 # Ignore path specified with PRODUCT_DIR. | 221 # Ignore path specified with PRODUCT_DIR. |
| 220 _CreateConfigFile(['product_dir_input.c'], []) | 222 _CreateConfigFile(['product_dir_input.c'], ['all', 'exe2']) |
| 221 run_analyzer() | 223 run_analyzer() |
| 222 EnsureContains(matched=False) | 224 EnsureContains(matched=False) |
| 223 | 225 |
| 224 # Path specified via a variable. | 226 # Path specified via a variable. |
| 225 _CreateConfigFile(['subdir/subdir_source2.c'], []) | 227 _CreateConfigFile(['subdir/subdir_source2.c'], ['all', 'exe2']) |
| 226 run_analyzer() | 228 run_analyzer() |
| 227 EnsureContains(matched=True, build_targets={'exe'}) | 229 EnsureContains(matched=True, build_targets={'exe'}) |
| 228 | 230 |
| 229 # Verifies paths with // are fixed up correctly. | 231 # Verifies paths with // are fixed up correctly. |
| 230 _CreateConfigFile(['parent_source.c'], []) | 232 _CreateConfigFile(['parent_source.c'], ['all', 'exe2']) |
| 231 run_analyzer() | 233 run_analyzer() |
| 232 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) | 234 EnsureContains(matched=True, build_targets={'exe', 'exe3'}) |
| 233 | 235 |
| 234 # Verifies relative paths are resolved correctly. | 236 # Verifies relative paths are resolved correctly. |
| 235 _CreateConfigFile(['subdir/subdir_source.h'], []) | 237 _CreateConfigFile(['subdir/subdir_source.h'], ['all', 'exe2']) |
| 236 run_analyzer() | 238 run_analyzer() |
| 237 EnsureContains(matched=True, build_targets={'exe'}) | 239 EnsureContains(matched=True, build_targets={'exe'}) |
| 238 | 240 |
| 239 # Verifies relative paths in inputs are resolved correctly. | 241 # Verifies relative paths in inputs are resolved correctly. |
| 240 _CreateConfigFile(['rel_path1.h'], []) | 242 _CreateConfigFile(['rel_path1.h'], ['all', 'exe2']) |
| 241 run_analyzer() | 243 run_analyzer() |
| 242 EnsureContains(matched=True, build_targets={'exe'}) | 244 EnsureContains(matched=True, build_targets={'exe'}) |
| 243 | 245 |
| 244 # Various permutations when passing in targets. | 246 # Various permutations when passing in targets. |
| 245 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], ['exe', 'exe3']) | 247 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], |
| 248 ['exe', 'exe3', 'all', 'exe2']) |
| 246 run_analyzer() | 249 run_analyzer() |
| 247 EnsureContains(matched=True, targets={'exe3'}, build_targets={'exe2', 'exe3'}) | 250 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) |
| 248 | 251 |
| 249 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], ['exe']) | 252 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], |
| 253 ['exe', 'all', 'exe2']) |
| 250 run_analyzer() | 254 run_analyzer() |
| 251 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 255 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) |
| 252 | 256 |
| 253 # Verifies duplicates are ignored. | 257 # Verifies duplicates are ignored. |
| 254 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], ['exe', 'exe']) | 258 _CreateConfigFile(['exe2.c', 'subdir/subdir2b_source.c'], |
| 259 ['exe', 'exe', 'all', 'exe2']) |
| 255 run_analyzer() | 260 run_analyzer() |
| 256 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 261 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) |
| 257 | 262 |
| 258 _CreateConfigFile(['exe2.c'], ['exe']) | 263 _CreateConfigFile(['exe2.c'], ['exe', 'all', 'exe2']) |
| 259 run_analyzer() | 264 run_analyzer() |
| 260 EnsureContains(matched=True, build_targets={'exe2'}) | 265 EnsureContains(matched=True, build_targets={'exe2'}) |
| 261 | 266 |
| 262 _CreateConfigFile(['exe2.c'], []) | 267 _CreateConfigFile(['exe2.c'], ['all', 'exe2']) |
| 263 run_analyzer() | 268 run_analyzer() |
| 264 EnsureContains(matched=True, build_targets={'exe2'}) | 269 EnsureContains(matched=True, build_targets={'exe2'}) |
| 265 | 270 |
| 266 _CreateConfigFile(['subdir/subdir2b_source.c', 'exe2.c'], []) | 271 _CreateConfigFile(['subdir/subdir2b_source.c', 'exe2.c'], ['all', 'exe2']) |
| 267 run_analyzer() | 272 run_analyzer() |
| 268 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) | 273 EnsureContains(matched=True, build_targets={'exe2', 'exe3'}) |
| 269 | 274 |
| 270 _CreateConfigFile(['subdir/subdir2b_source.c'], ['exe3']) | 275 _CreateConfigFile(['subdir/subdir2b_source.c'], ['exe3', 'all', 'exe2']) |
| 271 run_analyzer() | 276 run_analyzer() |
| 272 EnsureContains(matched=True, targets={'exe3'}, build_targets={'exe3'}) | 277 EnsureContains(matched=True, build_targets={'exe3'}) |
| 273 | 278 |
| 274 _CreateConfigFile(['exe2.c'], []) | 279 _CreateConfigFile(['foo.c'], ['all', 'exe2']) |
| 275 run_analyzer() | |
| 276 EnsureContains(matched=True, build_targets={'exe2'}) | |
| 277 | |
| 278 _CreateConfigFile(['foo.c'], []) | |
| 279 run_analyzer() | 280 run_analyzer() |
| 280 EnsureContains(matched=True, build_targets={'exe'}) | 281 EnsureContains(matched=True, build_targets={'exe'}) |
| 281 | 282 |
| 282 # Assertions when modifying build (gyp/gypi) files, especially when said files | 283 # Assertions when modifying build (gyp/gypi) files, especially when said files |
| 283 # are included. | 284 # are included. |
| 284 _CreateConfigFile(['subdir2/d.cc'], ['exe', 'exe2', 'foo', 'exe3']) | 285 _CreateConfigFile(['subdir2/d.cc'], ['exe', 'exe2', 'foo', 'exe3']) |
| 285 run_analyzer2() | 286 run_analyzer2() |
| 286 EnsureContains(matched=True, targets={'exe', 'foo'}, build_targets={'exe'}) | 287 EnsureContains(matched=True, build_targets={'exe'}) |
| 287 | 288 |
| 288 _CreateConfigFile(['subdir2/subdir.includes.gypi'], | 289 _CreateConfigFile(['subdir2/subdir.includes.gypi'], |
| 289 ['exe', 'exe2', 'foo', 'exe3']) | 290 ['exe', 'exe2', 'foo', 'exe3']) |
| 290 run_analyzer2() | 291 run_analyzer2() |
| 291 EnsureContains(matched=True, targets={'exe', 'foo'}, build_targets={'exe'}) | 292 EnsureContains(matched=True, build_targets={'exe'}) |
| 292 | 293 |
| 293 _CreateConfigFile(['subdir2/subdir.gyp'], ['exe', 'exe2', 'foo', 'exe3']) | 294 _CreateConfigFile(['subdir2/subdir.gyp'], ['exe', 'exe2', 'foo', 'exe3']) |
| 294 run_analyzer2() | 295 run_analyzer2() |
| 295 EnsureContains(matched=True, targets={'exe', 'foo'}, build_targets={'exe'}) | 296 EnsureContains(matched=True, build_targets={'exe'}) |
| 296 | 297 |
| 297 _CreateConfigFile(['test2.includes.gypi'], ['exe', 'exe2', 'foo', 'exe3']) | 298 _CreateConfigFile(['test2.includes.gypi'], ['exe', 'exe2', 'foo', 'exe3']) |
| 298 run_analyzer2() | 299 run_analyzer2() |
| 299 EnsureContains(matched=True, targets={'exe', 'exe2', 'exe3'}, | 300 EnsureContains(matched=True, build_targets={'exe', 'exe2', 'exe3'}) |
| 300 build_targets={'exe', 'exe2', 'exe3'}) | |
| 301 | 301 |
| 302 # Verify modifying a file included makes all targets dirty. | 302 # Verify modifying a file included makes all targets dirty. |
| 303 _CreateConfigFile(['common.gypi'], ['exe', 'exe2', 'foo', 'exe3']) | 303 _CreateConfigFile(['common.gypi'], ['exe', 'exe2', 'foo', 'exe3']) |
| 304 run_analyzer2('-Icommon.gypi') | 304 run_analyzer2('-Icommon.gypi') |
| 305 EnsureMatchedAll({'exe', 'exe2', 'foo', 'exe3'}) | 305 EnsureMatchedAll({'exe', 'exe2', 'foo', 'exe3'}) |
| 306 | 306 |
| 307 # Assertions from test3.gyp. | 307 # Assertions from test3.gyp. |
| 308 _CreateConfigFile(['d.c', 'f.c'], ['a']) | 308 _CreateConfigFile(['d.c', 'f.c'], ['a', 'all']) |
| 309 run_analyzer3() | |
| 310 EnsureContains(matched=True, targets={'a'}, build_targets={'a', 'b'}) | |
| 311 | |
| 312 _CreateConfigFile(['f.c'], ['a']) | |
| 313 run_analyzer3() | |
| 314 EnsureContains(matched=True, targets={'a'}, build_targets={'a', 'b'}) | |
| 315 | |
| 316 _CreateConfigFile(['f.c'], []) | |
| 317 run_analyzer3() | 309 run_analyzer3() |
| 318 EnsureContains(matched=True, build_targets={'a', 'b'}) | 310 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 319 | 311 |
| 320 _CreateConfigFile(['c.c', 'e.c'], []) | 312 _CreateConfigFile(['f.c'], ['a', 'all']) |
| 313 run_analyzer3() |
| 314 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 315 |
| 316 _CreateConfigFile(['f.c'], ['all']) |
| 317 run_analyzer3() |
| 318 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 319 |
| 320 _CreateConfigFile(['c.c', 'e.c'], ['all']) |
| 321 run_analyzer3() | 321 run_analyzer3() |
| 322 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'e'}) | 322 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'e'}) |
| 323 | 323 |
| 324 _CreateConfigFile(['d.c'], ['a']) | 324 _CreateConfigFile(['d.c'], ['a', 'all']) |
| 325 run_analyzer3() | 325 run_analyzer3() |
| 326 EnsureContains(matched=True, targets={'a'}, build_targets={'a', 'b'}) | 326 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 327 | 327 |
| 328 _CreateConfigFile(['a.c'], ['a', 'b']) | 328 _CreateConfigFile(['a.c'], ['a', 'b', 'all']) |
| 329 run_analyzer3() | |
| 330 EnsureContains(matched=True, targets={'a'}, build_targets={'a'}) | |
| 331 | |
| 332 _CreateConfigFile(['a.c'], ['a', 'b']) | |
| 333 run_analyzer3() | |
| 334 EnsureContains(matched=True, targets={'a'}, build_targets={'a'}) | |
| 335 | |
| 336 _CreateConfigFile(['d.c'], ['a', 'b']) | |
| 337 run_analyzer3() | |
| 338 EnsureContains(matched=True, targets={'a', 'b'}, build_targets={'a', 'b'}) | |
| 339 | |
| 340 _CreateConfigFile(['f.c'], ['a']) | |
| 341 run_analyzer3() | |
| 342 EnsureContains(matched=True, targets={'a'}, build_targets={'a', 'b'}) | |
| 343 | |
| 344 _CreateConfigFile(['a.c'], ['a']) | |
| 345 run_analyzer3() | |
| 346 EnsureContains(matched=True, targets={'a'}, build_targets={'a'}) | |
| 347 | |
| 348 _CreateConfigFile(['a.c'], []) | |
| 349 run_analyzer3() | 329 run_analyzer3() |
| 350 EnsureContains(matched=True, build_targets={'a'}) | 330 EnsureContains(matched=True, build_targets={'a'}) |
| 351 | 331 |
| 352 _CreateConfigFile(['d.c'], []) | 332 _CreateConfigFile(['a.c'], ['a', 'b', 'all']) |
| 333 run_analyzer3() |
| 334 EnsureContains(matched=True, build_targets={'a'}) |
| 335 |
| 336 _CreateConfigFile(['d.c'], ['a', 'b', 'all']) |
| 337 run_analyzer3() |
| 338 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 339 |
| 340 _CreateConfigFile(['f.c'], ['a', 'all']) |
| 341 run_analyzer3() |
| 342 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 343 |
| 344 _CreateConfigFile(['a.c'], ['a', 'all']) |
| 345 run_analyzer3() |
| 346 EnsureContains(matched=True, build_targets={'a'}) |
| 347 |
| 348 _CreateConfigFile(['a.c'], ['all']) |
| 349 run_analyzer3() |
| 350 EnsureContains(matched=True, build_targets={'a'}) |
| 351 |
| 352 _CreateConfigFile(['d.c'], ['all']) |
| 353 run_analyzer3() | 353 run_analyzer3() |
| 354 EnsureContains(matched=True, build_targets={'a', 'b'}) | 354 EnsureContains(matched=True, build_targets={'a', 'b'}) |
| 355 | 355 |
| 356 # Assertions around test4.gyp. | 356 # Assertions around test4.gyp. |
| 357 _CreateConfigFile(['f.c'], []) | 357 _CreateConfigFile(['f.c'], ['a', 'e', 'h']) |
| 358 run_analyzer4() | 358 run_analyzer4() |
| 359 EnsureContains(matched=True, build_targets={'e', 'f'}) | 359 EnsureContains(matched=True, build_targets={'e', 'f'}) |
| 360 | 360 |
| 361 _CreateConfigFile(['d.c'], []) | 361 _CreateConfigFile(['d.c'], ['a', 'e', 'h']) |
| 362 run_analyzer4() | 362 run_analyzer4() |
| 363 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'd'}) | 363 EnsureContains(matched=True, build_targets={'a', 'b', 'c', 'd'}) |
| 364 | 364 |
| 365 _CreateConfigFile(['i.c'], []) | 365 _CreateConfigFile(['i.c'], ['a', 'e', 'h']) |
| 366 run_analyzer4() | 366 run_analyzer4() |
| 367 EnsureContains(matched=True, build_targets={'h', 'i'}) | 367 EnsureContains(matched=True, build_targets={'h', 'i'}) |
| 368 | 368 |
| 369 test.pass_test() | 369 test.pass_test() |
| OLD | NEW |