blob: 709201465085dd306231c081108ea6e561104481 [file] [log] [blame] [view]
# Echo Example
This directory contains a simple example using program arguments and environment
variables in [Component Framework](/docs/concepts/components/introduction.md).
## Building
If these components are not present in your build, they can be added by
appending `--with //examples` to your `fx set` command. For example:
```bash
$ fx set core.x64 --with //examples --with //examples:tests
$ fx build
```
## Running
Use `ffx component run` to launch this component into a restricted realm
for development purposes:
- **C++**
```bash
$ ffx component run /core/ffx-laboratory:echo_cpp fuchsia-pkg://fuchsia.com/echo-example#meta/echo_cpp.cm
```
- **Rust**
```bash
$ ffx component run /core/ffx-laboratory:echo_rust fuchsia-pkg://fuchsia.com/echo-example#meta/echo_rust.cm
```
When the above command is run, you can see the following output with `fx log`:
```
[echo] INFO: Hello, Alice, Bob, Spot!
```
## Testing
Unit tests for echo are available in the `echo-unittests` package.
Use the `ffx test run` command to run the tests on a target device:
- **C++**
```bash
$ ffx test run fuchsia-pkg://fuchsia.com/echo-cpp-unittests#meta/echo-cpp-unittests.cm
```
You should see each of the unit tests execute and pass:
```
[RUNNING] EchoTest.TestGreetOne
[PASSED] EchoTest.TestGreetOne
[RUNNING] EchoTest.TestGreetTwo
[PASSED] EchoTest.TestGreetTwo
[RUNNING] EchoTest.TestGreetThree
[PASSED] EchoTest.TestGreetThree
3 out of 3 tests passed...
fuchsia-pkg://fuchsia.com/echo-cpp-unittests#meta/echo-cpp-unittests.cm completed with result: PASSED
```
- **Rust**
```bash
$ ffx test run fuchsia-pkg://fuchsia.com/echo-rust-unittests#meta/echo-rust-unittests.cm
```
You should see each of the unit tests execute and pass:
```
Running test 'fuchsia-pkg://fuchsia.com/echo-rust-unittests#meta/echo-rust-unittests.cm'
[RUNNING] tests::test_greet_one
[RUNNING] tests::test_greet_two
[RUNNING] tests::test_greet_three
[PASSED] tests::test_greet_one
[PASSED] tests::test_greet_two
[PASSED] tests::test_greet_three
3 out of 3 tests passed...
```