Honeydew is a test framework agnostic device controller written in Python that provides Host-(Fuchsia)Target interaction.
Supported host operating systems:
Assumptions:
fssh tunnel
or funnel
to forward the Target from your local machine to the remote machine over a SSH tunnelfssh tunnel
command manually again in order to re-establish the appropriate port forwards.$PATH
environmental variable (required only if you need to use Fastboot transport).One of Honeydew's primary goals is to make it easy for anyone working on host target interactions to contribute.
Honeydew is meant to be the one stop solution for any Host-(Fuchsia)Target interactions. We can only make this possible when more people contribute to Honeydew and add more and more interactions that others can also benefit.
Honeydew, as packaged by the GN build system, comes bundled with some of its data dependencies. However, if Honeydew is run outside of the build system, or if users wish to override with custom data dependencies, the following environment variables can be specified:
HONEYDEW_FASTBOOT_OVERRIDE
: Absolute path to fastboot
binary.Here are some of the best practices that should be followed while contributing to Honeydew:
group("tests")
section in the BUILD.gn
file (located in the same directory as unit test).group("tests")
section in the top level Honeydew unit tests BUILD file.group("tests")
section in the top level Honeydew functional tests BUILD file.There is a conformance script that users may optionally run to ensure the Honeydew codebase's uniformity, functional correctness, and stability.
To learn more, refer to Honeydew code guidelines.
Note - Prior to running this, please make sure to follow Setup
Running cd $FUCHSIA_DIR && sh $FUCHSIA_DIR/src/testing/end_to_end/honeydew/scripts/conformance.sh
successfully will ensure you have followed the guidelines. Run this script and fix any errors it suggests.
Once the script has completed successfully, it will print output similar to the following:
INFO: Honeydew code has passed all of the conformance steps
If you like to use Honeydew in an interactive Python terminal refer to interactive usage.