From 6d82fa3961d6896b00d79c80bdcad6e729648f94 Mon Sep 17 00:00:00 2001 From: Daniel Norman Date: Fri, 22 Mar 2019 17:53:04 -0700 Subject: [PATCH] Adds some tests for merge_target_files. Test: python -m unittest test_merge_target_files Bug: 129262038 Change-Id: Ibcb3b384b81ceaa1924a6cd402a8880bd3cfbba6 --- tools/releasetools/test_merge_target_files.py | 77 +++++++++++++++++++ .../testdata/merge_config_system_item_list | 9 +++ 2 files changed, 86 insertions(+) create mode 100644 tools/releasetools/test_merge_target_files.py create mode 100644 tools/releasetools/testdata/merge_config_system_item_list diff --git a/tools/releasetools/test_merge_target_files.py b/tools/releasetools/test_merge_target_files.py new file mode 100644 index 000000000..bb9ce8e27 --- /dev/null +++ b/tools/releasetools/test_merge_target_files.py @@ -0,0 +1,77 @@ +# +# Copyright (C) 2017 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import os.path + +import common +import test_utils +from merge_target_files import ( + read_config_list, validate_config_lists, default_system_item_list, + default_other_item_list, default_system_misc_info_keys) + + +class MergeTargetFilesTest(test_utils.ReleaseToolsTestCase): + + def setUp(self): + self.testdata_dir = test_utils.get_testdata_dir() + + def test_read_config_list(self): + system_item_list_file = os.path.join(self.testdata_dir, + 'merge_config_system_item_list') + system_item_list = read_config_list(system_item_list_file) + expected_system_item_list = [ + 'META/apkcerts.txt', + 'META/filesystem_config.txt', + 'META/root_filesystem_config.txt', + 'META/system_manifest.xml', + 'META/system_matrix.xml', + 'META/update_engine_config.txt', + 'PRODUCT/*', + 'ROOT/*', + 'SYSTEM/*', + ] + self.assertItemsEqual(system_item_list, expected_system_item_list) + + def test_validate_config_lists_ReturnsFalseIfMissingDefaultItem(self): + system_item_list = default_system_item_list[:] + system_item_list.remove('SYSTEM/*') + self.assertFalse( + validate_config_lists(system_item_list, default_system_misc_info_keys, + default_other_item_list)) + + def test_validate_config_lists_ReturnsTrueIfDefaultItemInDifferentList(self): + system_item_list = default_system_item_list[:] + system_item_list.remove('ROOT/*') + other_item_list = default_other_item_list[:] + other_item_list.append('ROOT/*') + self.assertTrue( + validate_config_lists(system_item_list, default_system_misc_info_keys, + other_item_list)) + + def test_validate_config_lists_ReturnsTrueIfExtraItem(self): + system_item_list = default_system_item_list[:] + system_item_list.append('MY_NEW_PARTITION/*') + self.assertTrue( + validate_config_lists(system_item_list, default_system_misc_info_keys, + default_other_item_list)) + + def test_validate_config_lists_ReturnsFalseIfBadSystemMiscInfoKeys(self): + for bad_key in ['dynamic_partition_list', 'super_partition_groups']: + system_misc_info_keys = default_system_misc_info_keys[:] + system_misc_info_keys.append(bad_key) + self.assertFalse( + validate_config_lists(default_system_item_list, system_misc_info_keys, + default_other_item_list)) diff --git a/tools/releasetools/testdata/merge_config_system_item_list b/tools/releasetools/testdata/merge_config_system_item_list new file mode 100644 index 000000000..36c26187d --- /dev/null +++ b/tools/releasetools/testdata/merge_config_system_item_list @@ -0,0 +1,9 @@ +META/apkcerts.txt +META/filesystem_config.txt +META/root_filesystem_config.txt +META/system_manifest.xml +META/system_matrix.xml +META/update_engine_config.txt +PRODUCT/* +ROOT/* +SYSTEM/*