blob: 89c32fd14d8932e215aae15925bc9e9e2cc137af [file] [log] [blame]
Ned Nguyene5d04852019-02-19 16:33:15 -07001# -*- coding: utf-8 -*-
2# Copyright 2019 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5"""Board build dependency service tests."""
6
7from __future__ import print_function
8
Alex Kleinec869c12019-07-09 15:22:16 -06009from chromite.api.controller import dependency
Ned Nguyen8e144bd2019-05-02 09:09:41 -060010from chromite.api.gen.chromite.api import depgraph_pb2
Ned Nguyene5d04852019-02-19 16:33:15 -070011from chromite.lib import cros_test_lib
12
13
14class BoardBuilDependencyTest(cros_test_lib.TestCase):
15 """Unittests for board_build_dependency."""
16
17 def testCreateDepGraphProtoFromJsonMap(self):
18 json_deps = {
19 'target_board': 'deathstar',
20 'package_deps': {
21 'commander/darthvader-1.49.3.3': {
22 'action': 'merge',
23 'category': 'commander',
24 'cpes': [],
25 'deps': ['troop/clone', 'troop/robot'],
26 'rev_deps': [],
27 'full_name': 'commander/darthvader-1.49.3.3',
28 'name': 'darthvader',
29 'version': '1.49.3.3'
30 },
31 'troop/clone-1.2.3': {
32 'action': 'merge',
33 'category': 'troop',
34 'cpes': [],
35 'deps': [],
36 'rev_deps': ['commander/darthvader'],
37 'full_name': 'troop/clone-1.2.3',
38 'name': 'clone',
39 'version': '1.2.3'
40 },
41 'troop/robot-2.3.4': {
42 'action': 'merge',
43 'category': 'troop',
44 'cpes': [],
45 'deps': [],
46 'rev_deps': ['commander/darthvader'],
47 'full_name': 'troop/robot-2.3.4',
Ned Nguyen8be10052019-02-26 08:58:45 -070048 'name': 'robot',
Ned Nguyene5d04852019-02-19 16:33:15 -070049 'version': '2.3.4'
50 },
51 },
52 'source_path_mapping': {
Ned Nguyen8be10052019-02-26 08:58:45 -070053 'commander/darthvader-1.49.3.3': ['/control/room'],
54 'troop/clone-1.2.3': ['/bunker'],
55 'troop/robot-2.3.4': ['/factory'],
Ned Nguyene5d04852019-02-19 16:33:15 -070056 },
57 }
58
Ned Nguyen8e144bd2019-05-02 09:09:41 -060059 depgraph_proto = depgraph_pb2.DepGraph()
Alex Kleinec869c12019-07-09 15:22:16 -060060 dependency.AugmentDepGraphProtoFromJsonMap(
Ned Nguyen8e144bd2019-05-02 09:09:41 -060061 json_deps, depgraph_proto)
Ned Nguyene5d04852019-02-19 16:33:15 -070062 self.assertEqual(depgraph_proto.build_target.name, 'deathstar')
63 darthvader_dep = None
64 for package_dep_info in depgraph_proto.package_deps:
65 if package_dep_info.package_info.package_name == 'darthvader':
66 darthvader_dep = package_dep_info
67 self.assertTrue(darthvader_dep)
68 self.assertEquals(darthvader_dep.dependency_packages[0].category,
69 'troop')
70 self.assertEquals(darthvader_dep.dependency_packages[0].package_name,
71 'clone')
72 self.assertEquals(darthvader_dep.dependency_source_paths[0].path,
73 '/control/room')