Commit Graph

836 Commits

Author SHA1 Message Date
Mayank Patke cc0527decb Remove babel from DEPS and (dart2js) IE support from test infra.
Tested: N/A
Change-Id: Ib1804b49c40cac9be52e732090e8160444ebb48d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417948
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2025-03-28 11:26:47 -07:00
Mayank Patke 945b031f5e Delete js_platform_hostasserts fileset.
The hostasserts and non-hostasserts filesets do not differ significantly
and can be merged for ease of maintenance. The cost of copying extra
files is small compared to building, and we currently lack the
granularity to see meaningful savings in builds if we keep them separate.

Change-Id: If8e3dd1013f60b05dabb104c632abd7a1638fe1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417947
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2025-03-28 11:26:47 -07:00
Ömer Ağacan ce2a048f30 [infra] Update test matrix with dart2wasm --minify tests
Change-Id: I1911eb2bedbff2c6b2b075b8f0ccd6947f08c561
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/416980
Reviewed-by: Ivan Inozemtsev <iinozemtsev@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2025-03-24 08:48:04 -07:00
Ömer Sinan Ağacan bb0184365d [dart2wasm, infra] Add dart2wasm minify test configuration
Change-Id: I4639bcad207b7832c6eb2f77a1751ebb03a84bbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/415583
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2025-03-19 02:43:18 -07:00
Nate Biggs d5f82b7054 [dart2wasm] Add dynamic module tests to dart2wasm test builders.
3 failing tests have been approved.

Change-Id: Ia38cbce99e739f2ce67d0d60236b3006635837ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/414163
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2025-03-07 09:52:01 -08:00
Alexander Thomas ae5a55bca0 [infra] Remove CFE weak testing steps
Change-Id: I17194ecd70dbed796de6a867655631e8d40cf91b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/413780
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2025-03-06 01:04:40 -08:00
Martin Kustermann 20fc102287 [dart2wasm] Switch to only using JS strings
Currently we have 3 different string types (JS Strings, OneByteString
and TwoByteString)s. There's some advantages to this, mainly that
if strings are used purely inside Dart we have more control over
optimizing them. But it does come with some issues

* Operations on mixture of strings are slow
* We get JS strings from outside (in DevTools e.g. websocket messages)
* Any kind of DOM interaction requires copying strings
* Regular expression matches can result in O(N*N) instead of O(N)
* Encoding of string literals/constants is terrible, high size overhead
* ...

Now that there's a standardized way to access JS strings (via
the `js-string` builtin spec) and this standard is finalized and
enabled in Chrome & Firefox it makes sense for us to switch to it.

It reduces app size:

* Smaller size: hello world -25%, flute -5.5%
* Faster startup

The performance changes are nuanced, some workloads will improve
significantly, some workloads will regress.

Improvements will come especially in cases where
strings are concatenated (due to JS not actually allocating new
strings in this case). That impacts e.g. string interpolations,
string buffer, json-to-string encoding, ...

Regressions will come especially for cases where we have to
construct strings from bytes (e.g. in utf8 decoder, utf8+json
decoder) - mainly due to having to go through an intermediary
`WasmArray<WasmI16>` to allocate strings. Also in cases where we
access individual char codes from the strings.

There's some follow-up improvements we can do, but it's better to
not iterate on this CL even longer but get it landed.

This CL will make the benchmarking system use
`--require-js-string-builtin` as well as most of test CI
(in `pkg/dart2wasm/tool/compile_benchmark`)

Though we run some configurations via overriding with
`--no-require-js-string-builtin`
(in `tools/bots/test_matrix.json`)

Issue https://github.com/flutter/flutter/issues/159400#issuecomment-2538593980
Issue https://github.com/dart-lang/sdk/issues/59699

TEST=ci

Change-Id: I238ac65efe092de569da870f23134f889ac929f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/392903
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2025-02-27 00:33:34 -08:00
Mayank Patke 0c55c7e573 Remove unsound web configurations from test matrix.
This CL also removes references to unsound .dill files from the test
matrix and other build scripts and disables some of the option handling
that would lead to requiring unsound .dill files.

