Home | History | Annotate | Download | only in generator-output
      1 #!/usr/bin/env python
      2 
      3 # Copyright (c) 2012 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 --generator-output= behavior when using rules.
      9 """
     10 
     11 import TestGyp
     12 
     13 # Android doesn't support --generator-output.
     14 test = TestGyp.TestGyp(formats=['!android'])
     15 
     16 test.writable(test.workpath('rules'), False)
     17 
     18 test.run_gyp('rules.gyp',
     19              '--generator-output=' + test.workpath('gypfiles'),
     20              chdir='rules')
     21 
     22 test.writable(test.workpath('rules'), True)
     23 
     24 test.relocate('rules', 'relocate/rules')
     25 test.relocate('gypfiles', 'relocate/gypfiles')
     26 
     27 test.writable(test.workpath('relocate/rules'), False)
     28 
     29 test.writable(test.workpath('relocate/rules/build'), True)
     30 test.writable(test.workpath('relocate/rules/subdir1/build'), True)
     31 test.writable(test.workpath('relocate/rules/subdir2/build'), True)
     32 test.writable(test.workpath('relocate/rules/subdir2/rules-out'), True)
     33 
     34 test.build('rules.gyp', test.ALL, chdir='relocate/gypfiles')
     35 
     36 expect = """\
     37 Hello from program.c
     38 Hello from function1.in1
     39 Hello from function2.in1
     40 Hello from define3.in0
     41 Hello from define4.in0
     42 """
     43 
     44 if test.format == 'xcode':
     45   chdir = 'relocate/rules/subdir1'
     46 else:
     47   chdir = 'relocate/gypfiles'
     48 test.run_built_executable('program', chdir=chdir, stdout=expect)
     49 
     50 test.must_match('relocate/rules/subdir2/rules-out/file1.out',
     51                 "Hello from file1.in0\n")
     52 test.must_match('relocate/rules/subdir2/rules-out/file2.out',
     53                 "Hello from file2.in0\n")
     54 test.must_match('relocate/rules/subdir2/rules-out/file3.out',
     55                 "Hello from file3.in1\n")
     56 test.must_match('relocate/rules/subdir2/rules-out/file4.out',
     57                 "Hello from file4.in1\n")
     58 
     59 test.pass_test()
     60