Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
1 #!/usr/bin/env python
3 # Copyright (c) 2012 Google Inc. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
7 """
8 Verifies build of an executable with C++ define specified by a gyp define, and
9 the use of the environment during regeneration when the gyp file changes.
10 """
12 import os
13 import TestGyp
15 env_stack = []
18 def PushEnv():
19 env_copy = os.environ.copy()
20 env_stack.append(env_copy)
22 def PopEnv():
23 os.eniron=env_stack.pop()
25 # Regenerating build files when a gyp file changes is currently only supported
26 # by the make and Android generators.
27 test = TestGyp.TestGyp(formats=['make', 'android'])
29 try:
30 PushEnv()
31 os.environ['CXXFLAGS'] = '-O0'
32 test.run_gyp('cxxflags.gyp')
33 finally:
34 # We clear the environ after calling gyp. When the auto-regeneration happens,
35 # the same define should be reused anyway. Reset to empty string first in
36 # case the platform doesn't support unsetenv.
37 PopEnv()
39 test.build('cxxflags.gyp')
41 expect = """\
42 Using no optimization flag
43 """
44 test.run_built_executable('cxxflags', stdout=expect)
46 test.sleep()
48 try:
49 PushEnv()
50 os.environ['CXXFLAGS'] = '-O2'
51 test.run_gyp('cxxflags.gyp')
52 finally:
53 # We clear the environ after calling gyp. When the auto-regeneration happens,
54 # the same define should be reused anyway. Reset to empty string first in
55 # case the platform doesn't support unsetenv.
56 PopEnv()
58 test.build('cxxflags.gyp')
60 expect = """\
61 Using an optimization flag
62 """
63 test.run_built_executable('cxxflags', stdout=expect)
65 test.pass_test()