blob: 7c38257582be57b59b2f6f1525e36d6dbf799c59 [file] [log] [blame]
#!/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 that when multiple values are supplied for a gyp define, the last one
is used.
"""
import os
import TestGyp
test = TestGyp.TestGyp()
os.environ['GYP_DEFINES'] = 'key=value1 key=value2 key=value3'
test.run_gyp('defines.gyp')
test.build('defines.gyp')
test.must_contain('action.txt', 'value3')
# The last occurrence of a repeated set should take precedence over other
# values.
os.environ['GYP_DEFINES'] = 'key=repeated_value key=value1 key=repeated_value'
test.run_gyp('defines.gyp')
if test.format == 'msvs' and not test.uses_msbuild:
# msvs versions before 2010 don't detect build rule changes not reflected
# in file system timestamps. Rebuild to see differences.
test.build('defines.gyp', rebuild=True)
elif test.format == 'android':
# The Android build system doesn't currently have a way to get files whose
# build rules have changed (but whose timestamps haven't) to be rebuilt.
# See bug http://code.google.com/p/gyp/issues/detail?id=308
test.unlink('action.txt')
test.build('defines.gyp')
else:
test.build('defines.gyp')
test.must_contain('action.txt', 'repeated_value')
test.pass_test()