diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 71d891d493..05875553d7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -745,8 +745,9 @@ jobs: # ref https://betterprogramming.pub/test-flutter-apps-on-android-with-github-actions-abdba2137b4 test_flutter_native_android: name: 'Test :: Flutter :: Native:: Android' - # Must use MacOS because of reasons mentioned in `android-emulator-runner`'s readme. - runs-on: macos-latest +# # Must use MacOS because of reasons mentioned in `android-emulator-runner`'s readme. +# runs-on: macos-latest + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -776,6 +777,11 @@ jobs: with: distribution: 'zulu' java-version: "17.x" + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm - name: AVD cache uses: actions/cache@v3 id: avd-cache @@ -790,16 +796,16 @@ jobs: with: api-level: ${{ matrix.api-level }} force-avd-creation: false - emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none - disable-animations: false + # emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + # disable-animations: false script: echo "Generated AVD snapshot for caching." # execute - uses: reactivecircus/android-emulator-runner@v2 with: api-level: ${{ matrix.api-level }} - emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim - arch: x86_64 + # emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim + # arch: x86_64 profile: ${{ matrix.device }} script: ./frb_internal test-flutter-native --package ${{ matrix.package }} diff --git a/frb_example/pure_dart/test/api/event_listener_test.dart b/frb_example/pure_dart/test/api/event_listener_test.dart index e3620a061d..5242fe4ce7 100644 --- a/frb_example/pure_dart/test/api/event_listener_test.dart +++ b/frb_example/pure_dart/test/api/event_listener_test.dart @@ -31,6 +31,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinNormal(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); diff --git a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_sse_test.dart b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_sse_test.dart index 472d3303f8..b443f1aead 100644 --- a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_sse_test.dart +++ b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_sse_test.dart @@ -35,6 +35,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinRustAsyncSse(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); } diff --git a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart index 225ae9b683..e87f7f1a6a 100644 --- a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart +++ b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart @@ -35,6 +35,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinRustAsync(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); } diff --git a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_sse_test.dart b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_sse_test.dart index e7db8a6b1b..22494f84b1 100644 --- a/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_sse_test.dart +++ b/frb_example/pure_dart/test/api/pseudo_manual/event_listener_twin_sse_test.dart @@ -35,6 +35,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinSse(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); } diff --git a/frb_example/pure_dart_pde/test/api/event_listener_test.dart b/frb_example/pure_dart_pde/test/api/event_listener_test.dart index 8ab2e0acb4..dc2bcbeef9 100644 --- a/frb_example/pure_dart_pde/test/api/event_listener_test.dart +++ b/frb_example/pure_dart_pde/test/api/event_listener_test.dart @@ -33,6 +33,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinNormal(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); diff --git a/frb_example/pure_dart_pde/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart b/frb_example/pure_dart_pde/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart index d87778be46..eb3960795e 100644 --- a/frb_example/pure_dart_pde/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart +++ b/frb_example/pure_dart_pde/test/api/pseudo_manual/event_listener_twin_rust_async_test.dart @@ -37,6 +37,8 @@ Future main({bool skipRustLibInit = false}) async { await closeEventListenerTwinRustAsync(); + await Future.delayed(const Duration(seconds: 1)); + expect(logs, ['one', 'two']); }); }