From b0fdf4d0b482a521ea4673f460a04620c64fc288 Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 5 Aug 2024 14:03:23 +0200 Subject: [PATCH] Skip linking test for macos and windows + re-enable CI (#1388) --- .github/workflows/native.yaml | 9 +-- .../build_runner_caching_test.dart | 67 ++++++++++--------- .../test/build_runner/link_test.dart | 66 ++++++++++-------- 3 files changed, 76 insertions(+), 66 deletions(-) diff --git a/.github/workflows/native.yaml b/.github/workflows/native.yaml index 77f7bb76a..533371fda 100644 --- a/.github/workflows/native.yaml +++ b/.github/workflows/native.yaml @@ -67,7 +67,7 @@ jobs: - uses: nttld/setup-ndk@afb4c9964b521afb97c864b7d40b11e6911bd410 with: ndk-version: r26b - if: ${{ (matrix.sdk == 'stable' || matrix.sdk == '3.3.0') && matrix.os != 'macos' }} + if: ${{ matrix.os != 'macos' }} - run: dart pub get @@ -129,14 +129,12 @@ jobs: # Run on dev to ensure we're not depending on deprecated SDK things. - run: dart format --output=none --set-exit-if-changed . - if: ${{ (matrix.sdk == 'stable' || matrix.sdk == '3.3.0') }} - name: Install native toolchains run: sudo apt-get update && sudo apt-get install clang-15 gcc-i686-linux-gnu gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf gcc-riscv64-linux-gnu - if: ${{ (matrix.sdk == 'stable' || matrix.sdk == '3.3.0') && matrix.os == 'ubuntu' }} + if: ${{ matrix.os == 'ubuntu' }} - run: dart test - if: ${{ (matrix.sdk == 'stable' || matrix.sdk == '3.3.0') }} - run: dart --enable-experiment=native-assets test working-directory: pkgs/${{ matrix.package }}/example/build/native_add_app/ @@ -160,11 +158,9 @@ jobs: - name: Install coverage run: dart pub global activate coverage - if: ${{ matrix.sdk == 'stable' || matrix.sdk == '3.3.0' }} - name: Collect coverage run: dart pub global run coverage:test_with_coverage - if: ${{ matrix.sdk == 'stable' || matrix.sdk == '3.3.0' }} - name: Upload coverage uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 @@ -172,7 +168,6 @@ jobs: flag-name: ${{ matrix.package }}_${{ matrix.os }} github-token: ${{ secrets.GITHUB_TOKEN }} parallel: true - if: ${{ matrix.sdk == 'stable' || matrix.sdk == '3.3.0' }} coverage-finished: needs: [build] diff --git a/pkgs/native_assets_builder/test/build_runner/build_runner_caching_test.dart b/pkgs/native_assets_builder/test/build_runner/build_runner_caching_test.dart index d42b0e7f5..10f3231ea 100644 --- a/pkgs/native_assets_builder/test/build_runner/build_runner_caching_test.dart +++ b/pkgs/native_assets_builder/test/build_runner/build_runner_caching_test.dart @@ -107,34 +107,41 @@ void main() async { }); }); - test('add C file, modify hook', timeout: longTimeout, () async { - await inTempDir((tempUri) async { - await copyTestProjects(targetUri: tempUri); - final packageUri = tempUri.resolve('native_add/'); - - await runPubGet(workingDirectory: packageUri, logger: logger); - // Make sure the first compile is at least one second after the - // package_config.json is written, otherwise dill compilation isn't - // cached. - await Future.delayed(const Duration(seconds: 1)); - - { - final result = await build(packageUri, logger, dartExecutable); - await expectSymbols( - asset: result.assets.single as NativeCodeAssetImpl, - symbols: ['add']); - } - - await copyTestProjects( - sourceUri: testDataUri.resolve('native_add_add_source/'), - targetUri: packageUri); - - { - final result = await build(packageUri, logger, dartExecutable); - await expectSymbols( - asset: result.assets.single as NativeCodeAssetImpl, - symbols: ['add', 'multiply']); - } - }); - }); + test( + 'add C file, modify hook', + timeout: longTimeout, + onPlatform: { + 'linux': const Skip('https://github.com/dart-lang/native/issues/1391.'), + }, + () async { + await inTempDir((tempUri) async { + await copyTestProjects(targetUri: tempUri); + final packageUri = tempUri.resolve('native_add/'); + + await runPubGet(workingDirectory: packageUri, logger: logger); + // Make sure the first compile is at least one second after the + // package_config.json is written, otherwise dill compilation isn't + // cached. + await Future.delayed(const Duration(seconds: 1)); + + { + final result = await build(packageUri, logger, dartExecutable); + await expectSymbols( + asset: result.assets.single as NativeCodeAssetImpl, + symbols: ['add']); + } + + await copyTestProjects( + sourceUri: testDataUri.resolve('native_add_add_source/'), + targetUri: packageUri); + + { + final result = await build(packageUri, logger, dartExecutable); + await expectSymbols( + asset: result.assets.single as NativeCodeAssetImpl, + symbols: ['add', 'multiply']); + } + }); + }, + ); } diff --git a/pkgs/native_assets_builder/test/build_runner/link_test.dart b/pkgs/native_assets_builder/test/build_runner/link_test.dart index 63aff598c..5e1bed66b 100644 --- a/pkgs/native_assets_builder/test/build_runner/link_test.dart +++ b/pkgs/native_assets_builder/test/build_runner/link_test.dart @@ -150,38 +150,46 @@ void main() async { }); }); - test('treeshaking assets using CLinker', timeout: longTimeout, () async { - await inTempDir((tempUri) async { - await copyTestProjects(targetUri: tempUri); - final packageUri = tempUri.resolve('treeshaking_native_libs/'); + test( + 'treeshaking assets using CLinker', + timeout: longTimeout, + () async { + await inTempDir((tempUri) async { + await copyTestProjects(targetUri: tempUri); + final packageUri = tempUri.resolve('treeshaking_native_libs/'); - // First, run `pub get`, we need pub to resolve our dependencies. - await runPubGet( - workingDirectory: packageUri, - logger: logger, - ); + // First, run `pub get`, we need pub to resolve our dependencies. + await runPubGet( + workingDirectory: packageUri, + logger: logger, + ); - final buildResult = await build( - packageUri, - logger, - dartExecutable, - linkingEnabled: true, - ); - expect(buildResult.assets.length, 0); - expect(buildResult.assetsForLinking.length, 1); + final buildResult = await build( + packageUri, + logger, + dartExecutable, + linkingEnabled: true, + ); + expect(buildResult.assets.length, 0); + expect(buildResult.assetsForLinking.length, 1); - final logMessages = []; - final linkResult = await link( - packageUri, - logger, - dartExecutable, - buildResult: buildResult, - capturedLogs: logMessages, - ); - expect(linkResult.assets.length, 1); - expect(linkResult.assets.first, isA()); - }); - }); + final logMessages = []; + final linkResult = await link( + packageUri, + logger, + dartExecutable, + buildResult: buildResult, + capturedLogs: logMessages, + ); + expect(linkResult.assets.length, 1); + expect(linkResult.assets.first, isA()); + }); + }, + onPlatform: { + 'mac-os': const Skip('https://github.com/dart-lang/native/issues/1376.'), + 'windows': const Skip('https://github.com/dart-lang/native/issues/1376.'), + }, + ); } Iterable _getNames(List assets) =>