Change-Id: I89f701f8f5e1168bf974b5b44bfbafd5a39954fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/412401
Reviewed-by: Nate Biggs <natebiggs@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2025-02-26 15:57:55 -08:00
Ryan Macnak 690b380a6a [infra] Add configuration for testing SIMARM64 on ARM64.
Bug: https://github.com/dart-lang/sdk/issues/60204
Change-Id: Id49d144bedb7eb2047ee1cc36dd737bff62e808e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/411840
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2025-02-25 13:22:17 -08:00
Martin Kustermann 3b750c5545 [dart2wasm] Generate *.support.js feature detection files
The file will contain a JS expression that evaluates to a boolean.
If it (at runtime) evalutes to

  * `true` it means that all required features are supported by the JS
    environment and the dart2wasm-compiled app can be used

  * `false` it means some features were not present in the JS
    environment and the dart2wasm-compiled app shouldn't be used,
    instead a dart2js fallback may be used

We introduce this mechanism to allow users, at compilation time, to tell
dart2wasm to take advantage of new spec features and allow the runtime
to self-detect whether they are available and fallback to dart2js if
not.

The first feature we introduce (already in this PR) is
`--require-js-string-builtin` that will tell dart2wasm it can assume the
`js-string` builtin is available (and emit corresponding `*.support.js`
code to detect it).

If the flag was passed, we take advantage of the `js-string` import
mechanism for string constants that doesn't require emitting them in the
mjs file (which significantly reduces code size and improves startup
time - compared with emitting JS strings in the mjs file).

We enable `--require-js-string-builtin` on one CI configuration for
testing that if we don't use any polyfill, the imports of the builtin
functions as well as magical utf8-encoded wasm imports work.

We also use a template mechanism to generate `*.mjs` as the code
becomes more readable (e.g. to conditionally include the js string
polyfill)

Issue https://github.com/dart-lang/sdk/issues/59951

