From 5fc437e6f2149047786532e81e59007ce5b1854a Mon Sep 17 00:00:00 2001 From: Brian Wilkerson Date: Wed, 19 Jun 2024 14:07:19 +0000 Subject: [PATCH] Use shared mock packages in linter I believe that this removes the last of the mock packages from the linter. I went ahead and created shared mock packages for everything supported in 'analyzer' even though the linter doesn't use all of them. Change-Id: I83a9f83a9c9cca7c6969ffade3d0b11c1ec54fd1 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/372220 Reviewed-by: Sam Rawlins Commit-Queue: Brian Wilkerson --- .../lib/test/mock_packages/mock_packages.dart | 25 +++++++++++++++++ .../angular_meta/lib/angular_meta.dart | 14 ++++++++++ .../package_content/angular_meta/pubspec.yaml | 1 + .../package_content/ffi/lib/ffi.dart | 20 +++++++++++++ .../package_content/ffi/pubspec.yaml | 1 + .../package_content/fixnum/lib/fixnum.dart | 5 ++++ .../package_content/fixnum/pubspec.yaml | 1 + .../package_content/js/lib/js.dart | 4 +++ .../package_content/js/lib/pubspec.yaml | 1 + .../package_content/kernel/lib/ast.dart | 7 +++++ .../package_content/kernel/pubspec.yaml | 1 + pkg/linter/test/rule_test_support.dart | 28 ++----------------- 12 files changed, 83 insertions(+), 25 deletions(-) create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/lib/angular_meta.dart create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/pubspec.yaml create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/lib/ffi.dart create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/pubspec.yaml create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/lib/fixnum.dart create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/pubspec.yaml create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/js.dart create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/pubspec.yaml create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/lib/ast.dart create mode 100644 pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/pubspec.yaml diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/mock_packages.dart b/pkg/analyzer_utilities/lib/test/mock_packages/mock_packages.dart index 2d0613353e6..b76403feff8 100644 --- a/pkg/analyzer_utilities/lib/test/mock_packages/mock_packages.dart +++ b/pkg/analyzer_utilities/lib/test/mock_packages/mock_packages.dart @@ -94,11 +94,36 @@ mixin MockPackagesMixin { ResourceProvider get resourceProvider; + Folder addAngularMeta() { + var packageFolder = _addFiles('angular_meta'); + return packageFolder.getChildAssumingFolder('lib'); + } + + Folder addFfi() { + var packageFolder = _addFiles('ffi'); + return packageFolder.getChildAssumingFolder('lib'); + } + + Folder addFixnum() { + var packageFolder = _addFiles('fixnum'); + return packageFolder.getChildAssumingFolder('lib'); + } + Folder addFlutter() { var packageFolder = _addFiles('flutter'); return packageFolder.getChildAssumingFolder('lib'); } + Folder addJs() { + var packageFolder = _addFiles('js'); + return packageFolder.getChildAssumingFolder('lib'); + } + + Folder addKernel() { + var packageFolder = _addFiles('kernel'); + return packageFolder.getChildAssumingFolder('lib'); + } + Folder addMeta() { var packageFolder = _addFiles('meta'); return packageFolder.getChildAssumingFolder('lib'); diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/lib/angular_meta.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/lib/angular_meta.dart new file mode 100644 index 00000000000..f49749e5069 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/lib/angular_meta.dart @@ -0,0 +1,14 @@ +library angular.meta; + +const _VisibleForTemplate visibleForTemplate = const _VisibleForTemplate(); + +const _VisibleOutsideTemplate visibleOutsideTemplate = + const _VisibleOutsideTemplate(); + +class _VisibleForTemplate { + const _VisibleForTemplate(); +} + +class _VisibleOutsideTemplate { + const _VisibleOutsideTemplate(); +} diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/pubspec.yaml b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/pubspec.yaml new file mode 100644 index 00000000000..97d08bfcaa2 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/angular_meta/pubspec.yaml @@ -0,0 +1 @@ +name: angular_meta diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/lib/ffi.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/lib/ffi.dart new file mode 100644 index 00000000000..ad45792f7c3 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/lib/ffi.dart @@ -0,0 +1,20 @@ +import 'dart:ffi'; + +const Allocator calloc = _CallocAllocator(); + +abstract class Allocator { + Pointer allocate(int byteCount, {int? alignment}); + + void free(Pointer pointer); +} + +final class Utf8 extends Opaque {} + +class _CallocAllocator implements Allocator { + @override + Pointer allocate(int byteCount, {int? alignment}) => + throw ''; + + @override + void free(Pointer pointer) => throw ''; +} diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/pubspec.yaml b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/pubspec.yaml new file mode 100644 index 00000000000..dc049184787 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/ffi/pubspec.yaml @@ -0,0 +1 @@ +name: ffi diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/lib/fixnum.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/lib/fixnum.dart new file mode 100644 index 00000000000..7b41c957ad8 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/lib/fixnum.dart @@ -0,0 +1,5 @@ +library fixnum; + +class Int32 {} + +class Int64 {} diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/pubspec.yaml b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/pubspec.yaml new file mode 100644 index 00000000000..48a150cb053 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/fixnum/pubspec.yaml @@ -0,0 +1 @@ +name: fixnum diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/js.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/js.dart new file mode 100644 index 00000000000..6fa9220665f --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/js.dart @@ -0,0 +1,4 @@ +library js; + +// ignore: EXPORT_INTERNAL_LIBRARY +export 'dart:_js_annotations' show JS, staticInterop; diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/pubspec.yaml b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/pubspec.yaml new file mode 100644 index 00000000000..c0a10f57f70 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/js/lib/pubspec.yaml @@ -0,0 +1 @@ +name: js diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/lib/ast.dart b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/lib/ast.dart new file mode 100644 index 00000000000..d5e630ecb90 --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/lib/ast.dart @@ -0,0 +1,7 @@ +library kernel.ast; + +abstract class Node {} + +class DartType extends Node {} + +class InterfaceType extends DartType {} diff --git a/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/pubspec.yaml b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/pubspec.yaml new file mode 100644 index 00000000000..6019ada239d --- /dev/null +++ b/pkg/analyzer_utilities/lib/test/mock_packages/package_content/kernel/pubspec.yaml @@ -0,0 +1 @@ +name: kernel diff --git a/pkg/linter/test/rule_test_support.dart b/pkg/linter/test/rule_test_support.dart index 629d98d02e9..6af2985e5b2 100644 --- a/pkg/linter/test/rule_test_support.dart +++ b/pkg/linter/test/rule_test_support.dart @@ -16,7 +16,6 @@ import 'package:analyzer/src/lint/registry.dart'; import 'package:analyzer/src/lint/util.dart'; import 'package:analyzer/src/test_utilities/find_element.dart'; import 'package:analyzer/src/test_utilities/find_node.dart'; -import 'package:analyzer/src/test_utilities/mock_packages.dart'; import 'package:analyzer/src/test_utilities/mock_sdk.dart'; import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart'; import 'package:analyzer_utilities/test/mock_packages/mock_packages.dart'; @@ -421,10 +420,7 @@ class PubPackageResolutionTest extends _ContextResolutionTest { ); if (addFixnumPackageDep) { - var fixnumPath = '/packages/fixnum'; - addFixnumPackageFiles( - getFolder(fixnumPath), - ); + var fixnumPath = addFixnum().parent.path; configCopy.add(name: 'fixnum', rootPath: fixnumPath); } @@ -437,18 +433,12 @@ class PubPackageResolutionTest extends _ContextResolutionTest { } if (addJsPackageDep) { - var jsPath = '/packages/js'; - MockPackages.addJsPackageFiles( - getFolder(jsPath), - ); + var jsPath = addJs().parent.path; configCopy.add(name: 'js', rootPath: jsPath); } if (addKernelPackageDep) { - var kernelPath = '/packages/kernel'; - MockPackages.addKernelPackageFiles( - getFolder(kernelPath), - ); + var kernelPath = addKernel().parent.path; configCopy.add(name: 'kernel', rootPath: kernelPath); } @@ -497,18 +487,6 @@ class PubPackageResolutionTest extends _ContextResolutionTest { } return [...listener.errors]; } - - /// Creates a fake 'fixnum' package that can be used by tests. - static void addFixnumPackageFiles(Folder rootFolder) { - var libFolder = rootFolder.getChildAssumingFolder('lib'); - libFolder.getChildAssumingFile('fixnum.dart').writeAsStringSync(r''' -library fixnum; - -class Int32 {} - -class Int64 {} -'''); - } } class PubspecYamlFileConfig {