xref: /aosp_15_r20/cts/tools/incremental-cts/target_file_handler_test.py (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
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