initial import
[vuplus_webkit] / Source / ThirdParty / gyp / test / cflags / gyptest-cflags.py
1 #!/usr/bin/env python
2
3 # Copyright (c) 2010 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.
6
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 """
11
12 import os
13 import TestGyp
14
15 env_stack = []
16
17
18 def PushEnv():
19   env_copy = os.environ.copy()
20   env_stack.append(env_copy)
21
22 def PopEnv():
23   os.eniron=env_stack.pop()
24
25 # Regenerating build files when a gyp file changes is currently only supported
26 # by the make generator.
27 test = TestGyp.TestGyp(formats=['make'])
28
29 try:
30   PushEnv()
31   os.environ['CFLAGS'] = '-O0'
32   test.run_gyp('cflags.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()
38
39 test.build('cflags.gyp')
40
41 expect = """\
42 Using no optimization flag
43 """
44 test.run_built_executable('cflags', stdout=expect)
45
46 test.sleep()
47
48 try:
49   PushEnv()
50   os.environ['CFLAGS'] = '-O2'
51   test.run_gyp('cflags.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()
57
58 test.build('cflags.gyp')
59
60 expect = """\
61 Using an optimization flag
62 """
63 test.run_built_executable('cflags', stdout=expect)
64
65 test.pass_test()