From 902a7f8726c39f157643ad96d415c6a4fc0debf2 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:43:44 -0800 Subject: [PATCH 1/5] Don't run the frontend server client tests on windows --- frontend_server_client/mono_pkg.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend_server_client/mono_pkg.yaml b/frontend_server_client/mono_pkg.yaml index d135db4a2..3a61467d3 100644 --- a/frontend_server_client/mono_pkg.yaml +++ b/frontend_server_client/mono_pkg.yaml @@ -11,5 +11,4 @@ stages: - dev - main os: - - windows - linux From 480bf23e88770249bbf9eb38ae7cdf92ef092bbc Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:45:11 -0800 Subject: [PATCH 2/5] Just disable for the test --- frontend_server_client/mono_pkg.yaml | 1 + ...d_sever_client_test.dart => frontend_server_client_test.dart} | 1 + 2 files changed, 2 insertions(+) rename frontend_server_client/test/{frontend_sever_client_test.dart => frontend_server_client_test.dart} (99%) diff --git a/frontend_server_client/mono_pkg.yaml b/frontend_server_client/mono_pkg.yaml index 3a61467d3..d135db4a2 100644 --- a/frontend_server_client/mono_pkg.yaml +++ b/frontend_server_client/mono_pkg.yaml @@ -11,4 +11,5 @@ stages: - dev - main os: + - windows - linux diff --git a/frontend_server_client/test/frontend_sever_client_test.dart b/frontend_server_client/test/frontend_server_client_test.dart similarity index 99% rename from frontend_server_client/test/frontend_sever_client_test.dart rename to frontend_server_client/test/frontend_server_client_test.dart index 4deab4fac..d22d1ba21 100644 --- a/frontend_server_client/test/frontend_sever_client_test.dart +++ b/frontend_server_client/test/frontend_server_client_test.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. @TestOn('vm') +@TestOn('!windows') import 'dart:convert'; import 'dart:io'; From 247565700e6640abc3e155dc9727ac7112f184df Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:51:14 -0800 Subject: [PATCH 3/5] Actually disable just for the test case --- .../test/frontend_server_client_test.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/frontend_server_client/test/frontend_server_client_test.dart b/frontend_server_client/test/frontend_server_client_test.dart index d22d1ba21..b739b0657 100644 --- a/frontend_server_client/test/frontend_server_client_test.dart +++ b/frontend_server_client/test/frontend_server_client_test.dart @@ -3,7 +3,6 @@ // found in the LICENSE file. @TestOn('vm') -@TestOn('!windows') import 'dart:convert'; import 'dart:io'; @@ -112,7 +111,10 @@ String get message => p.join('hello', 'world'); expect(await stdoutLines.next, p.join('goodbye', 'world')); expect(await process.exitCode, 0); - }); + }, + // Issue: https://github.com/dart-lang/webdev/issues/2377 + skip: Platform.isWindows, + ); test('can handle compile errors and reload fixes', () async { var entrypoint = p.join(packageRoot, 'bin', 'main.dart'); From 7ac2fa2ad93e68d8b5d55216a830e08397223089 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 26 Feb 2024 13:53:23 -0800 Subject: [PATCH 4/5] format --- .../test/frontend_server_client_test.dart | 109 +++++++++--------- 1 file changed, 56 insertions(+), 53 deletions(-) diff --git a/frontend_server_client/test/frontend_server_client_test.dart b/frontend_server_client/test/frontend_server_client_test.dart index b739b0657..49f769970 100644 --- a/frontend_server_client/test/frontend_server_client_test.dart +++ b/frontend_server_client/test/frontend_server_client_test.dart @@ -58,59 +58,62 @@ String get message => p.join('hello', 'world'); await client.shutdown(); }); - test('can compile, recompile, and hot reload a vm app', () async { - var entrypoint = p.join(packageRoot, 'bin', 'main.dart'); - client = await FrontendServerClient.start( - entrypoint, p.join(packageRoot, 'out.dill'), vmPlatformDill); - var result = await client.compile(); - client.accept(); - expect(result.compilerOutputLines, isEmpty); - expect(result.errorCount, 0); - expect( - result.newSources, - containsAll([ - File(entrypoint).uri, - packageConfig.resolve(Uri.parse('package:path/path.dart')), - ])); - expect(result.removedSources, isEmpty); - expect(result.dillOutput, isNotNull); - expect(File(result.dillOutput!).existsSync(), true); - var process = await Process.start(Platform.resolvedExecutable, [ - '--observe', - '--no-pause-isolates-on-exit', - '--pause-isolates-on-start', - result.dillOutput! - ]); - addTearDown(process.kill); - var stdoutLines = StreamQueue( - process.stdout.transform(utf8.decoder).transform(const LineSplitter())); - - var observatoryLine = await stdoutLines.next; - var observatoryUri = - '${observatoryLine.split(' ').last.replaceFirst('http', 'ws')}ws'; - var vmService = await vmServiceConnectUri(observatoryUri); - var isolate = await waitForIsolatesAndResume(vmService); - - await expectLater(stdoutLines, emitsThrough(p.join('hello', 'world'))); - - var appFile = File(entrypoint); - var originalContent = await appFile.readAsString(); - var newContent = originalContent.replaceFirst('hello', 'goodbye'); - await appFile.writeAsString(newContent); - - result = await client.compile([File(entrypoint).uri]); - - client.accept(); - expect(result.newSources, isEmpty); - expect(result.removedSources, isEmpty); - expect(result.compilerOutputLines, isEmpty); - expect(result.errorCount, 0); - expect(result.dillOutput, endsWith('.incremental.dill')); - - await vmService.reloadSources(isolate.id!, rootLibUri: result.dillOutput); - - expect(await stdoutLines.next, p.join('goodbye', 'world')); - expect(await process.exitCode, 0); + test( + 'can compile, recompile, and hot reload a vm app', + () async { + var entrypoint = p.join(packageRoot, 'bin', 'main.dart'); + client = await FrontendServerClient.start( + entrypoint, p.join(packageRoot, 'out.dill'), vmPlatformDill); + var result = await client.compile(); + client.accept(); + expect(result.compilerOutputLines, isEmpty); + expect(result.errorCount, 0); + expect( + result.newSources, + containsAll([ + File(entrypoint).uri, + packageConfig.resolve(Uri.parse('package:path/path.dart')), + ])); + expect(result.removedSources, isEmpty); + expect(result.dillOutput, isNotNull); + expect(File(result.dillOutput!).existsSync(), true); + var process = await Process.start(Platform.resolvedExecutable, [ + '--observe', + '--no-pause-isolates-on-exit', + '--pause-isolates-on-start', + result.dillOutput! + ]); + addTearDown(process.kill); + var stdoutLines = StreamQueue(process.stdout + .transform(utf8.decoder) + .transform(const LineSplitter())); + + var observatoryLine = await stdoutLines.next; + var observatoryUri = + '${observatoryLine.split(' ').last.replaceFirst('http', 'ws')}ws'; + var vmService = await vmServiceConnectUri(observatoryUri); + var isolate = await waitForIsolatesAndResume(vmService); + + await expectLater(stdoutLines, emitsThrough(p.join('hello', 'world'))); + + var appFile = File(entrypoint); + var originalContent = await appFile.readAsString(); + var newContent = originalContent.replaceFirst('hello', 'goodbye'); + await appFile.writeAsString(newContent); + + result = await client.compile([File(entrypoint).uri]); + + client.accept(); + expect(result.newSources, isEmpty); + expect(result.removedSources, isEmpty); + expect(result.compilerOutputLines, isEmpty); + expect(result.errorCount, 0); + expect(result.dillOutput, endsWith('.incremental.dill')); + + await vmService.reloadSources(isolate.id!, rootLibUri: result.dillOutput); + + expect(await stdoutLines.next, p.join('goodbye', 'world')); + expect(await process.exitCode, 0); }, // Issue: https://github.com/dart-lang/webdev/issues/2377 skip: Platform.isWindows, From 3855f60434cc6a02c2e4bcbc88c4815716deaaee Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 26 Feb 2024 15:26:36 -0800 Subject: [PATCH 5/5] Disable other test case on windows --- .../test/frontend_server_client_test.dart | 120 +++++++++--------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/frontend_server_client/test/frontend_server_client_test.dart b/frontend_server_client/test/frontend_server_client_test.dart index 49f769970..95ecf81e9 100644 --- a/frontend_server_client/test/frontend_server_client_test.dart +++ b/frontend_server_client/test/frontend_server_client_test.dart @@ -119,68 +119,74 @@ String get message => p.join('hello', 'world'); skip: Platform.isWindows, ); - test('can handle compile errors and reload fixes', () async { - var entrypoint = p.join(packageRoot, 'bin', 'main.dart'); - var entrypointFile = File(entrypoint); - var originalContent = await entrypointFile.readAsString(); - // append two compile errors to the bottom - await entrypointFile - .writeAsString('$originalContent\nint foo = 1.0;\nString bar = 4;'); + test( + 'can handle compile errors and reload fixes', + () async { + var entrypoint = p.join(packageRoot, 'bin', 'main.dart'); + var entrypointFile = File(entrypoint); + var originalContent = await entrypointFile.readAsString(); + // append two compile errors to the bottom + await entrypointFile + .writeAsString('$originalContent\nint foo = 1.0;\nString bar = 4;'); - client = await FrontendServerClient.start( - entrypoint, p.join(packageRoot, 'out.dill'), vmPlatformDill); - var result = await client.compile(); + client = await FrontendServerClient.start( + entrypoint, p.join(packageRoot, 'out.dill'), vmPlatformDill); + var result = await client.compile(); - client.accept(); - expect(result.errorCount, 2); - expect(result.compilerOutputLines, - allOf(contains('int foo = 1.0;'), contains('String bar = 4;'))); - expect( - result.newSources, - containsAll([ - File(entrypoint).uri, - packageConfig.resolve(Uri.parse('package:path/path.dart')), - ])); - expect(result.removedSources, isEmpty); - expect(result.dillOutput, isNotNull); - expect(File(result.dillOutput!).existsSync(), true); + client.accept(); + expect(result.errorCount, 2); + expect(result.compilerOutputLines, + allOf(contains('int foo = 1.0;'), contains('String bar = 4;'))); + expect( + result.newSources, + containsAll([ + File(entrypoint).uri, + packageConfig.resolve(Uri.parse('package:path/path.dart')), + ])); + expect(result.removedSources, isEmpty); + expect(result.dillOutput, isNotNull); + expect(File(result.dillOutput!).existsSync(), true); - var process = await Process.start(Platform.resolvedExecutable, [ - '--observe', - '--no-pause-isolates-on-exit', - '--pause-isolates-on-start', - result.dillOutput! - ]); - addTearDown(process.kill); - var stdoutLines = StreamQueue( - process.stdout.transform(utf8.decoder).transform(const LineSplitter())); - - var observatoryLine = await stdoutLines.next; - var observatoryUri = - '${observatoryLine.split(' ').last.replaceFirst('http', 'ws')}ws'; - var vmService = await vmServiceConnectUri(observatoryUri); - var isolate = await waitForIsolatesAndResume(vmService); - - // The program actually runs regardless of the errors, as they don't affect - // the runtime behavior. - await expectLater(stdoutLines, emitsThrough(p.join('hello', 'world'))); - - await entrypointFile - .writeAsString(originalContent.replaceFirst('hello', 'goodbye')); - result = await client.compile([entrypointFile.uri]); - client.accept(); - expect(result.errorCount, 0); - expect(result.compilerOutputLines, isEmpty); - expect(result.newSources, isEmpty); - expect(result.removedSources, isEmpty); - expect(result.dillOutput, isNotNull); - expect(File(result.dillOutput!).existsSync(), true); + var process = await Process.start(Platform.resolvedExecutable, [ + '--observe', + '--no-pause-isolates-on-exit', + '--pause-isolates-on-start', + result.dillOutput! + ]); + addTearDown(process.kill); + var stdoutLines = StreamQueue(process.stdout + .transform(utf8.decoder) + .transform(const LineSplitter())); - await vmService.reloadSources(isolate.id!, rootLibUri: result.dillOutput); + var observatoryLine = await stdoutLines.next; + var observatoryUri = + '${observatoryLine.split(' ').last.replaceFirst('http', 'ws')}ws'; + var vmService = await vmServiceConnectUri(observatoryUri); + var isolate = await waitForIsolatesAndResume(vmService); - expect(await stdoutLines.next, p.join('goodbye', 'world')); - expect(await process.exitCode, 0); - }); + // The program actually runs regardless of the errors, as they don't affect + // the runtime behavior. + await expectLater(stdoutLines, emitsThrough(p.join('hello', 'world'))); + + await entrypointFile + .writeAsString(originalContent.replaceFirst('hello', 'goodbye')); + result = await client.compile([entrypointFile.uri]); + client.accept(); + expect(result.errorCount, 0); + expect(result.compilerOutputLines, isEmpty); + expect(result.newSources, isEmpty); + expect(result.removedSources, isEmpty); + expect(result.dillOutput, isNotNull); + expect(File(result.dillOutput!).existsSync(), true); + + await vmService.reloadSources(isolate.id!, rootLibUri: result.dillOutput); + + expect(await stdoutLines.next, p.join('goodbye', 'world')); + expect(await process.exitCode, 0); + }, + // Issue: https://github.com/dart-lang/webdev/issues/2377 + skip: Platform.isWindows, + ); test('can compile and recompile a dartdevc app', () async { var entrypoint =