blob: bb9ce8e276333dbdd42a26bde30ed3ffe9385b3f [file] [log] [blame]
Daniel Norman6d82fa32019-03-22 17:53:04 -07001#
2# Copyright (C) 2017 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17import os.path
18
19import common
20import test_utils
21from merge_target_files import (
22 read_config_list, validate_config_lists, default_system_item_list,
23 default_other_item_list, default_system_misc_info_keys)
24
25
26class MergeTargetFilesTest(test_utils.ReleaseToolsTestCase):
27
28 def setUp(self):
29 self.testdata_dir = test_utils.get_testdata_dir()
30
31 def test_read_config_list(self):
32 system_item_list_file = os.path.join(self.testdata_dir,
33 'merge_config_system_item_list')
34 system_item_list = read_config_list(system_item_list_file)
35 expected_system_item_list = [
36 'META/apkcerts.txt',
37 'META/filesystem_config.txt',
38 'META/root_filesystem_config.txt',
39 'META/system_manifest.xml',
40 'META/system_matrix.xml',
41 'META/update_engine_config.txt',
42 'PRODUCT/*',
43 'ROOT/*',
44 'SYSTEM/*',
45 ]
46 self.assertItemsEqual(system_item_list, expected_system_item_list)
47
48 def test_validate_config_lists_ReturnsFalseIfMissingDefaultItem(self):
49 system_item_list = default_system_item_list[:]
50 system_item_list.remove('SYSTEM/*')
51 self.assertFalse(
52 validate_config_lists(system_item_list, default_system_misc_info_keys,
53 default_other_item_list))
54
55 def test_validate_config_lists_ReturnsTrueIfDefaultItemInDifferentList(self):
56 system_item_list = default_system_item_list[:]
57 system_item_list.remove('ROOT/*')
58 other_item_list = default_other_item_list[:]
59 other_item_list.append('ROOT/*')
60 self.assertTrue(
61 validate_config_lists(system_item_list, default_system_misc_info_keys,
62 other_item_list))
63
64 def test_validate_config_lists_ReturnsTrueIfExtraItem(self):
65 system_item_list = default_system_item_list[:]
66 system_item_list.append('MY_NEW_PARTITION/*')
67 self.assertTrue(
68 validate_config_lists(system_item_list, default_system_misc_info_keys,
69 default_other_item_list))
70
71 def test_validate_config_lists_ReturnsFalseIfBadSystemMiscInfoKeys(self):
72 for bad_key in ['dynamic_partition_list', 'super_partition_groups']:
73 system_misc_info_keys = default_system_misc_info_keys[:]
74 system_misc_info_keys.append(bad_key)
75 self.assertFalse(
76 validate_config_lists(default_system_item_list, system_misc_info_keys,
77 default_other_item_list))