Home | History | Annotate | Download | only in make
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2010 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 Tests the use of the NO_LOAD flag which makes loading sub .mk files
      9 optional.
     10 """
     11 
     12 # Python 2.5 needs this for the with statement.
     13 from __future__ import with_statement
     14 
     15 import os
     16 import TestGyp
     17 
     18 test = TestGyp.TestGyp(formats=['make'])
     19 
     20 test.run_gyp('all.gyp', chdir='noload')
     21 
     22 test.relocate('noload', 'relocate/noload')
     23 
     24 test.build('build/all.gyp', test.ALL, chdir='relocate/noload')
     25 test.run_built_executable('exe', chdir='relocate/noload',
     26                           stdout='Hello from shared.c.\n')
     27 
     28 # Just sanity test that NO_LOAD=lib doesn't break anything.
     29 test.build('build/all.gyp', test.ALL, chdir='relocate/noload',
     30            arguments=['NO_LOAD=lib'])
     31 test.run_built_executable('exe', chdir='relocate/noload',
     32                           stdout='Hello from shared.c.\n')
     33 test.build('build/all.gyp', test.ALL, chdir='relocate/noload',
     34            arguments=['NO_LOAD=z'])
     35 test.run_built_executable('exe', chdir='relocate/noload',
     36                           stdout='Hello from shared.c.\n')
     37 
     38 # Make sure we can rebuild without reloading the sub .mk file.
     39 with open('relocate/noload/main.c', 'a') as src_file:
     40   src_file.write("\n")
     41 test.build('build/all.gyp', test.ALL, chdir='relocate/noload',
     42            arguments=['NO_LOAD=lib'])
     43 test.run_built_executable('exe', chdir='relocate/noload',
     44                           stdout='Hello from shared.c.\n')
     45 
     46 # Change shared.c, but verify that it doesn't get rebuild if we don't load it.
     47 with open('relocate/noload/lib/shared.c', 'w') as shared_file:
     48   shared_file.write(
     49       '#include "shared.h"\n'
     50       'const char kSharedStr[] = "modified";\n'
     51   )
     52 test.build('build/all.gyp', test.ALL, chdir='relocate/noload',
     53            arguments=['NO_LOAD=lib'])
     54 test.run_built_executable('exe', chdir='relocate/noload',
     55                           stdout='Hello from shared.c.\n')
     56 
     57 test.pass_test()
     58