Home | History | Annotate | Download | only in defines
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2011 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++ defines.
      9 """
     10 
     11 import TestGyp
     12 
     13 test = TestGyp.TestGyp()
     14 
     15 test.run_gyp('defines.gyp')
     16 
     17 expect = """\
     18 FOO is defined
     19 VALUE is 1
     20 2*PAREN_VALUE is 12
     21 """
     22 
     23 #CMake loudly warns about passing '#' to the compiler and drops the define.
     24 expect_stderr = ''
     25 if test.format == 'cmake':
     26   expect_stderr = (
     27 """WARNING: Preprocessor definitions containing '#' may not be passed on the"""
     28 """ compiler command line because many compilers do not support it.\n"""
     29 """CMake is dropping a preprocessor definition: HASH_VALUE="a#1"\n"""
     30 """Consider defining the macro in a (configured) header file.\n\n""")
     31 else:
     32   expect += """HASH_VALUE is a#1
     33 """
     34 
     35 test.build('defines.gyp', stderr=expect_stderr)
     36 
     37 test.run_built_executable('defines', stdout=expect)
     38 
     39 test.pass_test()
     40