Igor Murashkin be04ce1b77 startop: Re-enable iorapd presubmit tests
This works-around the issue of the device rebooting by using shell
commands in DeviceSetup.

The downside is that this leaves the device in a semi-bad state
(there's no way to run shell commands *after* a test to restore
the regular iorapd). We assume it's ok because the TF harness
will reboot the devices for each new type of test.

Bug: 136200738
Bug: 134774708
Change-Id: I0e5efad4a1c76c5abc89c3bec77e2c6babcba261
2019-07-10 20:51:20 +00:00

67 lines
3.1 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2018 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.
-->
<configuration description="Runs libiorap-java-tests.">
<option name="test-suite-tag" value="apct" />
<option name="test-suite-tag" value="apct-instrumentation" />
<target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
<option name="cleanup-apks" value="true" />
<option name="test-file-name" value="libiorap-java-tests.apk" />
</target_preparer>
<!--
Our IIorapIntegrationTest.kt requires setlinux to be disabled:
it connects to the iorapd binder service but this requires selinux permissions:
avc: denied { find } for service=iorapd pid=2738 uid=10050
scontext=u:r:platform_app:s0:c512,c768 tcontext=u:object_r:iorapd_service:s0
tclass=service_manager permissive=0
-->
<target_preparer class="com.android.tradefed.targetprep.DisableSELinuxTargetPreparer">
</target_preparer>
<!-- do not use DeviceSetup#set-property because it reboots the device b/136200738.
furthermore the changes in /data/local.prop don't actually seem to get picked up.
-->
<target_preparer
class="com.android.tradefed.targetprep.DeviceSetup">
<!-- we need this magic flag, otherwise it always reboots and breaks the selinux -->
<option name="force-skip-system-props" value="true" />
<!-- Crash instead of using Log.wtf within the system_server iorap code. -->
<option name="run-command" value="setprop iorapd.forwarding_service.wtf_crash true" />
<!-- IIorapd has fake behavior: it doesn't do anything but reply with 'DONE' status -->
<option name="run-command" value="setprop iorapd.binder.fake true" />
<!-- iorapd does not pick up the above changes until we restart it -->
<option name="run-command" value="stop iorapd" />
<option name="run-command" value="start iorapd" />
<!-- give it some time to restart the service; otherwise the first unit test might fail -->
<option name="run-command" value="sleep 1" />
</target_preparer>
<test class="com.android.tradefed.testtype.AndroidJUnitTest" >
<option name="package" value="com.google.android.startop.iorap.tests" />
<option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
</test>
<!-- using DeviceSetup again does not work. we simply leave the device in a semi-bad
state. there is no way to clean this up as far as I know.
-->
</configuration>