mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2010 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 build of an executable with C++ define specified by a gyp define, and
|
|
the use of the environment during regeneration when the gyp file changes.
|
|
"""
|
|
|
|
import os
|
|
import TestGyp
|
|
|
|
env_stack = []
|
|
|
|
|
|
def PushEnv():
|
|
env_copy = os.environ.copy()
|
|
env_stack.append(env_copy)
|
|
|
|
def PopEnv():
|
|
os.eniron=env_stack.pop()
|
|
|
|
# Regenerating build files when a gyp file changes is currently only supported
|
|
# by the make generator.
|
|
test = TestGyp.TestGyp(formats=['make'])
|
|
|
|
try:
|
|
PushEnv()
|
|
os.environ['CFLAGS'] = '-O0'
|
|
test.run_gyp('cflags.gyp')
|
|
finally:
|
|
# We clear the environ after calling gyp. When the auto-regeneration happens,
|
|
# the same define should be reused anyway. Reset to empty string first in
|
|
# case the platform doesn't support unsetenv.
|
|
PopEnv()
|
|
|
|
test.build('cflags.gyp')
|
|
|
|
expect = """\
|
|
Using no optimization flag
|
|
"""
|
|
test.run_built_executable('cflags', stdout=expect)
|
|
|
|
test.sleep()
|
|
|
|
try:
|
|
PushEnv()
|
|
os.environ['CFLAGS'] = '-O2'
|
|
test.run_gyp('cflags.gyp')
|
|
finally:
|
|
# We clear the environ after calling gyp. When the auto-regeneration happens,
|
|
# the same define should be reused anyway. Reset to empty string first in
|
|
# case the platform doesn't support unsetenv.
|
|
PopEnv()
|
|
|
|
test.build('cflags.gyp')
|
|
|
|
expect = """\
|
|
Using an optimization flag
|
|
"""
|
|
test.run_built_executable('cflags', stdout=expect)
|
|
|
|
test.pass_test()
|
|
|