# Setup
1. Install required dependencies for building: `sudo apt-get install curl unzip python python2`.
2. Change directory to the root of the repo: `cd fuchsia-benchmarks` and run the setup script `./scripts/download-build-tools.sh`
3. Generate ninja files: ./buildtools/linux64/gn gen out/core.astro-release --args='target_os="fuchsia" target_cpu="arm64"'
4. Build: ./buildtools/linux64/ninja -C out/core.astro-release
5. Start the package server: ./third_party/fuchsia-sdk/bin/fserve.sh

# Dhrystone Benchmark
See https://en.wikipedia.org/wiki/Dhrystone.

## How to Run
1. Follow previous steps from the Setup section
2. Publish the Dhrystone component: ./third_party/fuchsia-sdk/bin/fpublish.sh out/core.astro-release/gen/third_party/dhrystone/dhrystone/dhrystone.far
3. Run the benchmark: ./third_party/fuchsia-sdk/bin/fssh.sh run fuchsia-pkg://fuchsia.com/dhrystone#meta/dhrystone.cmx 10

* This is not an officially supported Google product*
