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