Files
sdk/pkg/dtd_impl
Ben Konyi e698eed7c7 [DTD] Fix relative path preservation in symbolic link resolution
_resolveNearestExistingPath safely resolves symbolic links by traversing up the tree until an ancestor exists, but it previously dropped the components of the path that were skipped. This causes non-existent dummy paths used in tests to incorrectly resolve to filesystem roots (like C:\ on Windows or / on POSIX), causing permission check failures.

This fix computes the relative path suffix between the original path and the closest existing ancestor using path.relative, and appends it back to the resolved path with path.join. POSIX dummy path coverage has also been added to verify identical behavior across platforms.

Fixes: https://github.com/dart-lang/sdk/issues/63147
Change-Id: Iac908998f052ad9054e8213ba059156a5982a301
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/495000
Reviewed-by: Jessy Yameogo <yjessy@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
Commit-Queue: Jessy Yameogo <yjessy@google.com>
2026-04-13 16:12:47 -07:00
..

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

Running the Dart Tooling Daemon

Compiled version

To run the tooling daemon compiled with the Dart SDK:

  1. Build the Dart SDK
  • make sure to build with create_platform_sdk
  • e.g. ./tools/build.py create_platform_sdk
  1. 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:

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/