12345678910111213141516171819202122232425262728293031323334353637383940 |
- #!/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()
|