media/webrtc/trunk/tools/gyp/test/cxxflags/gyptest-cxxflags.py

branch
TOR_BUG_9701
changeset 14
925c144e1f1f
equal deleted inserted replaced
-1:000000000000 0:8580cd6da1ee
1 #!/usr/bin/env python
2
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.
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 and Android generators.
27 test = TestGyp.TestGyp(formats=['make', 'android'])
28
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()
38
39 test.build('cxxflags.gyp')
40
41 expect = """\
42 Using no optimization flag
43 """
44 test.run_built_executable('cxxflags', stdout=expect)
45
46 test.sleep()
47
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()
57
58 test.build('cxxflags.gyp')
59
60 expect = """\
61 Using an optimization flag
62 """
63 test.run_built_executable('cxxflags', stdout=expect)
64
65 test.pass_test()

mercurial