1#!/usr/bin/env python 2 3# Copyright (c) 2013 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""" 8Verifies --root-target removes the unnecessary targets. 9""" 10 11import TestGyp 12 13test = TestGyp.TestGyp() 14 15build_error_code = { 16 'android': 2, 17 'cmake': 1, 18 'make': 2, 19 'msvs': 1, 20 'ninja': 1, 21 'xcode': 65, 22}[test.format] 23 24# By default, everything will be included. 25test.run_gyp('test1.gyp') 26test.build('test2.gyp', 'lib1') 27test.build('test2.gyp', 'lib2') 28test.build('test2.gyp', 'lib3') 29test.build('test2.gyp', 'lib_indirect') 30test.build('test1.gyp', 'program1') 31test.build('test1.gyp', 'program2') 32test.build('test1.gyp', 'program3') 33 34# With deep dependencies of program1 only. 35test.run_gyp('test1.gyp', '--root-target=program1') 36test.build('test2.gyp', 'lib1') 37test.build('test2.gyp', 'lib2', status=build_error_code, stderr=None) 38test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None) 39test.build('test2.gyp', 'lib_indirect') 40test.build('test1.gyp', 'program1') 41test.build('test1.gyp', 'program2', status=build_error_code, stderr=None) 42test.build('test1.gyp', 'program3', status=build_error_code, stderr=None) 43 44# With deep dependencies of program2 only. 45test.run_gyp('test1.gyp', '--root-target=program2') 46test.build('test2.gyp', 'lib1', status=build_error_code, stderr=None) 47test.build('test2.gyp', 'lib2') 48test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None) 49test.build('test2.gyp', 'lib_indirect') 50test.build('test1.gyp', 'program1', status=build_error_code, stderr=None) 51test.build('test1.gyp', 'program2') 52test.build('test1.gyp', 'program3', status=build_error_code, stderr=None) 53 54# With deep dependencies of program1 and program2. 55test.run_gyp('test1.gyp', '--root-target=program1', '--root-target=program2') 56test.build('test2.gyp', 'lib1') 57test.build('test2.gyp', 'lib2') 58test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None) 59test.build('test2.gyp', 'lib_indirect') 60test.build('test1.gyp', 'program1') 61test.build('test1.gyp', 'program2') 62test.build('test1.gyp', 'program3', status=build_error_code, stderr=None) 63 64test.pass_test() 65