603fd7881f
The compile_platform template assumes that the output will be in the root-out-dir, and because of that the generated .deps file contains relative paths that only work if the output is in that folder. It would be nice to fix compile_platform to be more flexible about this, but for now moving the output up fixes the issue that modifications in the sdk were not triggering a rebuild. Change-Id: Ifc1e7adb23d6911a9f71c341b7968e0a9b1d4973 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126122 Reviewed-by: Nicholas Shahan <nshahan@google.com> Commit-Queue: Sigmund Cherem <sigmund@google.com>
67 lines
2.5 KiB
Markdown
67 lines
2.5 KiB
Markdown
# Testing of source maps
|
|
|
|
This folder contains two types of tests for validating sourcemaps:
|
|
the debugging behavior and the stacktrace behavior.
|
|
|
|
For both there are 2 suits: One for (legacy) DDC and one for DDC with kernel (DDK).
|
|
|
|
Running the tests likely requires the compilation of the correct targets. DDK currently also
|
|
requires `ddc_sdk.dill` inside
|
|
`{sdkroot}/{out,xcodebuild}/ReleaseX64/ddc_sdk.dill`.
|
|
|
|
Except for that, running them should simply be a matter of executing the `*_suite.dart` files.
|
|
|
|
All tests are plain Dart files and goes in "testfiles" (debugging tests) or "stacktrace_testfiles"
|
|
(stacktrace tests). They are automatically picked up by the testing framework.
|
|
|
|
## Debugging tests (step tests)
|
|
|
|
See `README.md` in `pkg/sourcemap_testing`.
|
|
|
|
### Debugging a test
|
|
|
|
One can filter which tests are run by running (from the sourcemap folder):
|
|
```
|
|
dart sourcemaps_ddc_suite.dart -- sourcemaps_ddc//printing_class_fields
|
|
```
|
|
|
|
One can additionally get debug output for failing tests (i.e. tests with different outcome than
|
|
expected), e.g.:
|
|
```
|
|
dart sourcemaps_ddc_suite.dart -Ddebug=true -- sourcemaps_ddc//printing_class_fields
|
|
```
|
|
|
|
The latter is also useful in combination with `/*fail*/` when adding new tests to see all the places
|
|
where the debugger stopped (both in JS positions and translated to dart positions).
|
|
|
|
For instance `-Ddebug=true -- sourcemaps_ddk//next_through_catch_test` with a `/*fail*/`
|
|
currently gives output like the following:
|
|
|
|
```
|
|
Stop #1
|
|
|
|
test.main = function() { | main() {
|
|
try { | try {
|
|
let value = /*STOP*/"world"; | var value = /*STOP*/"world";
|
|
dart.throw(dart.str`Hello, ${value}`); | // Comment
|
|
} catch (e) { | throw "Hello, $value";
|
|
|
|
Stop #2
|
|
|
|
try { | var value = "world";
|
|
let value = "world"; | // Comment
|
|
/*STOP*/dart.throw(dart.str`Hello, ${value}`); | /*STOP*/throw "Hello, $value";
|
|
} catch (e) { | }
|
|
let st = dart.stackTrace(e); | // Comment
|
|
|
|
Stop #3
|
|
|
|
dart.throw(dart.str`Hello, ${value}`); | }
|
|
} catch (e) { | // Comment
|
|
let st = /*STOP*/dart.stackTrace(e); | catch (e, /*STOP*/st) {
|
|
{ | print(e);
|
|
core.print(e); | print(st);
|
|
|
|
[...]
|
|
```
|