From 7559322332fd8613aa7ae434d0325fd1f972780e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20So=C3=B3s?= Date: Thu, 11 Apr 2024 15:10:37 +0200 Subject: [PATCH] Starting each analysis from scratch in end2end tests. (#1347) --- test/end2end_light_test.dart | 64 +++++++++++++++++------------- test/end2end_test.dart | 77 +++++++++++++++++------------------- 2 files changed, 73 insertions(+), 68 deletions(-) diff --git a/test/end2end_light_test.dart b/test/end2end_light_test.dart index d6321d961..39b5252c5 100644 --- a/test/end2end_light_test.dart +++ b/test/end2end_light_test.dart @@ -9,35 +9,43 @@ import 'package:path/path.dart' as p; import 'package:test/test.dart'; void main() { - late String tempDir; - late PackageAnalyzer analyzer; - - setUpAll(() async { - tempDir = Directory.systemTemp - .createTempSync('pana-test') - .resolveSymbolicLinksSync(); - final pubCacheDir = p.join(tempDir, 'pub-cache'); - Directory(pubCacheDir).createSync(); - analyzer = PackageAnalyzer(await ToolEnvironment.create( - pubCacheDir: pubCacheDir, - dartdocVersion: 'any', - )); - }); - - tearDownAll(() async { - Directory(tempDir).deleteSync(recursive: true); - }); - void verifyPackage(String package) { - test('end2end light: $package', () async { - final summary = await analyzer.inspectPackage(package); - expect(summary.report, isNotNull); - expect(summary.allDependencies!, isNotEmpty); - expect(summary.tags!, isNotEmpty); - expect(summary.tags, contains('is:dart3-compatible')); - expect(summary.report!.grantedPoints, - greaterThanOrEqualTo(summary.report!.maxPoints - 20)); - }, timeout: const Timeout.factor(2)); + group('end2end light: $package', () { + late String tempDir; + late PackageAnalyzer analyzer; + + setUpAll(() async { + tempDir = Directory.systemTemp + .createTempSync('pana-test') + .resolveSymbolicLinksSync(); + final pubCacheDir = p.join(tempDir, 'pub-cache'); + final dartConfigDir = p.join(tempDir, 'config', 'dart'); + final flutterConfigDir = p.join(tempDir, 'config', 'flutter'); + Directory(pubCacheDir).createSync(); + Directory(dartConfigDir).createSync(recursive: true); + Directory(flutterConfigDir).createSync(recursive: true); + analyzer = PackageAnalyzer(await ToolEnvironment.create( + dartSdkConfig: SdkConfig(configHomePath: dartConfigDir), + flutterSdkConfig: SdkConfig(configHomePath: flutterConfigDir), + pubCacheDir: pubCacheDir, + dartdocVersion: 'any', + )); + }); + + tearDownAll(() async { + Directory(tempDir).deleteSync(recursive: true); + }); + + test('analysis', () async { + final summary = await analyzer.inspectPackage(package); + expect(summary.report, isNotNull); + expect(summary.allDependencies!, isNotEmpty); + expect(summary.tags!, isNotEmpty); + expect(summary.tags, contains('is:dart3-compatible')); + expect(summary.report!.grantedPoints, + greaterThanOrEqualTo(summary.report!.maxPoints - 20)); + }, timeout: const Timeout.factor(4)); + }); } // generic, cross-platform package diff --git a/test/end2end_test.dart b/test/end2end_test.dart index 1389de93e..f28c5f4ba 100644 --- a/test/end2end_test.dart +++ b/test/end2end_test.dart @@ -18,45 +18,6 @@ final _goldenDir = p.join('test', 'goldens', 'end2end'); final _pubDevUri = Uri.parse('https://pub.dartlang.org/'); void main() { - late String tempDir; - late PackageAnalyzer analyzer; - http.Client? httpClient; - late HttpServer httpServer; - - setUpAll(() async { - tempDir = Directory.systemTemp - .createTempSync('pana-test') - .resolveSymbolicLinksSync(); - final pubCacheDir = p.join(tempDir, 'pub-cache'); - final panaCacheDir = p.join(tempDir, 'pana-cache'); - final dartConfigDir = p.join(tempDir, 'config', 'dart'); - final flutterConfigDir = p.join(tempDir, 'config', 'flutter'); - final goldenDirLastModified = await _detectGoldenLastModified(); - Directory(pubCacheDir).createSync(); - Directory(panaCacheDir).createSync(); - Directory(dartConfigDir).createSync(recursive: true); - Directory(flutterConfigDir).createSync(recursive: true); - httpClient = http.Client(); - httpServer = await _startLocalProxy( - httpClient: httpClient, - blockPublishAfter: goldenDirLastModified, - ); - analyzer = PackageAnalyzer(await ToolEnvironment.create( - dartSdkConfig: SdkConfig(configHomePath: dartConfigDir), - flutterSdkConfig: SdkConfig(configHomePath: flutterConfigDir), - pubCacheDir: pubCacheDir, - panaCacheDir: panaCacheDir, - pubHostedUrl: 'http://127.0.0.1:${httpServer.port}', - dartdocVersion: 'any', - )); - }); - - tearDownAll(() async { - await httpServer.close(force: true); - httpClient!.close(); - Directory(tempDir).deleteSync(recursive: true); - }); - void verifyPackage( String package, String version, { @@ -64,10 +25,40 @@ void main() { }) { final filename = '$package-$version.json'; group('end2end: $package $version', () { + late String tempDir; + late PackageAnalyzer analyzer; + http.Client? httpClient; + late HttpServer httpServer; late final Map actualMap; setUpAll(() async { - final dartdocOutputDir = p.join(tempDir, 'doc', '$package-version'); + tempDir = Directory.systemTemp + .createTempSync('pana-test') + .resolveSymbolicLinksSync(); + final pubCacheDir = p.join(tempDir, 'pub-cache'); + final panaCacheDir = p.join(tempDir, 'pana-cache'); + final dartConfigDir = p.join(tempDir, 'config', 'dart'); + final flutterConfigDir = p.join(tempDir, 'config', 'flutter'); + final goldenDirLastModified = await _detectGoldenLastModified(); + Directory(pubCacheDir).createSync(); + Directory(panaCacheDir).createSync(); + Directory(dartConfigDir).createSync(recursive: true); + Directory(flutterConfigDir).createSync(recursive: true); + httpClient = http.Client(); + httpServer = await _startLocalProxy( + httpClient: httpClient, + blockPublishAfter: goldenDirLastModified, + ); + analyzer = PackageAnalyzer(await ToolEnvironment.create( + dartSdkConfig: SdkConfig(configHomePath: dartConfigDir), + flutterSdkConfig: SdkConfig(configHomePath: flutterConfigDir), + pubCacheDir: pubCacheDir, + panaCacheDir: panaCacheDir, + pubHostedUrl: 'http://127.0.0.1:${httpServer.port}', + dartdocVersion: 'any', + )); + + final dartdocOutputDir = p.join(tempDir, 'doc', '$package-$version'); await Directory(dartdocOutputDir).create(recursive: true); var summary = await analyzer.inspectPackage( @@ -111,6 +102,12 @@ void main() { actualMap = json.decode(updated) as Map; }); + tearDownAll(() async { + await httpServer.close(force: true); + httpClient!.close(); + Directory(tempDir).deleteSync(recursive: true); + }); + test('matches known good', () { void removeDependencyDetails(Map map) { if (map.containsKey('pkgResolution') &&