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

Unified Diff: pkg/front_end/test/fasta/testing/suite.dart

Issue 2939533002: Apply transformations after comparing to golden files. (Closed)
Patch Set: Created 3 years, 6 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
« no previous file with comments | « pkg/front_end/test/fasta/compile.status ('k') | pkg/front_end/testcases/classes.dart.direct.expect » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/test/fasta/testing/suite.dart
diff --git a/pkg/front_end/test/fasta/testing/suite.dart b/pkg/front_end/test/fasta/testing/suite.dart
index 1f9d70557287f3ea0e9cb74ac3891df39221426f..c799b1f432d433cc20a0cbbaa79f444ffa8e31c7 100644
--- a/pkg/front_end/test/fasta/testing/suite.dart
+++ b/pkg/front_end/test/fasta/testing/suite.dart
@@ -18,7 +18,7 @@ import 'package:front_end/src/fasta/testing/validating_instrumentation.dart'
import 'package:front_end/src/fasta/testing/patched_sdk_location.dart'
show computeDartVm, computePatchedSdk;
-import 'package:kernel/ast.dart' show Program;
+import 'package:kernel/ast.dart' show Library, Program;
import 'package:testing/testing.dart'
show
@@ -54,6 +54,10 @@ import 'package:kernel/target/targets.dart' show TargetFlags;
import 'package:kernel/target/vm_fasta.dart' show VmFastaTarget;
+import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
+
+import 'package:kernel/core_types.dart' show CoreTypes;
+
export 'package:testing/testing.dart' show Chain, runMe;
const String STRONG_MODE = " strong mode ";
@@ -90,6 +94,7 @@ class FastaContext extends ChainContext {
final TranslateUri uriTranslator;
final List<Step> steps;
final Uri vm;
+ final Map<Program, KernelTarget> programToTarget = <Program, KernelTarget>{};
Uri sdk;
Uri platformUri;
Uri outlineUri;
@@ -119,6 +124,7 @@ class FastaContext extends ChainContext {
updateExpectations: updateExpectations)
] {
if (fullCompile && !skipVm) {
+ steps.add(const Transform());
steps.add(const WriteDill());
steps.add(const Run());
}
@@ -223,7 +229,7 @@ class Outline extends Step<TestDescription, Program, FastaContext> {
Program platformOutline = await context.loadPlatformOutline();
Ticker ticker = new Ticker();
DillTarget dillTarget = new DillTarget(ticker, context.uriTranslator,
- new VmFastaTarget(new TargetFlags(strongMode: strongMode)));
+ new TestVmFastaTarget(new TargetFlags(strongMode: strongMode)));
platformOutline.unbindCanonicalNames();
dillTarget.loader.appendLibraries(platformOutline);
// We create a new URI translator to avoid reading plaform libraries from
@@ -262,6 +268,52 @@ class Outline extends Step<TestDescription, Program, FastaContext> {
} on InputError catch (e, s) {
return fail(null, e.error, s);
}
+ context.programToTarget[p] = sourceTarget;
return pass(p);
}
}
+
+class Transform extends Step<Program, Program, FastaContext> {
+ const Transform();
+
+ String get name => "transform program";
+
+ Future<Result<Program>> run(Program program, FastaContext context) async {
+ KernelTarget sourceTarget = context.programToTarget[program];
+ TestVmFastaTarget backendTarget = sourceTarget.backendTarget;
+ backendTarget.enabled = true;
+ try {
+ if (sourceTarget.loader.coreTypes != null) {
+ sourceTarget.runBuildTransformations();
+ }
+ } finally {
+ backendTarget.enabled = false;
+ }
+ return pass(program);
+ }
+}
+
+class TestVmFastaTarget extends VmFastaTarget {
+ bool enabled = false;
+
+ TestVmFastaTarget(TargetFlags flags) : super(flags);
+
+ String get name => "vm_fasta";
+
+ void performModularTransformationsOnLibraries(
+ CoreTypes coreTypes, ClassHierarchy hierarchy, List<Library> libraries,
+ {void logger(String msg)}) {
+ if (enabled) {
+ super.performModularTransformationsOnLibraries(
+ coreTypes, hierarchy, libraries,
+ logger: logger);
+ }
+ }
+
+ void performGlobalTransformations(CoreTypes coreTypes, Program program,
+ {void logger(String msg)}) {
+ if (enabled) {
+ super.performGlobalTransformations(coreTypes, program, logger: logger);
+ }
+ }
+}
« no previous file with comments | « pkg/front_end/test/fasta/compile.status ('k') | pkg/front_end/testcases/classes.dart.direct.expect » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698