Check for duplicate entries in build.prop in validation script
Test: Added Unit test
Bug: 143013566
Change-Id: Ida14507a4a6034990bc81d5263ef1cea34f589c1
diff --git a/tools/releasetools/test_validate_target_files.py b/tools/releasetools/test_validate_target_files.py
index 6504515..ca70ca8 100644
--- a/tools/releasetools/test_validate_target_files.py
+++ b/tools/releasetools/test_validate_target_files.py
@@ -25,10 +25,9 @@
import test_utils
from rangelib import RangeSet
from validate_target_files import (ValidateVerifiedBootImages,
- ValidateFileConsistency)
+ ValidateFileConsistency, CheckBuildPropDuplicity)
from verity_utils import CreateVerityImageBuilder
-
class ValidateTargetFilesTest(test_utils.ReleaseToolsTestCase):
def setUp(self):
@@ -329,3 +328,38 @@
with zipfile.ZipFile(input_file) as input_zip:
info_dict = {'extfs_sparse_flag': '-s'}
ValidateFileConsistency(input_zip, input_tmp, info_dict)
+
+ @staticmethod
+ def make_build_prop(build_prop):
+ input_tmp = common.MakeTempDir()
+ system_dir = os.path.join(input_tmp, 'SYSTEM')
+ os.makedirs(system_dir)
+ prop_file = os.path.join(system_dir, 'build.prop')
+ with open(prop_file, 'w') as output_file:
+ output_file.write("\n".join(build_prop))
+ return input_tmp
+
+ def test_checkDuplicateProps_noDuplicate(self):
+ build_prop = [
+ 'ro.odm.build.date.utc=1578430045',
+ 'ro.odm.build.fingerprint='
+ 'google/coral/coral:10/RP1A.200325.001/6337676:user/dev-keys',
+ 'ro.product.odm.device=coral',
+ ]
+ input_tmp = ValidateTargetFilesTest.make_build_prop(build_prop)
+ CheckBuildPropDuplicity(input_tmp)
+
+ def test_checkDuplicateProps_withDuplicate(self):
+ build_prop = [
+ 'ro.odm.build.date.utc=1578430045',
+ 'ro.odm.build.date.utc=1578430049',
+ 'ro.odm.build.fingerprint='
+ 'google/coral/coral:10/RP1A.200325.001/6337676:user/dev-keys',
+ 'ro.product.odm.device=coral',
+ ]
+ input_tmp = ValidateTargetFilesTest.make_build_prop({
+ 'ODM/etc/build.prop': '\n'.join(build_prop),
+ })
+
+ self.assertRaises(ValueError, CheckBuildPropDuplicity,
+ input_tmp)