Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 1 | # Copyright 2019 The Chromium OS Authors. All rights reserved. |
| 2 | # Use of this source code is governed by a BSD-style license that can be |
| 3 | # found in the LICENSE file. |
| 4 | |
| 5 | """Test cros_extract_deps.""" |
| 6 | |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 7 | from chromite.lib import cros_test_lib |
| 8 | from chromite.scripts import cros_extract_deps |
| 9 | |
Mike Frysinger | 807d828 | 2022-04-28 22:45:17 -0400 | [diff] [blame] | 10 | |
Greg Edelston | a4c9b3b | 2020-01-07 17:51:13 -0700 | [diff] [blame] | 11 | pytestmark = cros_test_lib.pytestmark_inside_only |
| 12 | |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 13 | |
| 14 | class FlattenDepTreeTest(cros_test_lib.TestCase): |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 15 | """Tests for cros_extract_deps.FlattenDepTree.""" |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 16 | |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 17 | def testFlattenDepTreeSimple(self): |
| 18 | dep_tree = { |
| 19 | "deathstar/darthvader-2.3": { |
| 20 | "action": "merge", |
| 21 | "deps": { |
| 22 | "deathstar/trooper-1.2": { |
| 23 | "action": "merge", |
| 24 | "deps": { |
| 25 | "weapon/blasterpistol-2.1": { |
| 26 | "action": "merge", |
| 27 | "deps": {}, |
| 28 | "deptype": "runtime", |
| 29 | } |
| 30 | }, |
| 31 | "deptype": "runtime", |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 32 | }, |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 33 | "deathstar/pilot-2.3": { |
| 34 | "action": "merge", |
| 35 | "deps": {}, |
| 36 | "deptype": "runtime", |
| 37 | }, |
| 38 | "deathstar/commander-2.3": { |
| 39 | "action": "merge", |
| 40 | "deps": {}, |
| 41 | "deptype": "runtime", |
| 42 | }, |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 43 | }, |
| 44 | }, |
Ned Nguyen | 3bbd207 | 2019-01-28 19:33:41 -0700 | [diff] [blame] | 45 | } |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 46 | flatten_dep_tree = { |
| 47 | "weapon/blasterpistol-2.1": { |
| 48 | "rev_deps": ["deathstar/trooper-1.2"], |
| 49 | "category": "weapon", |
| 50 | "version": "2.1", |
| 51 | "name": "blasterpistol", |
| 52 | "deps": [], |
| 53 | "action": "merge", |
| 54 | "cpes": [], |
| 55 | "full_name": "weapon/blasterpistol-2.1", |
| 56 | }, |
| 57 | "deathstar/darthvader-2.3": { |
| 58 | "rev_deps": [], |
| 59 | "category": "deathstar", |
| 60 | "version": "2.3", |
| 61 | "name": "darthvader", |
| 62 | "deps": [ |
| 63 | "deathstar/commander-2.3", |
| 64 | "deathstar/pilot-2.3", |
| 65 | "deathstar/trooper-1.2", |
| 66 | ], |
| 67 | "action": "merge", |
| 68 | "cpes": [], |
| 69 | "full_name": "deathstar/darthvader-2.3", |
| 70 | }, |
| 71 | "deathstar/pilot-2.3": { |
| 72 | "rev_deps": ["deathstar/darthvader-2.3"], |
| 73 | "category": "deathstar", |
| 74 | "version": "2.3", |
| 75 | "name": "pilot", |
| 76 | "deps": [], |
| 77 | "action": "merge", |
| 78 | "cpes": [], |
| 79 | "full_name": "deathstar/pilot-2.3", |
| 80 | }, |
| 81 | "deathstar/commander-2.3": { |
| 82 | "rev_deps": ["deathstar/darthvader-2.3"], |
| 83 | "category": "deathstar", |
| 84 | "version": "2.3", |
| 85 | "name": "commander", |
| 86 | "deps": [], |
| 87 | "action": "merge", |
| 88 | "cpes": [], |
| 89 | "full_name": "deathstar/commander-2.3", |
| 90 | }, |
| 91 | "deathstar/trooper-1.2": { |
| 92 | "rev_deps": ["deathstar/darthvader-2.3"], |
| 93 | "category": "deathstar", |
| 94 | "version": "1.2", |
| 95 | "name": "trooper", |
| 96 | "deps": ["weapon/blasterpistol-2.1"], |
| 97 | "action": "merge", |
| 98 | "cpes": [], |
| 99 | "full_name": "deathstar/trooper-1.2", |
| 100 | }, |
| 101 | } |
| 102 | self.assertEqual( |
| 103 | cros_extract_deps.FlattenDepTree(dep_tree), flatten_dep_tree |
| 104 | ) |
Mike Frysinger | 44b8381 | 2019-12-10 00:09:30 -0500 | [diff] [blame] | 105 | |
| 106 | |
| 107 | class GetCPEFromCPVTest(cros_test_lib.RunCommandTestCase): |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 108 | """Tests for cros_extract_deps.GetCPEFromCPV.""" |
Mike Frysinger | 44b8381 | 2019-12-10 00:09:30 -0500 | [diff] [blame] | 109 | |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 110 | def testGetCPEFromCPV(self): |
| 111 | """Check GetCPEFromCPV behavior.""" |
| 112 | stdout = """Remote-ID: cpe:/a:curl:curl ID: cpe |
Mike Frysinger | 44b8381 | 2019-12-10 00:09:30 -0500 | [diff] [blame] | 113 | Remote-ID: cpe:/a:curl:libcurl ID: cpe |
| 114 | Remote-ID: cpe:/a:haxx:curl ID: cpe |
| 115 | Remote-ID: cpe:/a:haxx:libcurl ID: cpe |
| 116 | Homepage: https://curl.haxx.se/ |
| 117 | License: MIT |
| 118 | """ |
Alex Klein | 1699fab | 2022-09-08 08:46:06 -0600 | [diff] [blame^] | 119 | self.rc.AddCmdResult( |
| 120 | ["equery", "m", "-U", "net-misc/curl"], stdout=stdout |
| 121 | ) |
| 122 | self.assertEqual( |
| 123 | [ |
| 124 | "cpe:/a:curl:curl:7.3.0", |
| 125 | "cpe:/a:curl:libcurl:7.3.0", |
| 126 | "cpe:/a:haxx:curl:7.3.0", |
| 127 | "cpe:/a:haxx:libcurl:7.3.0", |
| 128 | ], |
| 129 | cros_extract_deps.GetCPEFromCPV("net-misc", "curl", "7.3.0"), |
| 130 | ) |