Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(482)

Unified Diff: pkg/front_end/lib/src/fasta/testing/kernel_chain.dart

Issue 2828583003: remove dependencies to analyzer from lib/src/fasta (Closed)
Patch Set: add copyright Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
diff --git a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
index 37a2e0d6e9d0eda77a6430563c43882295af1bfd..247f0b1d7a12503bff99dd557cd866f8fe32e164 100644
--- a/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
+++ b/pkg/front_end/lib/src/fasta/testing/kernel_chain.dart
@@ -5,11 +5,11 @@
// TODO(ahe): Copied from closure_conversion branch of kernel, remove this file
// when closure_conversion is merged with master.
-library kernel.testing.kernel_chain;
+library front_end.src.fasta.testing.kernel_chain;
import 'dart:async' show Future;
-import 'dart:io' show Directory, File, IOSink, Platform;
+import 'dart:io' show Directory, File, IOSink;
import 'dart:typed_data' show Uint8List;
@@ -27,147 +27,12 @@ import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
import 'package:kernel/binary/ast_from_binary.dart' show BinaryBuilder;
-import 'package:analyzer/src/generated/sdk.dart' show DartSdk;
-
-import 'package:analyzer/src/kernel/loader.dart'
- show DartLoader, DartOptions, createDartSdk;
-
-import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget;
-
import 'package:testing/testing.dart'
- show Chain, ChainContext, Result, StdioProcess, Step, TestDescription;
+ show ChainContext, Result, StdioProcess, Step;
import 'package:kernel/ast.dart' show Program;
-import 'package:package_config/discovery.dart' show loadPackagesFile;
-
-import '../environment_variable.dart' show EnvironmentVariable;
-
-const String STRONG_MODE = " strong mode ";
-
-typedef Future<TestContext> TestContextConstructor(
- Chain suite,
- Map<String, String> environment,
- Uri sdk,
- Uri vm,
- Uri packages,
- bool strongMode,
- DartSdk dartSdk,
- bool updateExpectations);
-
-Future<bool> fileExists(Uri base, String path) async {
- return await new File.fromUri(base.resolve(path)).exists();
-}
-
-final EnvironmentVariable testConfigVariable = new EnvironmentVariable(
- "DART_CONFIGURATION",
- "It should be something like 'ReleaseX64', depending on which"
- " configuration you're testing.");
-
-Future<Uri> computePatchedSdk() async {
- String config = await testConfigVariable.value;
- String path;
- switch (Platform.operatingSystem) {
- case "linux":
- path = "out/$config/patched_sdk";
- break;
-
- case "macos":
- path = "xcodebuild/$config/patched_sdk";
- break;
-
- case "windows":
- path = "build/$config/patched_sdk";
- break;
-
- default:
- throw "Unsupported operating system: '${Platform.operatingSystem}'.";
- }
- Uri sdk = Uri.base.resolve("$path/");
- const String asyncDart = "lib/async/async.dart";
- if (!await fileExists(sdk, asyncDart)) {
- throw "Couldn't find '$asyncDart' in '$sdk'.";
- }
- const String asyncSources = "lib/async/async_sources.gypi";
- if (await fileExists(sdk, asyncSources)) {
- throw "Found '$asyncSources' in '$sdk', so it isn't a patched SDK.";
- }
- return sdk;
-}
-
-Uri computeDartVm(Uri patchedSdk) {
- return patchedSdk.resolve(Platform.isWindows ? "../dart.exe" : "../dart");
-}
-
-abstract class TestContext extends ChainContext {
- final Uri vm;
-
- final Uri packages;
-
- final DartOptions options;
-
- final DartSdk dartSdk;
-
- TestContext(Uri sdk, this.vm, Uri packages, bool strongMode, this.dartSdk)
- : packages = packages,
- options = new DartOptions(
- strongMode: strongMode,
- sdk: sdk.toFilePath(),
- packagePath: packages.toFilePath());
-
- Future<DartLoader> createLoader() async {
- Program program = new Program();
- return new DartLoader(program, options, await loadPackagesFile(packages),
- ignoreRedirectingFactories: false, dartSdk: dartSdk);
- }
-
- static Future<TestContext> create(
- Chain suite,
- Map<String, String> environment,
- TestContextConstructor constructor) async {
- Uri sdk = await computePatchedSdk();
- Uri vm = computeDartVm(sdk);
- Uri packages = Uri.base.resolve(".packages");
- bool strongMode = environment.containsKey(STRONG_MODE);
- bool updateExpectations = environment["updateExpectations"] == "true";
- return constructor(
- suite,
- environment,
- sdk,
- vm,
- packages,
- strongMode,
- createDartSdk(sdk.toFilePath(), strongMode: strongMode),
- updateExpectations);
- }
-}
-
-class Kernel extends Step<TestDescription, Program, TestContext> {
- const Kernel();
-
- String get name => "kernel";
-
- Future<Result<Program>> run(
- TestDescription description, TestContext testContext) async {
- try {
- DartLoader loader = await testContext.createLoader();
- Target target = getTarget(
- "vm", new TargetFlags(strongMode: testContext.options.strongMode));
- loader.loadProgram(description.uri, target: target);
- Program program = loader.program;
- for (var error in loader.errors) {
- return fail(program, "$error");
- }
- target.performModularTransformations(program);
- target.performGlobalTransformations(program);
- return pass(program);
- } catch (e, s) {
- return crash(e, s);
- }
- }
-}
-
-class Print extends Step<Program, Program, TestContext> {
+class Print extends Step<Program, Program, ChainContext> {
const Print();
String get name => "print";
@@ -186,25 +51,25 @@ class Print extends Step<Program, Program, TestContext> {
}
}
-class Verify extends Step<Program, Program, TestContext> {
+class Verify extends Step<Program, Program, ChainContext> {
final bool fullCompile;
const Verify(this.fullCompile);
String get name => "verify";
- Future<Result<Program>> run(Program program, TestContext testContext) async {
+ Future<Result<Program>> run(Program program, ChainContext context) async {
var errors = verifyProgram(program, isOutline: !fullCompile);
if (errors.isEmpty) {
return pass(program);
} else {
return new Result<Program>(
- null, testContext.expectationSet["VerificationError"], errors, null);
+ null, context.expectationSet["VerificationError"], errors, null);
}
}
}
-class MatchExpectation extends Step<Program, Program, TestContext> {
+class MatchExpectation extends Step<Program, Program, ChainContext> {
final String suffix;
// TODO(ahe): This is true by default which doesn't match well with the class
@@ -249,7 +114,7 @@ $buffer""");
}
}
-class WriteDill extends Step<Program, Uri, TestContext> {
+class WriteDill extends Step<Program, Uri, ChainContext> {
const WriteDill();
String get name => "write .dill";
@@ -272,7 +137,7 @@ class WriteDill extends Step<Program, Uri, TestContext> {
}
}
-class ReadDill extends Step<Uri, Uri, TestContext> {
+class ReadDill extends Step<Uri, Uri, ChainContext> {
const ReadDill();
String get name => "read .dill";
@@ -287,7 +152,7 @@ class ReadDill extends Step<Uri, Uri, TestContext> {
}
}
-class Copy extends Step<Program, Program, TestContext> {
+class Copy extends Step<Program, Program, ChainContext> {
const Copy();
String get name => "copy program";
@@ -302,29 +167,6 @@ class Copy extends Step<Program, Program, TestContext> {
}
}
-class Run extends Step<Uri, int, TestContext> {
- const Run();
-
- String get name => "run";
-
- bool get isAsync => true;
-
- bool get isRuntime => true;
-
- Future<Result<int>> run(Uri uri, TestContext context) async {
- File generated = new File.fromUri(uri);
- StdioProcess process;
- try {
- process = await StdioProcess
- .run(context.vm.toFilePath(), [generated.path, "Hello, World!"]);
- print(process.output);
- } finally {
- generated.parent.delete(recursive: true);
- }
- return process.toResult();
- }
-}
-
class BytesCollector implements Sink<List<int>> {
final List<List<int>> lists = <List<int>>[];

Powered by Google App Engine
This is Rietveld 408576698