| # Dart Tooling Daemon |
| |
| The server implementation for the Dart Tooling Daemon. This is meant to be run |
| by our internal tooling and facilitates communication between our internal |
| tools. |
| |
| For details on the protocol used to communicate with the Dart Tooling Daemon see |
| [The DTD Protocol](./dtd_protocol.md) |
| |
| ## Running the Dart Tooling Daemon |
| |
| ### Compiled version |
| |
| To run the tooling daemon compiled with the Dart SDK: |
| |
| 1. [Build the Dart SDK](https://github.com/dart-lang/sdk/wiki/Building) |
| |
| - make sure to build with `create_platform_sdk` |
| - e.g. `./tools/build.py create_platform_sdk` |
| |
| 2. run `dart tooling-daemon` |
| > :info The dart binary should be the one you just built in step 1. |
| |
| ### Testing changes locally |
| |
| To quickly test changes to the tooling daemon, start it by running: |
| |
| ```bash |
| dart run bin/dtd.dart |
| ``` |
| |
| ## Running tests |
| |
| To run the tests under the `test/` directory, run `dart test test/`. |
| |
| However, if you are testing changes that span `pkg/dtd` and `pkg/dtd_impl`, |
| you'll need to build the Dart SDK, and then use the built Dart executable to run |
| the test. |
| |
| 1. Build the Dart SDK: `./tools/build.py create_platform_sdk` |
| 2. Run the test: `xcodebuild/ReleaseARM64/dart-sdk/bin/dart test test/` |