| #!/usr/bin/env python |
| |
| # Copyright (c) 2012 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. |
| |
| """ |
| Verifies the use of the environment during regeneration when the gyp file |
| changes, specifically via build of an executable with C preprocessor |
| definition specified by CFLAGS. |
| |
| In this test, gyp and build both run in same local environment. |
| """ |
| |
| import TestGyp |
| |
| # CPPFLAGS works in ninja but not make; CFLAGS works in both |
| FORMATS = ('make', 'ninja') |
| |
| test = TestGyp.TestGyp(formats=FORMATS) |
| |
| # First set CFLAGS to blank in case the platform doesn't support unsetenv. |
| with TestGyp.LocalEnv({'CFLAGS': '', |
| 'GYP_CROSSCOMPILE': '1'}): |
| test.run_gyp('cflags.gyp') |
| test.build('cflags.gyp') |
| |
| expect = """FOO not defined\n""" |
| test.run_built_executable('cflags', stdout=expect) |
| test.run_built_executable('cflags_host', stdout=expect) |
| |
| test.sleep() |
| |
| with TestGyp.LocalEnv({'CFLAGS': '-DFOO=1', |
| 'GYP_CROSSCOMPILE': '1'}): |
| test.run_gyp('cflags.gyp') |
| test.build('cflags.gyp') |
| |
| expect = """FOO defined\n""" |
| test.run_built_executable('cflags', stdout=expect) |
| |
| # Environment variables shouldn't influence the flags for the host. |
| expect = """FOO not defined\n""" |
| test.run_built_executable('cflags_host', stdout=expect) |
| |
| test.sleep() |
| |
| with TestGyp.LocalEnv({'CFLAGS': ''}): |
| test.run_gyp('cflags.gyp') |
| test.build('cflags.gyp') |
| |
| expect = """FOO not defined\n""" |
| test.run_built_executable('cflags', stdout=expect) |
| |
| test.sleep() |
| |
| with TestGyp.LocalEnv({'CFLAGS': '-DFOO=1'}): |
| test.run_gyp('cflags.gyp') |
| test.build('cflags.gyp') |
| |
| expect = """FOO defined\n""" |
| test.run_built_executable('cflags', stdout=expect) |
| |
| test.pass_test() |