trusty: Convert Trusty driver tests to python_test
Original tests are implemented as shell scripts here: https://android.googlesource.com/trusty/vendor/google/aosp/+/refs/heads/master/scripts/test-map#100 Bug: 219992178 Test: trusty_driver_test Change-Id: I8a55cb660bb0cb27bb4ef32aaa0658d0c17c36e3
This commit is contained in:
parent
0663b07f86
commit
ccc11f4969
3 changed files with 116 additions and 3 deletions
32
trusty/test/driver/Android.bp
Normal file
32
trusty/test/driver/Android.bp
Normal file
|
@ -0,0 +1,32 @@
|
|||
// Copyright (C) 2022 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.
|
||||
|
||||
package {
|
||||
// See: http://go/android-license-faq
|
||||
default_applicable_licenses: ["Android-Apache-2.0"],
|
||||
}
|
||||
|
||||
python_test {
|
||||
name: "trusty_driver_test",
|
||||
srcs: [
|
||||
"**/*.py",
|
||||
],
|
||||
test_suites: ["general-tests"],
|
||||
version: {
|
||||
py3: {
|
||||
embedded_launcher: true,
|
||||
enabled: true,
|
||||
},
|
||||
},
|
||||
}
|
81
trusty/test/driver/trusty_driver_test.py
Normal file
81
trusty/test/driver/trusty_driver_test.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
#!/usr/bin/python
|
||||
#
|
||||
# Copyright 2022 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.
|
||||
|
||||
"""Test cases for Trusty Linux Driver."""
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
def ReadFile(file_path):
|
||||
with open(file_path, 'r') as f:
|
||||
# Strip all trailing spaces, newline and null characters.
|
||||
return f.read().rstrip(' \n\x00')
|
||||
|
||||
def WriteFile(file_path, s):
|
||||
with open(file_path, 'w') as f:
|
||||
f.write(s)
|
||||
|
||||
def IsTrustySupported():
|
||||
return os.path.exists("/dev/trusty-ipc-dev0")
|
||||
|
||||
@unittest.skipIf(not IsTrustySupported(), "Device does not support Trusty")
|
||||
class TrustyDriverTest(unittest.TestCase):
|
||||
def testIrqDriverBinding(self):
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-irq/unbind", "trusty:irq")
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-irq/bind", "trusty:irq")
|
||||
|
||||
def testLogDriverBinding(self):
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-log/unbind", "trusty:log")
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-log/bind", "trusty:log")
|
||||
|
||||
@unittest.skip("TODO(b/142275662): virtio remove currently hangs")
|
||||
def testVirtioDriverBinding(self):
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-virtio/unbind",
|
||||
"trusty:virtio")
|
||||
WriteFile("/sys/bus/platform/drivers/trusty-virtio/bind",
|
||||
"trusty:virtio")
|
||||
|
||||
@unittest.skip("TODO(b/142275662): virtio remove currently hangs")
|
||||
def testTrustyDriverBinding(self):
|
||||
WriteFile("/sys/bus/platform/drivers/trusty/unbind", "trusty")
|
||||
WriteFile("/sys/bus/platform/drivers/trusty/bind", "trusty")
|
||||
|
||||
def testTrustyDriverVersion(self):
|
||||
ver = ReadFile("/sys/bus/platform/devices/trusty/trusty_version")
|
||||
self.assertTrue(ver.startswith("Project:"))
|
||||
|
||||
def testUntaintedLinux(self):
|
||||
tainted = ReadFile("/proc/sys/kernel/tainted")
|
||||
self.assertEqual(tainted, "0")
|
||||
|
||||
# stdcall test with shared memory buffers.
|
||||
# Each test run takes up to 4 arguments:
|
||||
# <obj_size>,<obj_count=1>,<repeat_share=1>,<repeat_access=3>
|
||||
#
|
||||
# Test single 4K shared memory object.
|
||||
# Test 10 8MB objects, shared twice, each accessed twice. (8MB non-
|
||||
# contiguous object is large enough to need several 4KB messages to
|
||||
# describe)
|
||||
# Test sharing 2 8MB objects 100 times without accessing it.
|
||||
# Test 10 4K shared memory objects, shared 10 times, each accessed
|
||||
# 10 times.
|
||||
def testStdCall(self):
|
||||
test = "/sys/devices/platform/trusty/trusty:test/trusty_test_run"
|
||||
args = "0x1000 0x800000,10,2,2 0x800000,2,100,0 0x1000,10,10,10"
|
||||
WriteFile(test, args)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
|
@ -13,7 +13,7 @@
|
|||
# limitations under the License.
|
||||
|
||||
PRODUCT_PACKAGES += \
|
||||
spiproxyd \
|
||||
trusty_keymaster_set_attestation_key \
|
||||
keymaster_soft_attestation_keys.xml \
|
||||
|
||||
spiproxyd \
|
||||
trusty_driver_test \
|
||||
trusty_keymaster_set_attestation_key \
|
||||
|
|
Loading…
Reference in a new issue