1*4882a593Smuzhiyun# Copyright (C) 2017-2018 Wind River Systems, Inc. 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunfrom layerindexlib.tests.common import LayersTest 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunclass LayerIndexObjectsTest(LayersTest): 10*4882a593Smuzhiyun def setUp(self): 11*4882a593Smuzhiyun from layerindexlib import LayerIndexObj, Branch, LayerItem, LayerBranch, LayerDependency, Recipe, Machine, Distro 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun LayersTest.setUp(self) 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun self.index = LayerIndexObj() 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun branchId = 0 18*4882a593Smuzhiyun layerItemId = 0 19*4882a593Smuzhiyun layerBranchId = 0 20*4882a593Smuzhiyun layerDependencyId = 0 21*4882a593Smuzhiyun recipeId = 0 22*4882a593Smuzhiyun machineId = 0 23*4882a593Smuzhiyun distroId = 0 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun self.index.branches = {} 26*4882a593Smuzhiyun self.index.layerItems = {} 27*4882a593Smuzhiyun self.index.layerBranches = {} 28*4882a593Smuzhiyun self.index.layerDependencies = {} 29*4882a593Smuzhiyun self.index.recipes = {} 30*4882a593Smuzhiyun self.index.machines = {} 31*4882a593Smuzhiyun self.index.distros = {} 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun branchId += 1 34*4882a593Smuzhiyun self.index.branches[branchId] = Branch(self.index) 35*4882a593Smuzhiyun self.index.branches[branchId].define_data(branchId, 36*4882a593Smuzhiyun 'test_branch', 'bb_test_branch') 37*4882a593Smuzhiyun self.index.branches[branchId].lockData() 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun layerItemId +=1 40*4882a593Smuzhiyun self.index.layerItems[layerItemId] = LayerItem(self.index) 41*4882a593Smuzhiyun self.index.layerItems[layerItemId].define_data(layerItemId, 42*4882a593Smuzhiyun 'test_layerItem', vcs_url='git://git_test_url/test_layerItem') 43*4882a593Smuzhiyun self.index.layerItems[layerItemId].lockData() 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun layerBranchId +=1 46*4882a593Smuzhiyun self.index.layerBranches[layerBranchId] = LayerBranch(self.index) 47*4882a593Smuzhiyun self.index.layerBranches[layerBranchId].define_data(layerBranchId, 48*4882a593Smuzhiyun 'test_collection', '99', layerItemId, 49*4882a593Smuzhiyun branchId) 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun recipeId += 1 52*4882a593Smuzhiyun self.index.recipes[recipeId] = Recipe(self.index) 53*4882a593Smuzhiyun self.index.recipes[recipeId].define_data(recipeId, 'test_git.bb', 54*4882a593Smuzhiyun 'recipes-test', 'test', 'git', 55*4882a593Smuzhiyun layerBranchId) 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun machineId += 1 58*4882a593Smuzhiyun self.index.machines[machineId] = Machine(self.index) 59*4882a593Smuzhiyun self.index.machines[machineId].define_data(machineId, 60*4882a593Smuzhiyun 'test_machine', 'test_machine', 61*4882a593Smuzhiyun layerBranchId) 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun distroId += 1 64*4882a593Smuzhiyun self.index.distros[distroId] = Distro(self.index) 65*4882a593Smuzhiyun self.index.distros[distroId].define_data(distroId, 66*4882a593Smuzhiyun 'test_distro', 'test_distro', 67*4882a593Smuzhiyun layerBranchId) 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun layerItemId +=1 70*4882a593Smuzhiyun self.index.layerItems[layerItemId] = LayerItem(self.index) 71*4882a593Smuzhiyun self.index.layerItems[layerItemId].define_data(layerItemId, 'test_layerItem 2', 72*4882a593Smuzhiyun vcs_url='git://git_test_url/test_layerItem') 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun layerBranchId +=1 75*4882a593Smuzhiyun self.index.layerBranches[layerBranchId] = LayerBranch(self.index) 76*4882a593Smuzhiyun self.index.layerBranches[layerBranchId].define_data(layerBranchId, 77*4882a593Smuzhiyun 'test_collection_2', '72', layerItemId, 78*4882a593Smuzhiyun branchId, actual_branch='some_other_branch') 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun layerDependencyId += 1 81*4882a593Smuzhiyun self.index.layerDependencies[layerDependencyId] = LayerDependency(self.index) 82*4882a593Smuzhiyun self.index.layerDependencies[layerDependencyId].define_data(layerDependencyId, 83*4882a593Smuzhiyun layerBranchId, 1) 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun layerDependencyId += 1 86*4882a593Smuzhiyun self.index.layerDependencies[layerDependencyId] = LayerDependency(self.index) 87*4882a593Smuzhiyun self.index.layerDependencies[layerDependencyId].define_data(layerDependencyId, 88*4882a593Smuzhiyun layerBranchId, 1, required=False) 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun def test_branch(self): 91*4882a593Smuzhiyun branch = self.index.branches[1] 92*4882a593Smuzhiyun self.assertEqual(branch.id, 1) 93*4882a593Smuzhiyun self.assertEqual(branch.name, 'test_branch') 94*4882a593Smuzhiyun self.assertEqual(branch.short_description, 'test_branch') 95*4882a593Smuzhiyun self.assertEqual(branch.bitbake_branch, 'bb_test_branch') 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun def test_layerItem(self): 98*4882a593Smuzhiyun layerItem = self.index.layerItems[1] 99*4882a593Smuzhiyun self.assertEqual(layerItem.id, 1) 100*4882a593Smuzhiyun self.assertEqual(layerItem.name, 'test_layerItem') 101*4882a593Smuzhiyun self.assertEqual(layerItem.summary, 'test_layerItem') 102*4882a593Smuzhiyun self.assertEqual(layerItem.description, 'test_layerItem') 103*4882a593Smuzhiyun self.assertEqual(layerItem.vcs_url, 'git://git_test_url/test_layerItem') 104*4882a593Smuzhiyun self.assertEqual(layerItem.vcs_web_url, None) 105*4882a593Smuzhiyun self.assertIsNone(layerItem.vcs_web_tree_base_url) 106*4882a593Smuzhiyun self.assertIsNone(layerItem.vcs_web_file_base_url) 107*4882a593Smuzhiyun self.assertIsNotNone(layerItem.updated) 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun layerItem = self.index.layerItems[2] 110*4882a593Smuzhiyun self.assertEqual(layerItem.id, 2) 111*4882a593Smuzhiyun self.assertEqual(layerItem.name, 'test_layerItem 2') 112*4882a593Smuzhiyun self.assertEqual(layerItem.summary, 'test_layerItem 2') 113*4882a593Smuzhiyun self.assertEqual(layerItem.description, 'test_layerItem 2') 114*4882a593Smuzhiyun self.assertEqual(layerItem.vcs_url, 'git://git_test_url/test_layerItem') 115*4882a593Smuzhiyun self.assertIsNone(layerItem.vcs_web_url) 116*4882a593Smuzhiyun self.assertIsNone(layerItem.vcs_web_tree_base_url) 117*4882a593Smuzhiyun self.assertIsNone(layerItem.vcs_web_file_base_url) 118*4882a593Smuzhiyun self.assertIsNotNone(layerItem.updated) 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun def test_layerBranch(self): 121*4882a593Smuzhiyun layerBranch = self.index.layerBranches[1] 122*4882a593Smuzhiyun self.assertEqual(layerBranch.id, 1) 123*4882a593Smuzhiyun self.assertEqual(layerBranch.collection, 'test_collection') 124*4882a593Smuzhiyun self.assertEqual(layerBranch.version, '99') 125*4882a593Smuzhiyun self.assertEqual(layerBranch.vcs_subdir, '') 126*4882a593Smuzhiyun self.assertEqual(layerBranch.actual_branch, 'test_branch') 127*4882a593Smuzhiyun self.assertIsNotNone(layerBranch.updated) 128*4882a593Smuzhiyun self.assertEqual(layerBranch.layer_id, 1) 129*4882a593Smuzhiyun self.assertEqual(layerBranch.branch_id, 1) 130*4882a593Smuzhiyun self.assertEqual(layerBranch.layer, self.index.layerItems[1]) 131*4882a593Smuzhiyun self.assertEqual(layerBranch.branch, self.index.branches[1]) 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun layerBranch = self.index.layerBranches[2] 134*4882a593Smuzhiyun self.assertEqual(layerBranch.id, 2) 135*4882a593Smuzhiyun self.assertEqual(layerBranch.collection, 'test_collection_2') 136*4882a593Smuzhiyun self.assertEqual(layerBranch.version, '72') 137*4882a593Smuzhiyun self.assertEqual(layerBranch.vcs_subdir, '') 138*4882a593Smuzhiyun self.assertEqual(layerBranch.actual_branch, 'some_other_branch') 139*4882a593Smuzhiyun self.assertIsNotNone(layerBranch.updated) 140*4882a593Smuzhiyun self.assertEqual(layerBranch.layer_id, 2) 141*4882a593Smuzhiyun self.assertEqual(layerBranch.branch_id, 1) 142*4882a593Smuzhiyun self.assertEqual(layerBranch.layer, self.index.layerItems[2]) 143*4882a593Smuzhiyun self.assertEqual(layerBranch.branch, self.index.branches[1]) 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun def test_layerDependency(self): 146*4882a593Smuzhiyun layerDependency = self.index.layerDependencies[1] 147*4882a593Smuzhiyun self.assertEqual(layerDependency.id, 1) 148*4882a593Smuzhiyun self.assertEqual(layerDependency.layerbranch_id, 2) 149*4882a593Smuzhiyun self.assertEqual(layerDependency.layerbranch, self.index.layerBranches[2]) 150*4882a593Smuzhiyun self.assertEqual(layerDependency.layer_id, 2) 151*4882a593Smuzhiyun self.assertEqual(layerDependency.layer, self.index.layerItems[2]) 152*4882a593Smuzhiyun self.assertTrue(layerDependency.required) 153*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency_id, 1) 154*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency, self.index.layerItems[1]) 155*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency_layerBranch, self.index.layerBranches[1]) 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun layerDependency = self.index.layerDependencies[2] 158*4882a593Smuzhiyun self.assertEqual(layerDependency.id, 2) 159*4882a593Smuzhiyun self.assertEqual(layerDependency.layerbranch_id, 2) 160*4882a593Smuzhiyun self.assertEqual(layerDependency.layerbranch, self.index.layerBranches[2]) 161*4882a593Smuzhiyun self.assertEqual(layerDependency.layer_id, 2) 162*4882a593Smuzhiyun self.assertEqual(layerDependency.layer, self.index.layerItems[2]) 163*4882a593Smuzhiyun self.assertFalse(layerDependency.required) 164*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency_id, 1) 165*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency, self.index.layerItems[1]) 166*4882a593Smuzhiyun self.assertEqual(layerDependency.dependency_layerBranch, self.index.layerBranches[1]) 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun def test_recipe(self): 169*4882a593Smuzhiyun recipe = self.index.recipes[1] 170*4882a593Smuzhiyun self.assertEqual(recipe.id, 1) 171*4882a593Smuzhiyun self.assertEqual(recipe.layerbranch_id, 1) 172*4882a593Smuzhiyun self.assertEqual(recipe.layerbranch, self.index.layerBranches[1]) 173*4882a593Smuzhiyun self.assertEqual(recipe.layer_id, 1) 174*4882a593Smuzhiyun self.assertEqual(recipe.layer, self.index.layerItems[1]) 175*4882a593Smuzhiyun self.assertEqual(recipe.filename, 'test_git.bb') 176*4882a593Smuzhiyun self.assertEqual(recipe.filepath, 'recipes-test') 177*4882a593Smuzhiyun self.assertEqual(recipe.fullpath, 'recipes-test/test_git.bb') 178*4882a593Smuzhiyun self.assertEqual(recipe.summary, "") 179*4882a593Smuzhiyun self.assertEqual(recipe.description, "") 180*4882a593Smuzhiyun self.assertEqual(recipe.section, "") 181*4882a593Smuzhiyun self.assertEqual(recipe.pn, 'test') 182*4882a593Smuzhiyun self.assertEqual(recipe.pv, 'git') 183*4882a593Smuzhiyun self.assertEqual(recipe.license, "") 184*4882a593Smuzhiyun self.assertEqual(recipe.homepage, "") 185*4882a593Smuzhiyun self.assertEqual(recipe.bugtracker, "") 186*4882a593Smuzhiyun self.assertEqual(recipe.provides, "") 187*4882a593Smuzhiyun self.assertIsNotNone(recipe.updated) 188*4882a593Smuzhiyun self.assertEqual(recipe.inherits, "") 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun def test_machine(self): 191*4882a593Smuzhiyun machine = self.index.machines[1] 192*4882a593Smuzhiyun self.assertEqual(machine.id, 1) 193*4882a593Smuzhiyun self.assertEqual(machine.layerbranch_id, 1) 194*4882a593Smuzhiyun self.assertEqual(machine.layerbranch, self.index.layerBranches[1]) 195*4882a593Smuzhiyun self.assertEqual(machine.layer_id, 1) 196*4882a593Smuzhiyun self.assertEqual(machine.layer, self.index.layerItems[1]) 197*4882a593Smuzhiyun self.assertEqual(machine.name, 'test_machine') 198*4882a593Smuzhiyun self.assertEqual(machine.description, 'test_machine') 199*4882a593Smuzhiyun self.assertIsNotNone(machine.updated) 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun def test_distro(self): 202*4882a593Smuzhiyun distro = self.index.distros[1] 203*4882a593Smuzhiyun self.assertEqual(distro.id, 1) 204*4882a593Smuzhiyun self.assertEqual(distro.layerbranch_id, 1) 205*4882a593Smuzhiyun self.assertEqual(distro.layerbranch, self.index.layerBranches[1]) 206*4882a593Smuzhiyun self.assertEqual(distro.layer_id, 1) 207*4882a593Smuzhiyun self.assertEqual(distro.layer, self.index.layerItems[1]) 208*4882a593Smuzhiyun self.assertEqual(distro.name, 'test_distro') 209*4882a593Smuzhiyun self.assertEqual(distro.description, 'test_distro') 210*4882a593Smuzhiyun self.assertIsNotNone(distro.updated) 211