1*b7c941bbSAndroid Build Coastguard Worker# Lint as: python3 2*b7c941bbSAndroid Build Coastguard Worker# 3*b7c941bbSAndroid Build Coastguard Worker# Copyright (C) 2021 The Android Open Source Project 4*b7c941bbSAndroid Build Coastguard Worker# 5*b7c941bbSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the 'License'); 6*b7c941bbSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 7*b7c941bbSAndroid Build Coastguard Worker# You may obtain a copy of the License at 8*b7c941bbSAndroid Build Coastguard Worker# 9*b7c941bbSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 10*b7c941bbSAndroid Build Coastguard Worker# 11*b7c941bbSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 12*b7c941bbSAndroid Build Coastguard Worker# distributed under the License is distributed on an 'AS IS' BASIS, 13*b7c941bbSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*b7c941bbSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 15*b7c941bbSAndroid Build Coastguard Worker# limitations under the License. 16*b7c941bbSAndroid Build Coastguard Worker 17*b7c941bbSAndroid Build Coastguard Worker"""Tests for target_file_handler.""" 18*b7c941bbSAndroid Build Coastguard Worker 19*b7c941bbSAndroid Build Coastguard Workerimport unittest 20*b7c941bbSAndroid Build Coastguard Workerfrom target_file_handler import * 21*b7c941bbSAndroid Build Coastguard Worker 22*b7c941bbSAndroid Build Coastguard Workerclass BuildFileHandlerTest(unittest.TestCase): 23*b7c941bbSAndroid Build Coastguard Worker 24*b7c941bbSAndroid Build Coastguard Worker def test_get_hash(self): 25*b7c941bbSAndroid Build Coastguard Worker """Test TargetFileHandler could get hash from target file.""" 26*b7c941bbSAndroid Build Coastguard Worker build_file = './testdata/base_build_target-files.zip' 27*b7c941bbSAndroid Build Coastguard Worker handler = TargetFileHandler(build_file) 28*b7c941bbSAndroid Build Coastguard Worker deqp_deps = ['/system/deqp_dependency_file_a.so', '/vendor/deqp_dependency_file_b.so', 29*b7c941bbSAndroid Build Coastguard Worker '/vendor/file_not_exists.so'] 30*b7c941bbSAndroid Build Coastguard Worker hash_dict = handler.get_file_hash(deqp_deps) 31*b7c941bbSAndroid Build Coastguard Worker 32*b7c941bbSAndroid Build Coastguard Worker self.assertEqual(hash_dict['/system/deqp_dependency_file_a.so'], 33*b7c941bbSAndroid Build Coastguard Worker hash(b'placeholder\nplaceholder\n')) 34*b7c941bbSAndroid Build Coastguard Worker self.assertEqual(hash_dict['/vendor/deqp_dependency_file_b.so'], 35*b7c941bbSAndroid Build Coastguard Worker hash(b'placeholder\nplaceholder\nplaceholder\n\n')) 36*b7c941bbSAndroid Build Coastguard Worker self.assertEqual(len(hash_dict), 2) 37*b7c941bbSAndroid Build Coastguard Worker 38*b7c941bbSAndroid Build Coastguard Worker def test_get_system_fingerprint(self): 39*b7c941bbSAndroid Build Coastguard Worker """Test TargetFileHandler could get SYSTEM fingerprint from target file.""" 40*b7c941bbSAndroid Build Coastguard Worker build_file = './testdata/base_build_target-files.zip' 41*b7c941bbSAndroid Build Coastguard Worker handler = TargetFileHandler(build_file) 42*b7c941bbSAndroid Build Coastguard Worker self.assertEqual(('generic/aosp_cf_x86_64_phone/vsoc_x86_64:S/AOSP.MASTER/7363308:' 43*b7c941bbSAndroid Build Coastguard Worker 'userdebug/test-keys'), handler.get_system_fingerprint()) 44*b7c941bbSAndroid Build Coastguard Worker 45*b7c941bbSAndroid Build Coastguard Worker def test_get_system_fingerprint_without_buildprop(self): 46*b7c941bbSAndroid Build Coastguard Worker """Test TargetFileHandler get fingerprint raises exception if build.prop doesn't exist.""" 47*b7c941bbSAndroid Build Coastguard Worker build_file = './testdata/current_build_target-files.zip' 48*b7c941bbSAndroid Build Coastguard Worker handler = TargetFileHandler(build_file) 49*b7c941bbSAndroid Build Coastguard Worker with self.assertRaises(KeyError): 50*b7c941bbSAndroid Build Coastguard Worker handler.get_system_fingerprint() 51*b7c941bbSAndroid Build Coastguard Worker 52*b7c941bbSAndroid Build Coastguard Worker 53*b7c941bbSAndroid Build Coastguard Workerif __name__ == '__main__': 54*b7c941bbSAndroid Build Coastguard Worker unittest.main() 55