This page describes how to write a shell test. If a test can be done with a
shell script, you can run it with ExecutableHostTest
. ExecutableHostTest
supports test filtering and
test sharding.
Write a shell test
Your main shell script runs on the host. Other scripts or binaries to run on
the device and the data files required must be pushed to the device first.
This can be done as part of the main script or using PushFilePreparer
.
If the test has device binary modules that should be installed alongside the
test, specify them with data_device_bins
property.
sh_test {
name: "module-name",
...
data_device_bins: ["target-name"],
}
Shell test ziptool-tests
is such an example.
The test result for each test is based on the exit status of your main script.
A test can timeout if per-binary-timeout
has been specified.
Configure a shell test
In Tradefed XML configuration, shell tests are run through the
ExecutableHostTest
runner.
<test class="com.android.tradefed.testtype.binary.ExecutableHostTest" >
<option name="binary" value="your-test-script.sh" />
<option name="relative-path-execution" value="true" />
<option name="per-binary-timeout" value="15m" />
</test>
Set the main script for the test as the value of the binary
option. Check out
other ExecutableHostTest
options.
If the script requires root privilege, add RootTargetPreparer
to the configuration.