diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml index 130eaa683..34334f421 100644 --- a/.github/workflows/dart.yml +++ b/.github/workflows/dart.yml @@ -79,16 +79,50 @@ jobs: if: "always() && steps.pkgs_test_core_pub_upgrade.conclusion == 'success'" working-directory: pkgs/test_core job_003: - name: "analyze_and_format; linux; Dart dev; PKGS: integration_tests/regression, integration_tests/spawn_hybrid, pkgs/checks, pkgs/test, pkgs/test_api, pkgs/test_core; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" + name: "analyze_and_format; linux; Dart 3.4.0; PKG: integration_tests/wasm; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" runs-on: ubuntu-latest steps: - name: Cache Pub hosted dependencies uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 with: path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/regression-integration_tests/spawn_hybrid-pkgs/checks-pkgs/test-pkgs/test_api-pkgs/test_core;commands:format-analyze_0" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0;packages:integration_tests/wasm;commands:format-analyze_0" restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/regression-integration_tests/spawn_hybrid-pkgs/checks-pkgs/test-pkgs/test_api-pkgs/test_core + os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0;packages:integration_tests/wasm + os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0 + os:ubuntu-latest;pub-cache-hosted + os:ubuntu-latest + - name: Setup Dart SDK + uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + with: + sdk: "3.4.0" + - id: checkout + name: Checkout repository + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + - id: integration_tests_wasm_pub_upgrade + name: integration_tests/wasm; dart pub upgrade + run: dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart format --output=none --set-exit-if-changed ." + run: "dart format --output=none --set-exit-if-changed ." + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart analyze --fatal-infos" + run: dart analyze --fatal-infos + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + job_004: + name: "analyze_and_format; linux; Dart dev; PKGS: integration_tests/regression, integration_tests/spawn_hybrid, integration_tests/wasm, pkgs/checks, pkgs/test, pkgs/test_api, pkgs/test_core; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" + runs-on: ubuntu-latest + steps: + - name: Cache Pub hosted dependencies + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 + with: + path: "~/.pub-cache/hosted" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/regression-integration_tests/spawn_hybrid-integration_tests/wasm-pkgs/checks-pkgs/test-pkgs/test_api-pkgs/test_core;commands:format-analyze_0" + restore-keys: | + os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/regression-integration_tests/spawn_hybrid-integration_tests/wasm-pkgs/checks-pkgs/test-pkgs/test_api-pkgs/test_core os:ubuntu-latest;pub-cache-hosted;sdk:dev os:ubuntu-latest;pub-cache-hosted os:ubuntu-latest @@ -125,6 +159,19 @@ jobs: run: dart analyze --fatal-infos if: "always() && steps.integration_tests_spawn_hybrid_pub_upgrade.conclusion == 'success'" working-directory: integration_tests/spawn_hybrid + - id: integration_tests_wasm_pub_upgrade + name: integration_tests/wasm; dart pub upgrade + run: dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart format --output=none --set-exit-if-changed ." + run: "dart format --output=none --set-exit-if-changed ." + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart analyze --fatal-infos" + run: dart analyze --fatal-infos + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm - id: pkgs_checks_pub_upgrade name: pkgs/checks; dart pub upgrade run: dart pub upgrade @@ -177,40 +224,6 @@ jobs: run: dart analyze --fatal-infos if: "always() && steps.pkgs_test_core_pub_upgrade.conclusion == 'success'" working-directory: pkgs/test_core - job_004: - name: "analyze_and_format; linux; Dart main; PKG: integration_tests/wasm; `dart format --output=none --set-exit-if-changed .`, `dart analyze --fatal-infos`" - runs-on: ubuntu-latest - steps: - - name: Cache Pub hosted dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 - with: - path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:main;packages:integration_tests/wasm;commands:format-analyze_0" - restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:main;packages:integration_tests/wasm - os:ubuntu-latest;pub-cache-hosted;sdk:main - os:ubuntu-latest;pub-cache-hosted - os:ubuntu-latest - - name: Setup Dart SDK - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 - with: - sdk: main - - id: checkout - name: Checkout repository - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b - - id: integration_tests_wasm_pub_upgrade - name: integration_tests/wasm; dart pub upgrade - run: dart pub upgrade - if: "always() && steps.checkout.conclusion == 'success'" - working-directory: integration_tests/wasm - - name: "integration_tests/wasm; dart format --output=none --set-exit-if-changed ." - run: "dart format --output=none --set-exit-if-changed ." - if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" - working-directory: integration_tests/wasm - - name: "integration_tests/wasm; dart analyze --fatal-infos" - run: dart analyze --fatal-infos - if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" - working-directory: integration_tests/wasm job_005: name: "unit_test; linux; Dart 3.2.0; PKG: integration_tests/spawn_hybrid; `dart test -p chrome,vm,node`" runs-on: ubuntu-latest @@ -492,6 +505,45 @@ jobs: - job_003 - job_004 job_013: + name: "unit_test; linux; Dart 3.4.0; PKG: integration_tests/wasm; `pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta`, `dart test --timeout=60s`" + runs-on: ubuntu-latest + steps: + - name: Cache Pub hosted dependencies + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 + with: + path: "~/.pub-cache/hosted" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0;packages:integration_tests/wasm;commands:command_00-test_2" + restore-keys: | + os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0;packages:integration_tests/wasm + os:ubuntu-latest;pub-cache-hosted;sdk:3.4.0 + os:ubuntu-latest;pub-cache-hosted + os:ubuntu-latest + - name: Setup Dart SDK + uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + with: + sdk: "3.4.0" + - id: checkout + name: Checkout repository + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + - id: integration_tests_wasm_pub_upgrade + name: integration_tests/wasm; dart pub upgrade + run: dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" + run: "pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart test --timeout=60s" + run: "dart test --timeout=60s" + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + needs: + - job_001 + - job_002 + - job_003 + - job_004 + job_014: name: "unit_test; linux; Dart dev; PKG: integration_tests/regression; `dart test`" runs-on: ubuntu-latest steps: @@ -526,7 +578,7 @@ jobs: - job_002 - job_003 - job_004 - job_014: + job_015: name: "unit_test; linux; Dart dev; PKG: pkgs/checks; `dart test`" runs-on: ubuntu-latest steps: @@ -561,7 +613,7 @@ jobs: - job_002 - job_003 - job_004 - job_015: + job_016: name: "unit_test; linux; Dart dev; PKG: integration_tests/spawn_hybrid; `dart test -p chrome,vm,node`" runs-on: ubuntu-latest steps: @@ -596,7 +648,46 @@ jobs: - job_002 - job_003 - job_004 - job_016: + job_017: + name: "unit_test; linux; Dart dev; PKG: integration_tests/wasm; `pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta`, `dart test --timeout=60s`" + runs-on: ubuntu-latest + steps: + - name: Cache Pub hosted dependencies + uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 + with: + path: "~/.pub-cache/hosted" + key: "os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/wasm;commands:command_00-test_2" + restore-keys: | + os:ubuntu-latest;pub-cache-hosted;sdk:dev;packages:integration_tests/wasm + os:ubuntu-latest;pub-cache-hosted;sdk:dev + os:ubuntu-latest;pub-cache-hosted + os:ubuntu-latest + - name: Setup Dart SDK + uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 + with: + sdk: dev + - id: checkout + name: Checkout repository + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b + - id: integration_tests_wasm_pub_upgrade + name: integration_tests/wasm; dart pub upgrade + run: dart pub upgrade + if: "always() && steps.checkout.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" + run: "pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + - name: "integration_tests/wasm; dart test --timeout=60s" + run: "dart test --timeout=60s" + if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" + working-directory: integration_tests/wasm + needs: + - job_001 + - job_002 + - job_003 + - job_004 + job_018: name: "unit_test; linux; Dart dev; PKG: pkgs/test; `xvfb-run -s \"-screen 0 1024x768x24\" dart test --preset travis --total-shards 5 --shard-index 0`" runs-on: ubuntu-latest steps: @@ -631,7 +722,7 @@ jobs: - job_002 - job_003 - job_004 - job_017: + job_019: name: "unit_test; linux; Dart dev; PKG: pkgs/test; `xvfb-run -s \"-screen 0 1024x768x24\" dart test --preset travis --total-shards 5 --shard-index 1`" runs-on: ubuntu-latest steps: @@ -666,7 +757,7 @@ jobs: - job_002 - job_003 - job_004 - job_018: + job_020: name: "unit_test; linux; Dart dev; PKG: pkgs/test; `xvfb-run -s \"-screen 0 1024x768x24\" dart test --preset travis --total-shards 5 --shard-index 2`" runs-on: ubuntu-latest steps: @@ -701,7 +792,7 @@ jobs: - job_002 - job_003 - job_004 - job_019: + job_021: name: "unit_test; linux; Dart dev; PKG: pkgs/test; `xvfb-run -s \"-screen 0 1024x768x24\" dart test --preset travis --total-shards 5 --shard-index 3`" runs-on: ubuntu-latest steps: @@ -736,7 +827,7 @@ jobs: - job_002 - job_003 - job_004 - job_020: + job_022: name: "unit_test; linux; Dart dev; PKG: pkgs/test; `xvfb-run -s \"-screen 0 1024x768x24\" dart test --preset travis --total-shards 5 --shard-index 4`" runs-on: ubuntu-latest steps: @@ -771,7 +862,7 @@ jobs: - job_002 - job_003 - job_004 - job_021: + job_023: name: "unit_test; linux; Dart dev; PKG: pkgs/test_api; `dart test --preset travis -x browser`" runs-on: ubuntu-latest steps: @@ -806,46 +897,7 @@ jobs: - job_002 - job_003 - job_004 - job_022: - name: "unit_test; linux; Dart main; PKG: integration_tests/wasm; `pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta`, `dart test --timeout=60s`" - runs-on: ubuntu-latest - steps: - - name: Cache Pub hosted dependencies - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 - with: - path: "~/.pub-cache/hosted" - key: "os:ubuntu-latest;pub-cache-hosted;sdk:main;packages:integration_tests/wasm;commands:command_00-test_2" - restore-keys: | - os:ubuntu-latest;pub-cache-hosted;sdk:main;packages:integration_tests/wasm - os:ubuntu-latest;pub-cache-hosted;sdk:main - os:ubuntu-latest;pub-cache-hosted - os:ubuntu-latest - - name: Setup Dart SDK - uses: dart-lang/setup-dart@f0ead981b4d9a35b37f30d36160575d60931ec30 - with: - sdk: main - - id: checkout - name: Checkout repository - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b - - id: integration_tests_wasm_pub_upgrade - name: integration_tests/wasm; dart pub upgrade - run: dart pub upgrade - if: "always() && steps.checkout.conclusion == 'success'" - working-directory: integration_tests/wasm - - name: "integration_tests/wasm; pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" - run: "pushd /tmp && wget https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb && sudo dpkg -i google-chrome-beta_current_amd64.deb && popd && which google-chrome-beta" - if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" - working-directory: integration_tests/wasm - - name: "integration_tests/wasm; dart test --timeout=60s" - run: "dart test --timeout=60s" - if: "always() && steps.integration_tests_wasm_pub_upgrade.conclusion == 'success'" - working-directory: integration_tests/wasm - needs: - - job_001 - - job_002 - - job_003 - - job_004 - job_023: + job_024: name: "unit_test; windows; Dart 3.2.0; PKG: integration_tests/spawn_hybrid; `dart test -p chrome,vm,node`" runs-on: windows-latest steps: @@ -870,7 +922,7 @@ jobs: - job_002 - job_003 - job_004 - job_024: + job_025: name: "unit_test; windows; Dart 3.2.0; PKG: pkgs/test; `dart test --preset travis --total-shards 5 --shard-index 0`" runs-on: windows-latest steps: @@ -895,7 +947,7 @@ jobs: - job_002 - job_003 - job_004 - job_025: + job_026: name: "unit_test; windows; Dart 3.2.0; PKG: pkgs/test; `dart test --preset travis --total-shards 5 --shard-index 1`" runs-on: windows-latest steps: @@ -920,7 +972,7 @@ jobs: - job_002 - job_003 - job_004 - job_026: + job_027: name: "unit_test; windows; Dart 3.2.0; PKG: pkgs/test; `dart test --preset travis --total-shards 5 --shard-index 2`" runs-on: windows-latest steps: @@ -945,7 +997,7 @@ jobs: - job_002 - job_003 - job_004 - job_027: + job_028: name: "unit_test; windows; Dart 3.2.0; PKG: pkgs/test; `dart test --preset travis --total-shards 5 --shard-index 3`" runs-on: windows-latest steps: @@ -970,7 +1022,7 @@ jobs: - job_002 - job_003 - job_004 - job_028: + job_029: name: "unit_test; windows; Dart 3.2.0; PKG: pkgs/test; `dart test --preset travis --total-shards 5 --shard-index 4`" runs-on: windows-latest steps: @@ -995,7 +1047,7 @@ jobs: - job_002 - job_003 - job_004 - job_029: + job_030: name: "unit_test; windows; Dart dev; PKG: integration_tests/spawn_hybrid; `dart test -p chrome,vm,node`" runs-on: windows-latest steps: @@ -1020,7 +1072,7 @@ jobs: - job_002 - job_003 - job_004 - job_030: + job_031: name: Notify failure runs-on: ubuntu-latest if: "(github.event_name == 'push' || github.event_name == 'schedule') && failure()" @@ -1061,3 +1113,4 @@ jobs: - job_027 - job_028 - job_029 + - job_030 diff --git a/integration_tests/wasm/mono_pkg.yaml b/integration_tests/wasm/mono_pkg.yaml index b09a8da9d..cebef7bed 100644 --- a/integration_tests/wasm/mono_pkg.yaml +++ b/integration_tests/wasm/mono_pkg.yaml @@ -1,7 +1,8 @@ # See https://pub.dev/packages/mono_repo sdk: -- main +- pubspec +- dev stages: - analyze_and_format: diff --git a/integration_tests/wasm/pubspec.yaml b/integration_tests/wasm/pubspec.yaml index 47ab34eb9..2cd0db156 100644 --- a/integration_tests/wasm/pubspec.yaml +++ b/integration_tests/wasm/pubspec.yaml @@ -1,7 +1,7 @@ name: wasm_tests publish_to: none environment: - sdk: ^3.2.0 + sdk: ^3.4.0 dev_dependencies: dart_flutter_team_lints: ^3.0.0 test: any diff --git a/pkgs/test_core/CHANGELOG.md b/pkgs/test_core/CHANGELOG.md index 9c7113618..f98386d14 100644 --- a/pkgs/test_core/CHANGELOG.md +++ b/pkgs/test_core/CHANGELOG.md @@ -1,6 +1,8 @@ ## 0.6.3-wip * Update min SDK constraint to 3.2.0. +* Fix testing with dart2wasm - use `dart compile wasm` instead of depending on + SDK internals ## 0.6.2 diff --git a/pkgs/test_core/lib/src/runner/wasm_compiler_pool.dart b/pkgs/test_core/lib/src/runner/wasm_compiler_pool.dart index 58e7eee59..08a7c0ae3 100644 --- a/pkgs/test_core/lib/src/runner/wasm_compiler_pool.dart +++ b/pkgs/test_core/lib/src/runner/wasm_compiler_pool.dart @@ -30,25 +30,19 @@ class WasmCompilerPool extends CompilerPool { Future compileInternal( String code, String path, SuiteConfiguration suiteConfig) { return withTempDir((dir) async { - var wrapperPath = p.join(dir, 'main.dart'); + final wrapperPath = p.join(dir, 'main.dart'); File(wrapperPath).writeAsStringSync(code); - var outWasmPath = '$path.wasm'; - var dartBinPath = Platform.resolvedExecutable; - var sdkRoot = p.join(p.dirname(dartBinPath), '../'); - var platformDill = - p.join(sdkRoot, 'lib', '_internal', 'dart2wasm_platform.dill'); - var dartPrecompiledRuntimePath = p.join(sdkRoot, 'bin', 'dartaotruntime'); - var dart2wasmSnapshotPath = - p.join(sdkRoot, 'bin/snapshots', 'dart2wasm_product.snapshot'); - var process = await Process.start(dartPrecompiledRuntimePath, [ - dart2wasmSnapshotPath, - '--dart-sdk=$sdkRoot', - '--platform=$platformDill', + final outWasmPath = '$path.wasm'; + final process = await Process.start(Platform.resolvedExecutable, [ + 'compile', + 'wasm', '--packages=${(await packageConfigUri).path}', for (var experiment in enabledExperiments) '--enable-experiment=$experiment', - wrapperPath, + '-O0', + '-o', outWasmPath, + wrapperPath, ]); if (closed) { process.kill();