blob: b2c90f717e69f5b87c7acc40627eb600525b0a29 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001#!/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# The xcode-ninja generator has its own logic for which targets to include
15if test.format == 'xcode-ninja':
16 test.skip_test()
17
18build_error_code = {
19 'cmake': 1,
20 'make': 2,
21 'msvs': 1,
22 'ninja': 1,
23 'xcode': 65,
24}[test.format]
25
26# By default, everything will be included.
27test.run_gyp('test1.gyp')
28test.build('test2.gyp', 'lib1')
29test.build('test2.gyp', 'lib2')
30test.build('test2.gyp', 'lib3')
31test.build('test2.gyp', 'lib_indirect')
32test.build('test1.gyp', 'program1')
33test.build('test1.gyp', 'program2')
34test.build('test1.gyp', 'program3')
35
36# With deep dependencies of program1 only.
37test.run_gyp('test1.gyp', '--root-target=program1')
38test.build('test2.gyp', 'lib1')
39test.build('test2.gyp', 'lib2', status=build_error_code, stderr=None)
40test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None)
41test.build('test2.gyp', 'lib_indirect')
42test.build('test1.gyp', 'program1')
43test.build('test1.gyp', 'program2', status=build_error_code, stderr=None)
44test.build('test1.gyp', 'program3', status=build_error_code, stderr=None)
45
46# With deep dependencies of program2 only.
47test.run_gyp('test1.gyp', '--root-target=program2')
48test.build('test2.gyp', 'lib1', status=build_error_code, stderr=None)
49test.build('test2.gyp', 'lib2')
50test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None)
51test.build('test2.gyp', 'lib_indirect')
52test.build('test1.gyp', 'program1', status=build_error_code, stderr=None)
53test.build('test1.gyp', 'program2')
54test.build('test1.gyp', 'program3', status=build_error_code, stderr=None)
55
56# With deep dependencies of program1 and program2.
57test.run_gyp('test1.gyp', '--root-target=program1', '--root-target=program2')
58test.build('test2.gyp', 'lib1')
59test.build('test2.gyp', 'lib2')
60test.build('test2.gyp', 'lib3', status=build_error_code, stderr=None)
61test.build('test2.gyp', 'lib_indirect')
62test.build('test1.gyp', 'program1')
63test.build('test1.gyp', 'program2')
64test.build('test1.gyp', 'program3', status=build_error_code, stderr=None)
65
66test.pass_test()