Honeydew

Honeydew is a test framework agnostic device controller written in Python that provides Host-(Fuchsia)Target interaction.

Supported host operating systems:

  • Linux

Assumptions:

  • This tool was built to be run locally. Remote workflows (i.e. where the Target and Host are not colocated) are in limited support, and have the following assumptions:
    • You use a tool like fssh tunnel or funnel to forward the Target from your local machine to the remote machine over a SSH tunnel
    • Only one device is currently supported over the SSH tunnel.
    • If the device reboots during the test, it may be necessary to re-run the fssh tunnel command manually again in order to re-establish the appropriate port forwards.
  • Fastboot CLI is present on the host and is included in $PATH environmental variable (required only if you need to use Fastboot transport).

Contributing

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.

Getting started

Data dependencies

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.

Best Practices

Here are some of the best practices that should be followed while contributing to Honeydew:

Honeydew code guidelines

Honeydew is a crowd sourced and community contributed library that is foundational to all Lacewing tests so we have curated a set of guidelines and conformance scripts to ensure its 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

Code Review Expectations

  • If you are making non-superficial changes to Honeydew, refer to Honeydew's Best Practices for general guidances.
  • Else, ensure conformance.sh passes right before merging the CL.

Interactive usage

If you like to use Honeydew in an interactive Python terminal refer to interactive usage.