From 58525a29d788a4a73a2cc903fd082babc0263ed8 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 14:41:40 +0200 Subject: [PATCH 01/34] fix(linux): reuse channelId --- .../example/integration_test/lib_test.dart | 68 +++++-------------- 1 file changed, 17 insertions(+), 51 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 3a658bd49..d1bf7c3e5 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -21,9 +21,6 @@ void main() { final isAndroid = !kIsWeb && Platform.isAndroid; final isLinux = !kIsWeb && Platform.isLinux; - // FIXME(gustl22): Cannot reuse event channel with same id on Linux (flutter/flutter#126209) - var linuxPlayerCount = 0; - final wavUrl1TestData = LibSourceTestData( source: UrlSource(wavUrl1), duration: const Duration(milliseconds: 451), @@ -98,10 +95,7 @@ void main() { } await players[i].stop(); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await Future.wait(players.map((p) => p.dispose())); - } + await Future.wait(players.map((p) => p.dispose())); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with @@ -131,10 +125,7 @@ void main() { } await player.stop(); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await player.dispose(); - } + await player.dispose(); }); }); @@ -180,10 +171,7 @@ void main() { await tester.pumpAndSettle(); await tester.pump(td.duration + const Duration(seconds: 8)); expect(player.state, PlayerState.completed); - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await player.dispose(); - } + await player.dispose(); }, skip: !features.hasForceSpeaker, ); @@ -235,10 +223,7 @@ void main() { expect(player.state, PlayerState.playing); await player.stop(); expect(player.state, PlayerState.stopped); - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await player.dispose(); - } + await player.dispose(); }, skip: !features.hasForceSpeaker || !features.hasLowLatency, ); @@ -248,7 +233,7 @@ void main() { testWidgets('Emit platform log', (tester) async { final logCompleter = Completer(); - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; final player = AudioPlayer(playerId: playerId); final onLogSub = player.onLog.listen( logCompleter.complete, @@ -298,10 +283,7 @@ void main() { } catch (e) { expect(e, isInstanceOf()); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await player.dispose(); - } + await player.dispose(); }, ); @@ -321,10 +303,7 @@ void main() { } catch (e) { expect(e, isInstanceOf()); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await player.dispose(); - } + await player.dispose(); }, ); }); @@ -333,7 +312,7 @@ void main() { testWidgets('#create and #dispose', (tester) async { final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); await tester.pumpAndSettle(); await platform.dispose(playerId); @@ -354,7 +333,7 @@ void main() { testWidgets('#setSource #getPosition and #getDuration', (tester) async { final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); final preparedCompleter = Completer(); @@ -387,16 +366,13 @@ void main() { ); await onPreparedSub.cancel(); - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await platform.dispose(playerId); - } + await platform.dispose(playerId); }); testWidgets('#seek with millisecond precision', (tester) async { final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); final preparedCompleter = Completer(); @@ -437,16 +413,13 @@ void main() { expect(await platform.getCurrentPosition(playerId), 21); await onPreparedSub.cancel(); - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await platform.dispose(playerId); - } + await platform.dispose(playerId); }); testWidgets('Set same source twice (#1520)', (tester) async { final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); final eventStream = platform.getEventStream(playerId); @@ -474,10 +447,7 @@ void main() { await preparedCompleter.future.timeout(const Duration(seconds: 30)); await onPreparedSub.cancel(); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await platform.dispose(playerId); - } + await platform.dispose(playerId); }); }); @@ -485,7 +455,7 @@ void main() { testWidgets('Listen and cancel twice', (tester) async { final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); final eventStream = platform.getEventStream(playerId); @@ -493,10 +463,7 @@ void main() { final eventSub = eventStream.listen(null); await eventSub.cancel(); } - if (!isLinux) { - // FIXME(gustl22): Linux not disposing properly (#1507) - await platform.dispose(playerId); - } + await platform.dispose(playerId); }); // TODO(gustl22): remove once https://github.com/flutter/flutter/issues/126209 @@ -523,14 +490,13 @@ void main() { await eventStreamSub2.cancel(); await platform.dispose(playerId); }, - skip: isLinux, ); testWidgets('Emit platform error', (tester) async { final errorCompleter = Completer(); final platform = AudioplayersPlatformInterface.instance; - final playerId = 'somePlayerId${isLinux ? linuxPlayerCount++ : ''}'; + const playerId = 'somePlayerId'; await platform.create(playerId); final eventStreamSub = platform From 7aca81f5da83b1acf1c03f3c4327238b83546b84 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 14:53:26 +0200 Subject: [PATCH 02/34] ci: set other flutter version for linux --- .github/workflows/test.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fb6a49e46..f21fbb09d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,8 +268,9 @@ jobs: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: - flutter-version: ${{ inputs.flutter_version }} - channel: 'stable' + # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. + #flutter-version: ${{ inputs.flutter_version }} + channel: 'master' - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From 4d0c7a9df88c56462efd4698e55db9a7d49c9c16 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 16:57:38 +0200 Subject: [PATCH 03/34] test(linux): remove tests for reusing event channel --- .../example/integration_test/lib_test.dart | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index d1bf7c3e5..b27ef26f1 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -466,32 +466,6 @@ void main() { await platform.dispose(playerId); }); - // TODO(gustl22): remove once https://github.com/flutter/flutter/issues/126209 - // is fixed, as tests should cover the problem in flutter engine. - testWidgets( - 'Reuse same platform event channel id', - (tester) async { - final platform = AudioplayersPlatformInterface.instance; - - const playerId = 'somePlayerId'; - await platform.create(playerId); - - final eventStreamSub = platform.getEventStream(playerId).listen((_) {}); - - await eventStreamSub.cancel(); - await platform.dispose(playerId); - - // Recreate player with same player Id - await platform.create(playerId); - - final eventStreamSub2 = - platform.getEventStream(playerId).listen((_) {}); - - await eventStreamSub2.cancel(); - await platform.dispose(playerId); - }, - ); - testWidgets('Emit platform error', (tester) async { final errorCompleter = Completer(); final platform = AudioplayersPlatformInterface.instance; From 4c6a25dd2cf75ce5561e8dc61b4b48a75039019f Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 16:58:02 +0200 Subject: [PATCH 04/34] test(linux): remove additional pumps --- .../example/integration_test/lib_test.dart | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index b27ef26f1..4a846bb50 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -19,7 +19,6 @@ void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); final isAndroid = !kIsWeb && Platform.isAndroid; - final isLinux = !kIsWeb && Platform.isLinux; final wavUrl1TestData = LibSourceTestData( source: UrlSource(wavUrl1), @@ -75,10 +74,6 @@ void main() { // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); @@ -109,10 +104,6 @@ void main() { for (var i = 0; i < audioTestDataList.length; i++) { final td = audioTestDataList[i]; - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await player.play(td.source); await tester.pumpAndSettle(); // Sources take some time to get initialized @@ -151,10 +142,6 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await player.play(td.source); await tester.pumpAndSettle(); await tester.pump(td.duration + const Duration(seconds: 8)); @@ -198,10 +185,6 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await player.setSource(td.source); await player.resume(); await tester.pumpAndSettle(); @@ -273,10 +256,6 @@ void main() { final player = AudioPlayer(); try { // Throws PlatformException via MethodChannel: - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await player.setSource(AssetSource(invalidAsset)); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses @@ -293,10 +272,6 @@ void main() { final player = AudioPlayer(); try { // Throws PlatformException via MethodChannel: - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await player.setSource(UrlSource('non_existent.txt')); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses @@ -349,10 +324,6 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, @@ -388,10 +359,6 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await platform.setSourceUrl( playerId, (mp3Url1TestData.source as UrlSource).url, @@ -436,10 +403,6 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) - await tester.pump(); - } await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, From a6e6b033ccb8bdabea35e9446622ffc9643c05a1 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 17:13:16 +0200 Subject: [PATCH 05/34] Revert "test(linux): remove additional pumps" This reverts commit 4c6a25dd2cf75ce5561e8dc61b4b48a75039019f. --- .../example/integration_test/lib_test.dart | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 4a846bb50..b27ef26f1 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -19,6 +19,7 @@ void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); final isAndroid = !kIsWeb && Platform.isAndroid; + final isLinux = !kIsWeb && Platform.isLinux; final wavUrl1TestData = LibSourceTestData( source: UrlSource(wavUrl1), @@ -74,6 +75,10 @@ void main() { // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); @@ -104,6 +109,10 @@ void main() { for (var i = 0; i < audioTestDataList.length; i++) { final td = audioTestDataList[i]; + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await player.play(td.source); await tester.pumpAndSettle(); // Sources take some time to get initialized @@ -142,6 +151,10 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await player.play(td.source); await tester.pumpAndSettle(); await tester.pump(td.duration + const Duration(seconds: 8)); @@ -185,6 +198,10 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await player.setSource(td.source); await player.resume(); await tester.pumpAndSettle(); @@ -256,6 +273,10 @@ void main() { final player = AudioPlayer(); try { // Throws PlatformException via MethodChannel: + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await player.setSource(AssetSource(invalidAsset)); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses @@ -272,6 +293,10 @@ void main() { final player = AudioPlayer(); try { // Throws PlatformException via MethodChannel: + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await player.setSource(UrlSource('non_existent.txt')); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses @@ -324,6 +349,10 @@ void main() { }, onError: preparedCompleter.completeError, ); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, @@ -359,6 +388,10 @@ void main() { }, onError: preparedCompleter.completeError, ); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await platform.setSourceUrl( playerId, (mp3Url1TestData.source as UrlSource).url, @@ -403,6 +436,10 @@ void main() { }, onError: preparedCompleter.completeError, ); + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1507) + await tester.pump(); + } await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, From 5f6ac191e50247770b16cbd05ace2b4cad4bd170 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 28 Jun 2023 17:30:07 +0200 Subject: [PATCH 06/34] test(linux): change issue for additional pumps --- .../example/integration_test/lib_test.dart | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index b27ef26f1..99591d68c 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -76,7 +76,7 @@ void main() { // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await Future.wait( @@ -110,7 +110,7 @@ void main() { for (var i = 0; i < audioTestDataList.length; i++) { final td = audioTestDataList[i]; if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await player.play(td.source); @@ -152,7 +152,7 @@ void main() { await player.setAudioContext(audioContext); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await player.play(td.source); @@ -199,7 +199,7 @@ void main() { await player.setAudioContext(audioContext); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await player.setSource(td.source); @@ -274,7 +274,7 @@ void main() { try { // Throws PlatformException via MethodChannel: if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await player.setSource(AssetSource(invalidAsset)); @@ -294,7 +294,7 @@ void main() { try { // Throws PlatformException via MethodChannel: if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await player.setSource(UrlSource('non_existent.txt')); @@ -350,7 +350,7 @@ void main() { onError: preparedCompleter.completeError, ); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await platform.setSourceUrl( @@ -389,7 +389,7 @@ void main() { onError: preparedCompleter.completeError, ); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await platform.setSourceUrl( @@ -437,7 +437,7 @@ void main() { onError: preparedCompleter.completeError, ); if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1507) + // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } await platform.setSourceUrl( From c645f22f85aeeb0e049f03dbfd3b418dc8390408 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 4 Jul 2023 15:54:20 +0200 Subject: [PATCH 07/34] ci: use version 3.12.0-12.0.pre for Linux --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f21fbb09d..b46b44d63 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,9 +268,9 @@ jobs: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: - # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. - #flutter-version: ${{ inputs.flutter_version }} - channel: 'master' + # TODO: use `inputs.flutter_version` and change to `stable`, when flutter/flutter#129534 has been released. + flutter-version: '3.12.0-12.0.pre' + channel: 'main' - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From 1806a7fc8826295ae249472e683c1c51962686c8 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 4 Jul 2023 17:45:09 +0200 Subject: [PATCH 08/34] revert --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b46b44d63..da3c01093 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,8 +268,8 @@ jobs: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: - # TODO: use `inputs.flutter_version` and change to `stable`, when flutter/flutter#129534 has been released. - flutter-version: '3.12.0-12.0.pre' + # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. + # flutter-version: ${{ inputs.flutter_version }} channel: 'main' - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux From 9d2d21efa5a182095290170d86be472e91e00a54 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 4 Jul 2023 18:01:11 +0200 Subject: [PATCH 09/34] revert --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index da3c01093..e07237d0c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -270,7 +270,7 @@ jobs: with: # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. # flutter-version: ${{ inputs.flutter_version }} - channel: 'main' + channel: 'master' - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From c653c014115c3c1873c3446b112f90b96149cb51 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 5 Jul 2023 13:33:25 +0200 Subject: [PATCH 10/34] print flutter version --- .github/workflows/pull-request.yml | 2 +- .github/workflows/test.yml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 7888645b6..2a7d9b3f0 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,5 +17,5 @@ jobs: enable_web: ${{ github.event.pull_request.draft == false }} enable_ios: ${{ github.event.pull_request.draft == false }} enable_windows: ${{ github.event.pull_request.draft == false }} - enable_linux: ${{ github.event.pull_request.draft == false }} + enable_linux: true enable_macos: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e07237d0c..eb5e9c3a2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -271,6 +271,14 @@ jobs: # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. # flutter-version: ${{ inputs.flutter_version }} channel: 'master' + - run: flutter --version + - run: | + echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} + echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} + echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} + echo VERSION=${{ steps.flutter-action.outputs.VERSION }} + echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} + shell: bash - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From 49b6bdd0976bb4f8acc207d2889cdb49f15040c9 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 5 Jul 2023 16:02:44 +0200 Subject: [PATCH 11/34] debug print --- .../example/integration_test/lib_test.dart | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 99591d68c..23912d216 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -66,36 +66,50 @@ void main() { ), ]; + print('A'); + group('play multiple sources', () { testWidgets( 'play multiple sources simultaneously', (WidgetTester tester) async { + print('B'); final players = List.generate(audioTestDataList.length, (_) => AudioPlayer()); + print('C'); // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } + print('D'); await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); + + print('E'); await tester.pumpAndSettle(); // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); + print('F'); for (var i = 0; i < audioTestDataList.length; i++) { + print('G$i'); final td = audioTestDataList[i]; if (td.isLiveStream || td.duration > const Duration(seconds: 10)) { await tester.pump(); + print('H$i'); final position = await players[i].getCurrentPosition(); printWithTimeOnFailure('Test position: $td'); expect(position, greaterThan(Duration.zero)); + print('I$i'); } await players[i].stop(); + print('J$i'); } + print('K'); await Future.wait(players.map((p) => p.dispose())); + print('L'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with @@ -105,9 +119,11 @@ void main() { testWidgets('play multiple sources consecutively', (WidgetTester tester) async { + print('M'); final player = AudioPlayer(); for (var i = 0; i < audioTestDataList.length; i++) { + print('N$i'); final td = audioTestDataList[i]; if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) @@ -125,7 +141,9 @@ void main() { } await player.stop(); } + print('O'); await player.dispose(); + print('P'); }); }); @@ -137,6 +155,7 @@ void main() { testWidgets( 'test changing AudioContextConfigs', (WidgetTester tester) async { + print('Q'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); From 5ef415986faff2ffa80791e9c48f8bcba3bf9b6d Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 16:51:19 +0200 Subject: [PATCH 12/34] remove last pump add one pump again remove one pump more pumps [WIP]: disable linux tests debug 4 Revert "Revert "some debug 3"" This reverts commit bc1ff65e16b207f4694a694da6ab7b2365a9776f. Revert "some debug 3" This reverts commit dcc4eacc289cf813da0775f661bdd3e4c87876e9. some debug 3 some debug 2 some debug readd tests [WIP]: use flutter master again lib test open and close channel [WIP]: use stable again --- .github/workflows/test.yml | 5 +- .../example/integration_test/lib_test.dart | 66 +++++++++++++++++-- 2 files changed, 63 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb5e9c3a2..697d3ef6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -271,6 +271,9 @@ jobs: # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. # flutter-version: ${{ inputs.flutter_version }} channel: 'master' +# with: +# flutter-version: ${{ inputs.flutter_version }} +# channel: 'stable' - run: flutter --version - run: | echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} @@ -298,4 +301,4 @@ jobs: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & ( cd server; dart run bin/server.dart ) & flutter test -d linux integration_test/lib_test.dart --dart-define USE_LOCAL_SERVER=true - flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true +# flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index e3c07a24a..cf528da40 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -68,17 +68,64 @@ void main() { print('A'); + // TODO(gustl22): remove once https://github.com/flutter/flutter/issues/126209 + // is fixed, as tests should cover the problem in flutter engine. + testWidgets( + 'Reuse same platform event channel id', + (tester) async { + print('A1'); + final platform = AudioplayersPlatformInterface.instance; + print('A2'); + + const playerId = 'somePlayerId'; + await platform.create(playerId); + print('A3'); + + final eventStreamSub = platform.getEventStream(playerId).listen((_) {}); + print('A4'); + + await eventStreamSub.cancel(); + print('A5'); + await platform.dispose(playerId); + print('A6'); + + // Recreate player with same player Id + await platform.create(playerId); + print('A7'); + + final eventStreamSub2 = + platform.getEventStream(playerId).listen((_) {}); + print('A8'); + + await eventStreamSub2.cancel(); + print('A9'); + await platform.dispose(playerId); + print('A10'); + await tester.pump(); + print('A10a'); + }, + // skip: isLinux, + ); + + print('A11'); + group('play multiple sources', () { + print('A11a'); testWidgets( 'play multiple sources simultaneously', - (WidgetTester tester) async { + (WidgetTester tester) async { print('B'); final players = - List.generate(audioTestDataList.length, (_) => AudioPlayer()); + List.generate(audioTestDataList.length, (i) { + print('B$i'); + return AudioPlayer(); + }); + await tester.pump(); print('C'); + final length = audioTestDataList.length; // Start all players simultaneously - final iterator = List.generate(audioTestDataList.length, (i) => i); + final iterator = List.generate(length, (i) => i); if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); @@ -93,7 +140,7 @@ void main() { // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); print('F'); - for (var i = 0; i < audioTestDataList.length; i++) { + for (var i = 0; i < length; i++) { print('G$i'); final td = audioTestDataList[i]; if (td.isLiveStream || td.duration > const Duration(seconds: 10)) { @@ -107,6 +154,8 @@ void main() { await players[i].stop(); print('J$i'); } + print('J-K'); + await tester.pump(); print('K'); await Future.wait(players.map((p) => p.dispose())); print('L'); @@ -116,7 +165,10 @@ void main() { // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); - + print('L1'); + }); + print('L2'); +/* testWidgets('play multiple sources consecutively', (WidgetTester tester) async { print('M'); @@ -517,7 +569,7 @@ void main() { final errorCompleter = Completer(); final global = GlobalAudioplayersPlatformInterface.instance; - /* final eventStreamSub = */ + *//* final eventStreamSub = *//* global .getGlobalEventStream() .listen((_) {}, onError: errorCompleter.complete); @@ -535,5 +587,5 @@ void main() { // MissingPluginException on Android, if dispose app afterwards // await eventStreamSub.cancel(); }); - }); + });*/ } From 7be0ee93285cd7e70cb7132ce8cabb791e0d1b53 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 22:21:44 +0200 Subject: [PATCH 13/34] Revert "remove last pump" This reverts commit 5ef415986faff2ffa80791e9c48f8bcba3bf9b6d. --- .github/workflows/test.yml | 5 +- .../example/integration_test/lib_test.dart | 66 ++----------------- 2 files changed, 8 insertions(+), 63 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 697d3ef6e..eb5e9c3a2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -271,9 +271,6 @@ jobs: # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. # flutter-version: ${{ inputs.flutter_version }} channel: 'master' -# with: -# flutter-version: ${{ inputs.flutter_version }} -# channel: 'stable' - run: flutter --version - run: | echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} @@ -301,4 +298,4 @@ jobs: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & ( cd server; dart run bin/server.dart ) & flutter test -d linux integration_test/lib_test.dart --dart-define USE_LOCAL_SERVER=true -# flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true + flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index cf528da40..e3c07a24a 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -68,64 +68,17 @@ void main() { print('A'); - // TODO(gustl22): remove once https://github.com/flutter/flutter/issues/126209 - // is fixed, as tests should cover the problem in flutter engine. - testWidgets( - 'Reuse same platform event channel id', - (tester) async { - print('A1'); - final platform = AudioplayersPlatformInterface.instance; - print('A2'); - - const playerId = 'somePlayerId'; - await platform.create(playerId); - print('A3'); - - final eventStreamSub = platform.getEventStream(playerId).listen((_) {}); - print('A4'); - - await eventStreamSub.cancel(); - print('A5'); - await platform.dispose(playerId); - print('A6'); - - // Recreate player with same player Id - await platform.create(playerId); - print('A7'); - - final eventStreamSub2 = - platform.getEventStream(playerId).listen((_) {}); - print('A8'); - - await eventStreamSub2.cancel(); - print('A9'); - await platform.dispose(playerId); - print('A10'); - await tester.pump(); - print('A10a'); - }, - // skip: isLinux, - ); - - print('A11'); - group('play multiple sources', () { - print('A11a'); testWidgets( 'play multiple sources simultaneously', - (WidgetTester tester) async { + (WidgetTester tester) async { print('B'); final players = - List.generate(audioTestDataList.length, (i) { - print('B$i'); - return AudioPlayer(); - }); - await tester.pump(); + List.generate(audioTestDataList.length, (_) => AudioPlayer()); print('C'); - final length = audioTestDataList.length; // Start all players simultaneously - final iterator = List.generate(length, (i) => i); + final iterator = List.generate(audioTestDataList.length, (i) => i); if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); @@ -140,7 +93,7 @@ void main() { // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); print('F'); - for (var i = 0; i < length; i++) { + for (var i = 0; i < audioTestDataList.length; i++) { print('G$i'); final td = audioTestDataList[i]; if (td.isLiveStream || td.duration > const Duration(seconds: 10)) { @@ -154,8 +107,6 @@ void main() { await players[i].stop(); print('J$i'); } - print('J-K'); - await tester.pump(); print('K'); await Future.wait(players.map((p) => p.dispose())); print('L'); @@ -165,10 +116,7 @@ void main() { // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); - print('L1'); - }); - print('L2'); -/* + testWidgets('play multiple sources consecutively', (WidgetTester tester) async { print('M'); @@ -569,7 +517,7 @@ void main() { final errorCompleter = Completer(); final global = GlobalAudioplayersPlatformInterface.instance; - *//* final eventStreamSub = *//* + /* final eventStreamSub = */ global .getGlobalEventStream() .listen((_) {}, onError: errorCompleter.complete); @@ -587,5 +535,5 @@ void main() { // MissingPluginException on Android, if dispose app afterwards // await eventStreamSub.cancel(); }); - });*/ + }); } From 5fc801f7049abd788d5605b28504e6487f5ab8eb Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 22:22:05 +0200 Subject: [PATCH 14/34] Revert "debug print" This reverts commit 49b6bdd0976bb4f8acc207d2889cdb49f15040c9. --- .../example/integration_test/lib_test.dart | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index e3c07a24a..0572f9b7f 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -66,50 +66,36 @@ void main() { ), ]; - print('A'); - group('play multiple sources', () { testWidgets( 'play multiple sources simultaneously', (WidgetTester tester) async { - print('B'); final players = List.generate(audioTestDataList.length, (_) => AudioPlayer()); - print('C'); // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) await tester.pump(); } - print('D'); await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); - - print('E'); await tester.pumpAndSettle(); // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); - print('F'); for (var i = 0; i < audioTestDataList.length; i++) { - print('G$i'); final td = audioTestDataList[i]; if (td.isLiveStream || td.duration > const Duration(seconds: 10)) { await tester.pump(); - print('H$i'); final position = await players[i].getCurrentPosition(); printWithTimeOnFailure('Test position: $td'); expect(position, greaterThan(Duration.zero)); - print('I$i'); } await players[i].stop(); - print('J$i'); } - print('K'); await Future.wait(players.map((p) => p.dispose())); - print('L'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with @@ -119,11 +105,9 @@ void main() { testWidgets('play multiple sources consecutively', (WidgetTester tester) async { - print('M'); final player = AudioPlayer(); for (var i = 0; i < audioTestDataList.length; i++) { - print('N$i'); final td = audioTestDataList[i]; if (isLinux) { // FIXME(gustl22): Linux needs additional pump (#1556) @@ -141,9 +125,7 @@ void main() { } await player.stop(); } - print('O'); await player.dispose(); - print('P'); }); }); @@ -155,7 +137,6 @@ void main() { testWidgets( 'test changing AudioContextConfigs', (WidgetTester tester) async { - print('Q'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); From 78b27112ae3e945c5fafaa00c71a871c8cb39286 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 22:22:52 +0200 Subject: [PATCH 15/34] Revert "print flutter version" This reverts commit c653c014115c3c1873c3446b112f90b96149cb51. --- .github/workflows/pull-request.yml | 2 +- .github/workflows/test.yml | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2a7d9b3f0..7888645b6 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,5 +17,5 @@ jobs: enable_web: ${{ github.event.pull_request.draft == false }} enable_ios: ${{ github.event.pull_request.draft == false }} enable_windows: ${{ github.event.pull_request.draft == false }} - enable_linux: true + enable_linux: ${{ github.event.pull_request.draft == false }} enable_macos: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb5e9c3a2..e07237d0c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -271,14 +271,6 @@ jobs: # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. # flutter-version: ${{ inputs.flutter_version }} channel: 'master' - - run: flutter --version - - run: | - echo CACHE-PATH=${{ steps.flutter-action.outputs.CACHE-PATH }} - echo CACHE-KEY=${{ steps.flutter-action.outputs.CACHE-KEY }} - echo CHANNEL=${{ steps.flutter-action.outputs.CHANNEL }} - echo VERSION=${{ steps.flutter-action.outputs.VERSION }} - echo ARCHITECTURE=${{ steps.flutter-action.outputs.ARCHITECTURE }} - shell: bash - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From c8d0378de52d406f32085b5f52a9a280439b4659 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 22:25:23 +0200 Subject: [PATCH 16/34] use beta version --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e07237d0c..586f17796 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -268,9 +268,9 @@ jobs: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: - # TODO: uncomment and change to `stable`, when flutter/flutter#129534 has been released. - # flutter-version: ${{ inputs.flutter_version }} - channel: 'master' + # TODO: use `inputs.flutter_version` and change to `stable`, when flutter/flutter#129534 has been released. + flutter-version: '3.13.0-0.1.pre' + channel: 'beta' - uses: bluefireteam/melos-action@main - name: Install Flutter requirements for Linux run: | From 00d97d5def73a62df435080d316720a8d243fe19 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Tue, 18 Jul 2023 22:26:47 +0200 Subject: [PATCH 17/34] add additional pump --- packages/audioplayers/example/integration_test/lib_test.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 0572f9b7f..df21a93ab 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -95,6 +95,10 @@ void main() { } await players[i].stop(); } + if (isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1556) + await tester.pump(); + } await Future.wait(players.map((p) => p.dispose())); }, // FIXME: Causes media error on Android (see #1333, #1353) From 2746a0106cf37916e0b220f810a4d4ca6f242b72 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 13:11:11 +0200 Subject: [PATCH 18/34] add more pumps for linux --- .../example/integration_test/lib_test.dart | 70 ++++++++----------- 1 file changed, 30 insertions(+), 40 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index df21a93ab..f4d76ad42 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -75,10 +75,7 @@ void main() { // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); @@ -95,10 +92,7 @@ void main() { } await players[i].stop(); } - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await Future.wait(players.map((p) => p.dispose())); }, // FIXME: Causes media error on Android (see #1333, #1353) @@ -113,10 +107,7 @@ void main() { for (var i = 0; i < audioTestDataList.length; i++) { final td = audioTestDataList[i]; - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await player.play(td.source); await tester.pumpAndSettle(); // Sources take some time to get initialized @@ -129,6 +120,7 @@ void main() { } await player.stop(); } + await tester.pumpLinux(); await player.dispose(); }); }); @@ -155,10 +147,7 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await player.play(td.source); await tester.pumpAndSettle(); await tester.pump(td.duration + const Duration(seconds: 8)); @@ -176,6 +165,7 @@ void main() { await tester.pumpAndSettle(); await tester.pump(td.duration + const Duration(seconds: 8)); expect(player.state, PlayerState.completed); + await tester.pumpLinux(); await player.dispose(); }, skip: !features.hasForceSpeaker, @@ -203,10 +193,7 @@ void main() { await AudioPlayer.global.setAudioContext(audioContext); await player.setAudioContext(audioContext); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await player.setSource(td.source); await player.resume(); await tester.pumpAndSettle(); @@ -229,6 +216,7 @@ void main() { expect(player.state, PlayerState.playing); await player.stop(); expect(player.state, PlayerState.stopped); + await tester.pumpLinux(); await player.dispose(); }, skip: !features.hasForceSpeaker || !features.hasLowLatency, @@ -253,6 +241,7 @@ void main() { final log = await logCompleter.future; expect(log, 'SomeLog'); await onLogSub.cancel(); + await tester.pumpLinux(); await player.dispose(); }); @@ -278,17 +267,15 @@ void main() { (tester) async { final player = AudioPlayer(); try { + await tester.pumpLinux(); // Throws PlatformException via MethodChannel: - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } await player.setSource(AssetSource(invalidAsset)); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses } catch (e) { expect(e, isInstanceOf()); } + await tester.pumpLinux(); await player.dispose(); }, ); @@ -298,17 +285,15 @@ void main() { (tester) async { final player = AudioPlayer(); try { + await tester.pumpLinux(); // Throws PlatformException via MethodChannel: - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } await player.setSource(UrlSource('non_existent.txt')); fail('PlatformException not thrown'); // ignore: avoid_catches_without_on_clauses } catch (e) { expect(e, isInstanceOf()); } + await tester.pumpLinux(); await player.dispose(); }, ); @@ -355,10 +340,7 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, @@ -372,6 +354,7 @@ void main() { ); await onPreparedSub.cancel(); + await tester.pumpLinux(); await platform.dispose(playerId); }); @@ -394,10 +377,7 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + await tester.pumpLinux(); await platform.setSourceUrl( playerId, (mp3Url1TestData.source as UrlSource).url, @@ -419,6 +399,7 @@ void main() { expect(await platform.getCurrentPosition(playerId), 21); await onPreparedSub.cancel(); + await tester.pumpLinux(); await platform.dispose(playerId); }); @@ -442,10 +423,7 @@ void main() { }, onError: preparedCompleter.completeError, ); - if (isLinux) { - // FIXME(gustl22): Linux needs additional pump (#1556) - await tester.pump(); - } + tester.pumpLinux(); await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, @@ -453,6 +431,7 @@ void main() { await preparedCompleter.future.timeout(const Duration(seconds: 30)); await onPreparedSub.cancel(); } + await tester.pumpLinux(); await platform.dispose(playerId); }); }); @@ -469,6 +448,7 @@ void main() { final eventSub = eventStream.listen(null); await eventSub.cancel(); } + await tester.pumpLinux(); await platform.dispose(playerId); }); @@ -495,6 +475,7 @@ void main() { expect(platformException.code, 'SomeErrorCode'); expect(platformException.message, 'SomeErrorMessage'); await eventStreamSub.cancel(); + await tester.pumpLinux(); await platform.dispose(playerId); }); @@ -522,3 +503,12 @@ void main() { }); }); } + +extension on WidgetTester { + Future pumpLinux() async { + if (!kIsWeb && Platform.isLinux) { + // FIXME(gustl22): Linux needs additional pump (#1556) + await pump(); + } + } +} From 8b36dff5ba016c108482edce3b51c0a54eb7419d Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 13:32:27 +0200 Subject: [PATCH 19/34] remove unused variable --- packages/audioplayers/example/integration_test/lib_test.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index f4d76ad42..89918f0e1 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -19,7 +19,6 @@ void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); final isAndroid = !kIsWeb && Platform.isAndroid; - final isLinux = !kIsWeb && Platform.isLinux; final wavUrl1TestData = LibSourceTestData( source: UrlSource(wavUrl1), From bb93d3f2e99298c84c7b881a285840f0933d27b5 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:08:12 +0200 Subject: [PATCH 20/34] [WIP]: comment tests --- .github/workflows/pull-request.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 7888645b6..2a7d9b3f0 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,5 +17,5 @@ jobs: enable_web: ${{ github.event.pull_request.draft == false }} enable_ios: ${{ github.event.pull_request.draft == false }} enable_windows: ${{ github.event.pull_request.draft == false }} - enable_linux: ${{ github.event.pull_request.draft == false }} + enable_linux: true enable_macos: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6f2cc3cd0..d212b6f68 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -290,4 +290,4 @@ jobs: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & ( cd server; dart run bin/server.dart ) & flutter test -d linux integration_test/lib_test.dart --dart-define USE_LOCAL_SERVER=true - flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true +# flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true From b8c4fd86f737c021021d7f361bb1c9b7ce384a3c Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:11:48 +0200 Subject: [PATCH 21/34] [WIP] : debug variables --- .../example/integration_test/lib_test.dart | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 89918f0e1..e8e789678 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -65,19 +65,25 @@ void main() { ), ]; + print('A'); + group('play multiple sources', () { testWidgets( 'play multiple sources simultaneously', (WidgetTester tester) async { + print('A1'); final players = List.generate(audioTestDataList.length, (_) => AudioPlayer()); + print('A2'); // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); + print('A3'); await tester.pumpLinux(); await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); + print('A4'); await tester.pumpAndSettle(); // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); @@ -89,16 +95,21 @@ void main() { printWithTimeOnFailure('Test position: $td'); expect(position, greaterThan(Duration.zero)); } + print('A5-$i'); await players[i].stop(); } + print('A6'); await tester.pumpLinux(); + print('A7'); await Future.wait(players.map((p) => p.dispose())); + print('A8'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); + print('B'); testWidgets('play multiple sources consecutively', (WidgetTester tester) async { @@ -132,6 +143,7 @@ void main() { testWidgets( 'test changing AudioContextConfigs', (WidgetTester tester) async { + print('C'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); @@ -177,6 +189,7 @@ void main() { testWidgets( 'test changing AudioContextConfigs in LOW_LATENCY mode', (WidgetTester tester) async { + print('D'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); player.setPlayerMode(PlayerMode.lowLatency); @@ -224,6 +237,7 @@ void main() { group('Logging', () { testWidgets('Emit platform log', (tester) async { + print('E'); final logCompleter = Completer(); const playerId = 'somePlayerId'; @@ -245,6 +259,7 @@ void main() { }); testWidgets('Emit global platform log', (tester) async { + print('F'); final completer = Completer(); final eventStreamSub = AudioPlayer.global.onLog.listen( completer.complete, @@ -264,6 +279,7 @@ void main() { testWidgets( 'Throw PlatformException, when loading invalid file', (tester) async { + print('G'); final player = AudioPlayer(); try { await tester.pumpLinux(); @@ -282,6 +298,7 @@ void main() { testWidgets( 'Throw PlatformException, when loading non existent file', (tester) async { + print('H'); final player = AudioPlayer(); try { await tester.pumpLinux(); @@ -300,6 +317,7 @@ void main() { group('Platform method channel', () { testWidgets('#create and #dispose', (tester) async { + print('J'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -321,6 +339,7 @@ void main() { }); testWidgets('#setSource #getPosition and #getDuration', (tester) async { + print('K'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -358,6 +377,7 @@ void main() { }); testWidgets('#seek with millisecond precision', (tester) async { + print('L'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -403,6 +423,7 @@ void main() { }); testWidgets('Set same source twice (#1520)', (tester) async { + print('M'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -437,6 +458,7 @@ void main() { group('Platform event channel', () { testWidgets('Listen and cancel twice', (tester) async { + print('N'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -452,6 +474,7 @@ void main() { }); testWidgets('Emit platform error', (tester) async { + print('O'); final errorCompleter = Completer(); final platform = AudioplayersPlatformInterface.instance; @@ -479,6 +502,7 @@ void main() { }); testWidgets('Emit global platform error', (tester) async { + print('P'); final errorCompleter = Completer(); final global = GlobalAudioplayersPlatformInterface.instance; @@ -501,6 +525,8 @@ void main() { // await eventStreamSub.cancel(); }); }); + + print('Z'); } extension on WidgetTester { From fd65737f396df2f09786a8c0170159364c0393c3 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:17:00 +0200 Subject: [PATCH 22/34] [WIP] : add pumps --- .../example/integration_test/lib_test.dart | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index e8e789678..8229085e7 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -97,22 +97,26 @@ void main() { } print('A5-$i'); await players[i].stop(); + print('A6-$i'); + await tester.pumpLinux(); } - print('A6'); - await tester.pumpLinux(); print('A7'); - await Future.wait(players.map((p) => p.dispose())); + await tester.pumpLinux(); print('A8'); + await Future.wait(players.map((p) => p.dispose())); + print('A9'); + await tester.pumpLinux(); + print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); - print('B'); testWidgets('play multiple sources consecutively', (WidgetTester tester) async { + print('B'); final player = AudioPlayer(); for (var i = 0; i < audioTestDataList.length; i++) { From 3c3b1fc0af3904a23b3e978c9647ec9954a7bd77 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:22:08 +0200 Subject: [PATCH 23/34] [WIP] : remove some pumps --- packages/audioplayers/example/integration_test/lib_test.dart | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 8229085e7..f9e39bc7c 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -100,12 +100,8 @@ void main() { print('A6-$i'); await tester.pumpLinux(); } - print('A7'); - await tester.pumpLinux(); print('A8'); await Future.wait(players.map((p) => p.dispose())); - print('A9'); - await tester.pumpLinux(); print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) From e7c82f07ea89cc83430ff53509786f6e6bd43217 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:22:38 +0200 Subject: [PATCH 24/34] [WIP] : other pumps --- .../audioplayers/example/integration_test/lib_test.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index f9e39bc7c..30049d5de 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -97,11 +97,11 @@ void main() { } print('A5-$i'); await players[i].stop(); - print('A6-$i'); - await tester.pumpLinux(); } - print('A8'); + print('A7'); await Future.wait(players.map((p) => p.dispose())); + print('A9'); + await tester.pumpLinux(); print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) From 3b13355a274f48cb9713595b3cc4469ad80cdddd Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:23:53 +0200 Subject: [PATCH 25/34] [WIP] : retest default --- packages/audioplayers/example/integration_test/lib_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 30049d5de..076fa06fb 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -99,10 +99,10 @@ void main() { await players[i].stop(); } print('A7'); + await tester.pumpLinux(); + print('A8'); await Future.wait(players.map((p) => p.dispose())); print('A9'); - await tester.pumpLinux(); - print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with From 815ecbe18b4b7f1a43667430695b500cf03eca7a Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:42:21 +0200 Subject: [PATCH 26/34] Revert "[WIP] : retest default" This reverts commit 3b13355a274f48cb9713595b3cc4469ad80cdddd. --- packages/audioplayers/example/integration_test/lib_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 076fa06fb..30049d5de 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -99,10 +99,10 @@ void main() { await players[i].stop(); } print('A7'); - await tester.pumpLinux(); - print('A8'); await Future.wait(players.map((p) => p.dispose())); print('A9'); + await tester.pumpLinux(); + print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with From e6e99a0993a5884e06bd0c7deb41e77463653b81 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:42:21 +0200 Subject: [PATCH 27/34] Revert "[WIP] : other pumps" This reverts commit e7c82f07ea89cc83430ff53509786f6e6bd43217. --- .../audioplayers/example/integration_test/lib_test.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 30049d5de..f9e39bc7c 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -97,11 +97,11 @@ void main() { } print('A5-$i'); await players[i].stop(); + print('A6-$i'); + await tester.pumpLinux(); } - print('A7'); + print('A8'); await Future.wait(players.map((p) => p.dispose())); - print('A9'); - await tester.pumpLinux(); print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) From e96e5f5b8d7fe7acce0237a2a8556e85921b956b Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:42:21 +0200 Subject: [PATCH 28/34] Revert "[WIP] : remove some pumps" This reverts commit 3c3b1fc0af3904a23b3e978c9647ec9954a7bd77. --- packages/audioplayers/example/integration_test/lib_test.dart | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index f9e39bc7c..8229085e7 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -100,8 +100,12 @@ void main() { print('A6-$i'); await tester.pumpLinux(); } + print('A7'); + await tester.pumpLinux(); print('A8'); await Future.wait(players.map((p) => p.dispose())); + print('A9'); + await tester.pumpLinux(); print('A10'); }, // FIXME: Causes media error on Android (see #1333, #1353) From 3888137f2bb877920d72fb84e7b1ab9957f52fc4 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:42:21 +0200 Subject: [PATCH 29/34] Revert "[WIP] : add pumps" This reverts commit fd65737f396df2f09786a8c0170159364c0393c3. --- .../example/integration_test/lib_test.dart | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 8229085e7..e8e789678 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -97,26 +97,22 @@ void main() { } print('A5-$i'); await players[i].stop(); - print('A6-$i'); - await tester.pumpLinux(); } - print('A7'); + print('A6'); await tester.pumpLinux(); - print('A8'); + print('A7'); await Future.wait(players.map((p) => p.dispose())); - print('A9'); - await tester.pumpLinux(); - print('A10'); + print('A8'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); + print('B'); testWidgets('play multiple sources consecutively', (WidgetTester tester) async { - print('B'); final player = AudioPlayer(); for (var i = 0; i < audioTestDataList.length; i++) { From 5b2661e9f40fecf26e58a65670ccb25477b1a414 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:42:22 +0200 Subject: [PATCH 30/34] Revert "[WIP] : debug variables" This reverts commit b8c4fd86f737c021021d7f361bb1c9b7ce384a3c. --- .../example/integration_test/lib_test.dart | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index e8e789678..89918f0e1 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -65,25 +65,19 @@ void main() { ), ]; - print('A'); - group('play multiple sources', () { testWidgets( 'play multiple sources simultaneously', (WidgetTester tester) async { - print('A1'); final players = List.generate(audioTestDataList.length, (_) => AudioPlayer()); - print('A2'); // Start all players simultaneously final iterator = List.generate(audioTestDataList.length, (i) => i); - print('A3'); await tester.pumpLinux(); await Future.wait( iterator.map((i) => players[i].play(audioTestDataList[i].source)), ); - print('A4'); await tester.pumpAndSettle(); // Sources take some time to get initialized await tester.pump(const Duration(seconds: 8)); @@ -95,21 +89,16 @@ void main() { printWithTimeOnFailure('Test position: $td'); expect(position, greaterThan(Duration.zero)); } - print('A5-$i'); await players[i].stop(); } - print('A6'); await tester.pumpLinux(); - print('A7'); await Future.wait(players.map((p) => p.dispose())); - print('A8'); }, // FIXME: Causes media error on Android (see #1333, #1353) // Unexpected platform error: MediaPlayer error with // what:MEDIA_ERROR_UNKNOWN {what:1} extra:MEDIA_ERROR_SYSTEM skip: isAndroid, ); - print('B'); testWidgets('play multiple sources consecutively', (WidgetTester tester) async { @@ -143,7 +132,6 @@ void main() { testWidgets( 'test changing AudioContextConfigs', (WidgetTester tester) async { - print('C'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); @@ -189,7 +177,6 @@ void main() { testWidgets( 'test changing AudioContextConfigs in LOW_LATENCY mode', (WidgetTester tester) async { - print('D'); final player = AudioPlayer(); await player.setReleaseMode(ReleaseMode.stop); player.setPlayerMode(PlayerMode.lowLatency); @@ -237,7 +224,6 @@ void main() { group('Logging', () { testWidgets('Emit platform log', (tester) async { - print('E'); final logCompleter = Completer(); const playerId = 'somePlayerId'; @@ -259,7 +245,6 @@ void main() { }); testWidgets('Emit global platform log', (tester) async { - print('F'); final completer = Completer(); final eventStreamSub = AudioPlayer.global.onLog.listen( completer.complete, @@ -279,7 +264,6 @@ void main() { testWidgets( 'Throw PlatformException, when loading invalid file', (tester) async { - print('G'); final player = AudioPlayer(); try { await tester.pumpLinux(); @@ -298,7 +282,6 @@ void main() { testWidgets( 'Throw PlatformException, when loading non existent file', (tester) async { - print('H'); final player = AudioPlayer(); try { await tester.pumpLinux(); @@ -317,7 +300,6 @@ void main() { group('Platform method channel', () { testWidgets('#create and #dispose', (tester) async { - print('J'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -339,7 +321,6 @@ void main() { }); testWidgets('#setSource #getPosition and #getDuration', (tester) async { - print('K'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -377,7 +358,6 @@ void main() { }); testWidgets('#seek with millisecond precision', (tester) async { - print('L'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -423,7 +403,6 @@ void main() { }); testWidgets('Set same source twice (#1520)', (tester) async { - print('M'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -458,7 +437,6 @@ void main() { group('Platform event channel', () { testWidgets('Listen and cancel twice', (tester) async { - print('N'); final platform = AudioplayersPlatformInterface.instance; const playerId = 'somePlayerId'; @@ -474,7 +452,6 @@ void main() { }); testWidgets('Emit platform error', (tester) async { - print('O'); final errorCompleter = Completer(); final platform = AudioplayersPlatformInterface.instance; @@ -502,7 +479,6 @@ void main() { }); testWidgets('Emit global platform error', (tester) async { - print('P'); final errorCompleter = Completer(); final global = GlobalAudioplayersPlatformInterface.instance; @@ -525,8 +501,6 @@ void main() { // await eventStreamSub.cancel(); }); }); - - print('Z'); } extension on WidgetTester { From 791876759a233b857087451ccbe82fe9c75f16d9 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:44:13 +0200 Subject: [PATCH 31/34] remoe faulty pumps --- packages/audioplayers/example/integration_test/lib_test.dart | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 89918f0e1..9bd32d528 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -430,7 +430,6 @@ void main() { await preparedCompleter.future.timeout(const Duration(seconds: 30)); await onPreparedSub.cancel(); } - await tester.pumpLinux(); await platform.dispose(playerId); }); }); @@ -447,7 +446,6 @@ void main() { final eventSub = eventStream.listen(null); await eventSub.cancel(); } - await tester.pumpLinux(); await platform.dispose(playerId); }); From b7b3bc4711a6d3e99001b7c110e9db1d2d223b8f Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:54:56 +0200 Subject: [PATCH 32/34] pump elsewhere --- packages/audioplayers/example/integration_test/lib_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 9bd32d528..8485a8d55 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -90,8 +90,8 @@ void main() { expect(position, greaterThan(Duration.zero)); } await players[i].stop(); + await tester.pumpLinux(); } - await tester.pumpLinux(); await Future.wait(players.map((p) => p.dispose())); }, // FIXME: Causes media error on Android (see #1333, #1353) From 7ebba344f3b2676d0b34594f00f8d961d949d938 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 15:56:02 +0200 Subject: [PATCH 33/34] enable app tests again --- .github/workflows/pull-request.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 2a7d9b3f0..7888645b6 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -17,5 +17,5 @@ jobs: enable_web: ${{ github.event.pull_request.draft == false }} enable_ios: ${{ github.event.pull_request.draft == false }} enable_windows: ${{ github.event.pull_request.draft == false }} - enable_linux: true + enable_linux: ${{ github.event.pull_request.draft == false }} enable_macos: ${{ github.event.pull_request.draft == false }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d212b6f68..6f2cc3cd0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -290,4 +290,4 @@ jobs: sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & ( cd server; dart run bin/server.dart ) & flutter test -d linux integration_test/lib_test.dart --dart-define USE_LOCAL_SERVER=true -# flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true + flutter test -d linux integration_test/app_test.dart --dart-define USE_LOCAL_SERVER=true From 6634676ac88a2bc96f74484d0d83d862d1027ace Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Wed, 19 Jul 2023 16:02:38 +0200 Subject: [PATCH 34/34] fix pump --- packages/audioplayers/example/integration_test/lib_test.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/audioplayers/example/integration_test/lib_test.dart b/packages/audioplayers/example/integration_test/lib_test.dart index 8485a8d55..11743db8b 100644 --- a/packages/audioplayers/example/integration_test/lib_test.dart +++ b/packages/audioplayers/example/integration_test/lib_test.dart @@ -422,7 +422,7 @@ void main() { }, onError: preparedCompleter.completeError, ); - tester.pumpLinux(); + await tester.pumpLinux(); await platform.setSourceUrl( playerId, (wavUrl1TestData.source as UrlSource).url, @@ -430,6 +430,7 @@ void main() { await preparedCompleter.future.timeout(const Duration(seconds: 30)); await onPreparedSub.cancel(); } + await tester.pumpLinux(); await platform.dispose(playerId); }); }); @@ -446,6 +447,7 @@ void main() { final eventSub = eventStream.listen(null); await eventSub.cancel(); } + await tester.pumpLinux(); await platform.dispose(playerId); });