| #!/usr/bin/env python |
| # Copyright (c) 2014 Google Inc. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Tests for analyzer |
| """ |
| |
| import TestGyp |
| |
| found = 'Found dependency\n' |
| not_found = 'No dependencies\n' |
| |
| def __CreateTestFile(files): |
| f = open('test_file', 'w') |
| for file in files: |
| f.write(file + '\n') |
| f.close() |
| |
| test = TestGyp.TestGypCustom(format='analyzer') |
| |
| # Verifies file_path must be specified. |
| test.run_gyp('test.gyp', |
| stdout='Must specify files to analyze via file_path generator ' |
| 'flag\n') |
| |
| # Trivial test of a source. |
| __CreateTestFile(['foo.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| # Conditional source that is excluded. |
| __CreateTestFile(['conditional_source.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=not_found) |
| |
| # Conditional source that is included by way of argument. |
| __CreateTestFile(['conditional_source.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', '-Dtest_variable=1', |
| stdout=found) |
| |
| # Two unknown files. |
| __CreateTestFile(['unknown1.c', 'unoknow2.cc']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=not_found) |
| |
| # Two unknown files. |
| __CreateTestFile(['unknown1.c', 'subdir/subdir_sourcex.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=not_found) |
| |
| # Included dependency |
| __CreateTestFile(['unknown1.c', 'subdir/subdir_source.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| # Included inputs to actions. |
| __CreateTestFile(['action_input.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| # Don't consider outputs. |
| __CreateTestFile(['action_output.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=not_found) |
| |
| # Rule inputs. |
| __CreateTestFile(['rule_input.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| # Ignore patch specified with PRODUCT_DIR. |
| __CreateTestFile(['product_dir_input.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=not_found) |
| |
| # Path specified via a variable. |
| __CreateTestFile(['subdir/subdir_source2.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| # Verifies paths with // are fixed up correctly. |
| __CreateTestFile(['parent_source.c']) |
| test.run_gyp('test.gyp', '-Gfile_path=test_file', stdout=found) |
| |
| test.pass_test() |