Change-Id: Ic7e7818a2d5269095935022941352beeb9fed731
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408781
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2025-02-10 06:17:49 -08:00
David Morgan 126af93f38 Remove macros build tests.
Change-Id: I2e86ecb8298713597780b23416e3bf1832cfd50e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406821
Commit-Queue: Morgan :) <davidmorgan@google.com>
Reviewed-by: Moritz Sümmermann <mosum@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2025-01-30 09:11:16 -08:00
Martin Kustermann 9b33264ed1 [dart2wasm] Keep static symbols in dart2wasm-*optimized-* builders
The optimized builders run with binaryen which by default strips static symbols
(in all -Ox modes). So we'll pass `--no-strip-wasm` to `dart compile
wasm` in order to keep the static symbols.

This makes stack traces have the symbols in them which will make tests
that rely on that more likely to work.

Change-Id: I9e0eab8c4ec50ef3a7208551d04a80e9ffa009e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406241
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2025-01-28 01:06:54 -08:00
Alexander Aprelev 52a528280a [infra] Split build steps for aot-win-{debug,release}-arm64 to avoid timeouts.
Number of targets per splits are 982/800/1829.

Example of failing build https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/vm-aot-win-debug-arm64/1084

Change-Id: I59ee16768c30ad4b5940cb745d92dcd874a0bbf2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406040
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2025-01-27 21:31:43 -08:00
Ryan Macnak c3dd74ba05 [infra] Split build steps for vm-win-{debug,release}-arm64 to avoid timeouts.
Change-Id: I720be4bdb27fe41c76f4d485d9a6d9ce5b7a5357
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404700
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2025-01-21 10:20:29 -08:00
Alexander Aprelev 0836d36dc7 [infra] Adjust build windows-arm64 split to avoid timeouts.
Fixes https://ci.chromium.org/ui/p/dart/builders/ci.sandbox/pkg-win-release-arm64/3781.

With new split the steps are distributed roughly like this:
```
$ RBE=0 tools/build.py -mrelease -ax64  gen_snapshot
[982/982] LINK ./gen_snapshot
The build took 39.285 seconds
$ RBE=0 tools/build.py -mrelease -ax64 runtime/bin:dart runtime/bin:run_vm_tests
[1392/1392] LINK ./run_vm_tests
The build took 97.936 seconds
$ RBE=0 tools/build.py -mrelease -ax64 runtime
[1223/1223] ACTION //utils/kernel-service:frontend_server_aot_product(//build/toolchain/linux:clang_x64)
The build took 97.168 seconds
$ RBE=0 tools/build.py -mrelease -ax64 create_sdk ddc_stable_test
[402/402] COPY gen/dart2js_aot_product.dart.snapshot dart-sdk/bin/snapshots/dart2js_aot.dart.snapshot
The build took 100.373 seconds
```

Also add Ryan to the OWNERS_INFRA.

Change-Id: Ibbf1a13ccd33d7bcb366ac864b05e960e5d73b8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404201
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2025-01-13 13:04:42 -08:00
Jens Johansen 86ff64c97d [CFE] Fix weekly but needing dart2js_platform_unsound.dill
The weekly bot currently fails because the weak suite no longer have
dart2js_platform_unsound.dill available. This CL fixes that.

Change-Id: I2a8e71b6b8ce1ec9a9aa3d9456245c217f8ac26d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404102
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2025-01-13 01:47:30 -08:00
Nicholas Shahan c1ce43fd83 [ddc] Remove unsound dart2js dependency
DDC does not depend on the stack trace mapper application being built
with unsound null safety so the unsound .dill files are unused.

Add the unsound .dill files to the `dart2js_bot` target because they
are dependencies of the `dart2js-hostasserts-linux-unsound` and
`dart2js-unit-linux-x64-release` configurations.

Update build step of `front-end-linux-release-x64` configuraton to
build the dart2js_bot target instead of relying on the unsound
dart2js .dill files through the `ddc_stable_test` target.

Change-Id: Ia29740b60f93d1d0b4a978ff5e37080e537401a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403382
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2025-01-08 15:10:26 -08:00
Siva Annamalai d87b6d5f36 Reland "[SDK] Second step in removing references to dart_precompiled_runtime"
This reverts commit 630e262833.

Reason for revert: Failing golem benchmarks were already failing from before this CL

TEST=ci

Original change's description:
> Revert "[SDK] Second step in removing references to dart_precompiled_runtime"
>
> This reverts commit 85765475d3.
>
> Reason for revert: breaks dart2wasm golem benchmarks
>
> Original change's description:
> > [SDK] Second step in removing references to dart_precompiled_runtime
> >
> > TEST=ci
> >
> > Change-Id: I7b625de2090aa31fd649f0f67055c032f5878772
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395065
> > Reviewed-by: Alexander Aprelev <aam@google.com>
> > Commit-Queue: Siva Annamalai <asiva@google.com>
>
> Change-Id: I524191ca9e26bb1d298eb56543bc0f419bfab4d3
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395462
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Brian Quinlan <bquinlan@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>

Change-Id: I2ec45bb7cad086ed66a9a41df2d19b4c1fdcb131
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395640
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2024-11-15 18:27:36 +00:00
Siva Annamalai 630e262833 Revert "[SDK] Second step in removing references to dart_precompiled_runtime"
This reverts commit 85765475d3.

Reason for revert: breaks dart2wasm golem benchmarks

Original change's description:
> [SDK] Second step in removing references to dart_precompiled_runtime
>
> TEST=ci
>
> Change-Id: I7b625de2090aa31fd649f0f67055c032f5878772
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395065
> Reviewed-by: Alexander Aprelev <aam@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>

Change-Id: I524191ca9e26bb1d298eb56543bc0f419bfab4d3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395462
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Brian Quinlan <bquinlan@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-11-15 00:36:18 +00:00
asiva 85765475d3 [SDK] Second step in removing references to dart_precompiled_runtime
TEST=ci

Change-Id: I7b625de2090aa31fd649f0f67055c032f5878772
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/395065
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-11-14 23:22:37 +00:00
asiva 8b2b6b2440 Reland ""[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory""
This reverts commit 74c5aa3a7a.

Reason for revert: Fix golem breakage by not changing the script dart_precompiled_runtime2

TEST=ci

Original change's description:
> Revert ""[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory""
>
> This reverts commit f81a402aa1.
>
> Reason for revert: golem benchmarks are failing to run
>
> TEST=ci
>
> Original change's description:
> > "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
> >
> > Fixed golem breakage by temporarily copying dartaotruntime to dart_precompiled_runtime
> >
> > This reverts commit 75e6a748f7.
> >
> > TEST=ci
> >

Change-Id: I9efe40643c59bc617f6fb484b89b038deaffbb93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393941
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-11-08 04:36:23 +00:00
Siva Annamalai 74c5aa3a7a Revert ""[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory""
This reverts commit f81a402aa1.

Reason for revert: golem benchmarks are failing to run

TEST=ci

Original change's description:
> "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
>
> Fixed golem breakage by temporarily copying dartaotruntime to dart_precompiled_runtime
>
> This reverts commit 75e6a748f7.
>
> TEST=ci
>
> Original change's description:
> > Revert "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
> >
> > This reverts commit 1b331d05c2.
> >
> > Reason for revert: golem builds are failing
> >
> > Original change's description:
> > > [SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory
> > >
> > > TEST=ci
> > >
>
> Change-Id: Id0f383eabb496c06c0acebc639c8e3b056ba82d0
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393781
> Commit-Queue: Siva Annamalai <asiva@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>

Change-Id: Iec494940412aa31dbefdc5280e35ae99e8cecb26
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393764
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-11-06 05:37:46 +00:00
asiva f81a402aa1 "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
Fixed golem breakage by temporarily copying dartaotruntime to dart_precompiled_runtime

This reverts commit 75e6a748f7.

TEST=ci

Original change's description:
> Revert "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
>
> This reverts commit 1b331d05c2.
>
> Reason for revert: golem builds are failing
>
> Original change's description:
> > [SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory
> >
> > TEST=ci
> >

Change-Id: Id0f383eabb496c06c0acebc639c8e3b056ba82d0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393781
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-11-06 03:10:31 +00:00
Siva Annamalai 75e6a748f7 Revert "[SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory"
This reverts commit 1b331d05c2.

Reason for revert: golem builds are failing

Original change's description:
> [SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory
>
> TEST=ci
>
> Change-Id: I96ed52994e0d955300c18026032e68003504666d
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389760
> Reviewed-by: Ryan Macnak <rmacnak@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>

Change-Id: I5dc14973f4ee4e577b2c996839d5e497c97fb440
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393761
Commit-Queue: Siva Annamalai <asiva@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-11-05 21:58:09 +00:00
asiva 1b331d05c2 [SDK/VM] - Rename dart_precompiled_runtime to dartaotruntime, ensures we have a uniform name for the executable between the build directories and the SDK directory
TEST=ci

Change-Id: I96ed52994e0d955300c18026032e68003504666d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/389760
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2024-11-05 20:39:15 +00:00
Alexander Aprelev 7829369956 [builders] Add simriscv32 builders.
This is follow-up to a6547c58f6cff5b608938d553d6fccdb59879ffc

Change-Id: I7d2c6584eb1cb5d694eda2c79ad323ffb7a7dffc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/393520
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2024-11-05 01:43:01 +00:00
Lasse R.H. Nielsen f8086c81ae Collect all test-related files in package:expect.
Collects files from `package:async_helper` and `tests/language`
that are generally useful, so that all test-related helpers are
in `package:expect`.

Moves the two libraries from `package:async_helper` into `package:expect`,
and the `tests/language/static_type_helper.dart` file too.

Deprecates `async_minitest.dart`, to follow `minitest.dart`,
expecting the Flutter use of it to have been fixed to not break
on deprecation (I believe Flutter no longer breaks builds on deprecations at all).

Patch 1 is the actual change.
Patch 2+4+8 is changing all existing references to the files.
Patch 6 ignores deprecation in files still using `async_minitest.dart`.

3+5+7+9 are updating this text to make the numbers match.
Then it's just test-expectations and small tweaks from there.

Change-Id: I1b665135b5fef9b9a0c3b340ffe9daf874d0174c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373120
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-10-11 16:53:52 +00:00
Nate Biggs 963c28a114 [dart2wasm] Allow tests to override jscm mode.
This allows tests that would fail in JS compatibility mode (e.g. tests that do a lot of string manipulation) to disable the mode for their own execution.

Also ensure dart2wasm-*-jscm-* builds do a "create_sdk" so that the dart2js platform dill is available for the test.

The alternative I considered was skipping the test but "--js-compatibility" is a dart2wasm-specific flag and the test infra is unaware of it so we can't skip the test via a status file.

Bug: https://github.com/dart-lang/sdk/issues/56858
Change-Id: I60179eaab2e4522acf1fe0b47c7c02ccb1ca957b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388644
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2024-10-08 13:16:19 +00:00
Nicholas Shahan 5e042e9199 [ddc] Reduce number of shards for firefox co19
This is a followup to
https://dart-review.googlesource.com/c/sdk/+/386900.

Since manually sharding the co19 tests on the firefox configuration
by subdirectories there have been no infrastructure failures on the
ddc-linux-firefox bot.

This change reduces the number of shards per each subdirectory
shard as an experiment to see if this will cause one of them to start
causing failures.

Change-Id: I1d8e0440134ade0c4c0be91e7ad8278b7bcacb01
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/388068
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-10-04 22:06:31 +00:00
Nate Biggs 68552a56bc [dart2wasm] Fix module stress tests.
After these changes the tests pass 100% of the time on all expected configurations.

- Emit 'unittest-suite-wait-for-done' at the start of tests to allow for async code loading. Tests must therefore emit 'unittest-suite-done' when they complete. Calling `asyncStart` and `asyncEnd` helpers will achieve this.
- Fix test_runner runtime.
- Add file deps on necessary files (dart2js platform dill & flute) to dart2wasm_hostasserts config.
- Mark dart2js compilation test as slow.

Change-Id: Iee993deb3905ccd50068325a5c5fd0bf0512a513
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/386980
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-09-27 15:03:01 +00:00
Nicholas Shahan a945e05d79 [ddc] Manually shard co19 tests in firefox
This is an initial step in the investigation to determine if there are
specific tests causing the infra failures on the ddc-linux-firefox
configuration. Tests will still be randomly distributed across shards
but now clustered with the other tests in the immediate sub-directory.

If we find only certain sub-directories cause the flakes then we can
investigate those further to pinpoint the issue.

Change-Id: Idfdc4a4aab0b9f6307703136dd505a27c01ec3f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/386900
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-09-26 05:24:24 +00:00
Alexander Thomas c26055ab23 Make analyzer-mac usable on arm64 macs
* Switch analyzer-mac to be an arm64 configuration.
* Remove deprecated analyzer_cli testing.

Bug: https://github.com/dart-lang/sdk/issues/56660
Change-Id: I22f06d3cf50e7f7e6b3fa6146d6393f6e912bdf5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384761
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2024-09-24 13:02:32 +00:00
Srujan Gaddam 7b47c74214 [test_runner] Support hot reload format and enable it in ddc-linux-canary-chrome
There are some slight differences between DDC module format and
the hot reload format in terms of how libraries are imported
and the app is started. Refactor code to allow the AMD, DDC,
and hot reload formats to be supported. Enables the hot reload
format by default in ddc-linux-canary-chrome.

Change-Id: I8138f5f83771dfb9aa02fe59063fccaae6af372f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384901
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2024-09-13 16:18:28 +00:00
Sigmund Cherem fd3cb424e2 [dynamic_modules] Run dynamic module tests in CQ
* Adds support to emit log records for test outcomes and failure logs
* Adds steps to the test_matrix

Change-Id: Ibabf0410a0304aae446387a0d3ca147488f56df3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/383929
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2024-09-12 15:36:40 +00:00
MarkZ 0aba085523 [ddc] Disabling hot reload tests on non-canary mac bots.
Hot reload tests were updated to depend on our canary SDK, which isn't generated for our mac bots.

Fixes some of our bot purpleness.

Change-Id: I92f81cc5122364fafa1c444b14114584fb48ae3c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384582
Auto-Submit: Mark Zhou <markzipan@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2024-09-11 00:03:50 +00:00
Nicholas Shahan f528ebb99b [ddc] Add safari test configuration
Change-Id: Ife50bebc380b2ecfdc2311245d4811dae5f5b2b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380210
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-09-10 17:45:19 +00:00
Nicholas Shahan ec0445ae79 [ddc] Add hot restart to new ddc module format
Add a simple implementation that throws out all libraries and runs the
main method again which triggers all libraries to be initialized with
fresh values.

Move the hot reload tests to the ddc canary test configuration
since that is where the support works at this time.

Update frontend server to use the use the new version of the DDC
LibraryCompiler when the emit library bundle option is true.

Change-Id: I6eba613106672536ef8bfcb0ff0a55749e2fb63c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381902
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2024-09-09 17:58:56 +00:00
Martin Kustermann 093a0f84fa [dart2wasm] Give *-optimized-* configurations 2x the time (as they also run the binaryen optimizer)
Change-Id: I5f5ed06ece48e3357b6a90be5f9866d88a3b4f30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/383862
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2024-09-05 09:29:16 +00:00
Ivan Inozemtsev ad15bc4b47 Add support for iOS target os
- `build/mac/find_sdk.py` can search for iPhone and Watch SDKs and their simulators
- `tools/build.py` supports `--os=ios` and `-os=ios_simulator` now. Treating simulator as a separate os to minimize changes and avoid an additional dimension for configs.
- `vm-mac-(release|debug)-arm64-try` tryjobs make sure a shared library builds successfully for ios.

TEST=ci

Change-Id: I76358ec8fd33752260bf0b8462da22a13cd7562e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381623
Auto-Submit: Ivan Inozemtsev <iinozemtsev@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-09-03 19:53:58 +00:00
Alexander Markov 5377cb5c12 [bots] Add vm-aot-dyn-linux-debug-x64 builder configuration
Change-Id: I176e2bab919a5f5d3c1f01142dce0f8f8c80fb85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380584
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-08-19 16:34:26 +00:00
Alexander Markov 3d8829fad2 Add dart2bytecode snapshot and VM/AOT dynamic modules test configurations
Change-Id: I84f8dbc174dbac5a11ca84e248c7aecb3759aaad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380283
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-08-15 15:28:25 +00:00
Nicholas Shahan 570ed43611 [ddc] Turning down unsound testing on canary (6)
Stop running co19 suite on the ddc-canary-linux-chrome bot.
Cleanup temporary skips from status file.

These changes are staged across multiple CLs to avoid crashing
the infra when too many tests status changes need to be uploaded
at the same time.

Change-Id: I378954fc0cbb47c0f54edf158b3b7c38744bf0b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379525
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-08-14 21:31:30 +00:00
Nicholas Shahan 6c9b36fdc9 [ddc] Turning down unsound testing on canary (2)
Stop running language suite on the ddc-canary-linux-chrome bot.

These changes are staged across multiple CLs to avoid crashing
the infra when too many tests status changes need to be uploaded
at the same time.

Change-Id: I68916c86010a7291c2535c3d61325c3a44dc2a8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379521
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-08-08 17:47:31 +00:00
Nicholas Shahan 8bfd59d77d [ddc] Turning down unsound testing on canary (1)
Stop running corelib, dartdevc, lib, and web suites on the
ddc-canary-linux-chrome bot.

These changes are staged across multiple CLs to avoid crashing
the infra when too many tests status changes need to be uploaded
at the same time.

Change-Id: I60fa5f9acff12081bea0f7756d43f8ab313d91ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379520
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-08-07 21:18:49 +00:00
Martin Kustermann e18c43a21e [dart2wasm] Add dart2wasm-asserts-* configurations
Our tests (including code in core libraries) are never run with
assertions enabled.

=> Add the necessary configuration support in test_matrix.json
=> We'll then add a new builder running one configuration with asserts.

Change-Id: Id1bc27ddf7d683846510af4711679ad14f0e4168
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370620
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-06-10 14:24:12 +00:00
Devon Carew cb64e64ccc [third_party/pkg] put package:dap and package:language_server_protocol under analysis
Change-Id: Ie1a48956055fa0f4ebcd85e5d2b762021fc074d7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/370101
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Sam Rawlins <srawlins@google.com>
2024-06-07 19:33:13 +00:00
Ryan Macnak 12e5feec19 Restore ARM32 GCC testing.
Bug: https://github.com/dart-lang/sdk/issues/52080
Bug: https://github.com/dart-lang/sdk/issues/55669
Change-Id: Ic248f9f25e4fa2a6ed4471eff57062c5eb2d8af1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/367641
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-05-28 22:50:19 +00:00
Jens Johansen 213e679f59 Reapply "[CFE] Coverage on try bot"
This reverts commit 60a52f66f5.

This runs the strong suite, does coverage, and compares the coverage
(percentage) to the (hardcoded) expected percentage.

Change-Id: Ie2885fae05015394e49feadc95b294d46ee9ab8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/367901
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2024-05-24 07:44:08 +00:00
Ryan Macnak 3da6b50905 [infra] Add configurations for ARM64 sanitizer testing.
Runs only the ffi test suite with no shards due to limited capacity. Runs JIT and AOT on the same builder to avoid building twice without RBE.

Change-Id: I1cebff950d89b3302169e9e4cdb68772cd8bf413
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365865
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2024-05-17 16:57:13 +00:00
Martin Kustermann 8fa0675a6d [dart2wasm] Make optimized builders run with --use-sdk (and therefore dart compile wasm)
This gives some more coverage for `dart compile wasm`

Change-Id: I62e7f9c6ecbdf80a1445c35d1733a7f89e6bcf54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366623
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-05-17 13:08:31 +00:00