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

Unified Diff: packages/smoke/test/codegen/end_to_end_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 5 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 | « packages/smoke/test/codegen/common.dart ('k') | packages/smoke/test/codegen/generator_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/smoke/test/codegen/end_to_end_test.dart
diff --git a/packages/smoke/test/codegen/end_to_end_test.dart b/packages/smoke/test/codegen/end_to_end_test.dart
deleted file mode 100644
index 174d61a73bf0b958b3501d3bac49f7e84e93d771..0000000000000000000000000000000000000000
--- a/packages/smoke/test/codegen/end_to_end_test.dart
+++ /dev/null
@@ -1,171 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// And end-to-end test that generates code and checks that the output matches
-/// the code in `static_test.dart`. Techincally we could run the result in an
-/// isolate, but instead we decided to split that up in two tests. This test
-/// ensures that we generate the code as it was written in static_test, and
-/// separately static_test ensures that the smoke.static library behaves as
-/// expected.
-library smoke.test.codegen.end_to_end_test;
-
-import 'dart:io';
-
-import 'package:analyzer/src/generated/element.dart';
-import 'package:smoke/codegen/generator.dart';
-import 'package:smoke/codegen/recorder.dart';
-import 'package:test/test.dart';
-import 'package:path/path.dart' as path;
-
-import 'testing_resolver_utils.dart' show initAnalyzer;
-
-void main([List<String> args]) {
- final updateStaticTest =
- args != null && args.length > 0 && args[0] == '--update_static_test';
-
- test('static_test is up to date', () {
- var scriptPath = path.fromUri(Platform.script);
- var testDir = path.dirname(path.dirname(scriptPath));
- var commonPath = path.join(testDir, 'common.dart');
- var testCode = new File('$commonPath').readAsStringSync();
- var lib = initAnalyzer({'common.dart': testCode}).libraryFor('common.dart');
- var generator = new SmokeCodeGenerator();
- var recorder = new Recorder(generator, _resolveImportUrl);
-
- lookupMember(String className, String memberName, bool recursive) {
- recorder.lookupMember(lib.getType(className), memberName,
- recursive: recursive, includeAccessors: false);
- }
-
- runQuery(String className, QueryOptions options) {
- recorder.runQuery(lib.getType(className), options,
- includeAccessors: false);
- }
-
- // Record all getters and setters we use in the tests.
- [
- 'i',
- 'j',
- 'j2',
- 'inc0',
- 'inc1',
- 'inc2',
- 'toString'
- ].forEach(generator.addGetter);
- ['i', 'j2'].forEach(generator.addSetter);
-
- // Record static methods used in the tests
- recorder.addStaticMethod(lib.getType('A'), 'staticInc');
-
- // Record symbol convertions.
- generator.addSymbol('i');
-
- /// Record all parent-class relations that we explicitly request.
- [
- 'AnnotB',
- 'A',
- 'B',
- 'D',
- 'H'
- ].forEach((className) => recorder.lookupParent(lib.getType(className)));
-
- // Record members for which we implicitly request their declaration in
- // has-getter and has-setter tests.
- lookupMember('A', 'i', true);
- lookupMember('A', 'j2', true);
- lookupMember('A', 'inc2', true);
- lookupMember('B', 'a', true);
- lookupMember('B', 'f', true);
- lookupMember('D', 'i', true);
- lookupMember('E', 'y', true);
-
- // Record also lookups for non-exisiting members.
- lookupMember('B', 'i', true);
- lookupMember('E', 'x', true);
- lookupMember('E', 'z', true);
-
- // Record members for which we explicitly request their declaration.
- lookupMember('B', 'a', false);
- lookupMember('B', 'w', false);
- lookupMember('A', 'inc1', false);
- lookupMember('F', 'staticMethod', false);
- lookupMember('G', 'b', false);
- lookupMember('G', 'd', false);
-
- // Lookups from no-such-method test.
- lookupMember('A', 'noSuchMethod', true);
- lookupMember('E', 'noSuchMethod', true);
- lookupMember('E2', 'noSuchMethod', true);
-
- // Lookups from has-instance-method and has-static-method tests.
- lookupMember('A', 'inc0', true);
- lookupMember('A', 'inc3', true);
- lookupMember('C', 'inc', true);
- lookupMember('D', 'inc', true);
- lookupMember('D', 'inc0', true);
- lookupMember('F', 'staticMethod', true);
- lookupMember('F2', 'staticMethod', true);
-
- // Record all queries done by the test.
- runQuery('A', new QueryOptions());
- runQuery('D', new QueryOptions(includeInherited: true));
-
- var vars = lib.definingCompilationUnit.topLevelVariables;
- expect(vars[0].name, 'a1');
- expect(vars[1].name, 'a2');
-
- runQuery('H', new QueryOptions(
- includeInherited: true,
- withAnnotations: [vars[0], vars[1], lib.getType('Annot')]));
-
- runQuery('K', new QueryOptions(
- includeInherited: true, withAnnotations: [lib.getType('AnnotC')]));
-
- runQuery('L', new QueryOptions(includeMethods: true));
- runQuery('L2', new QueryOptions(
- includeInherited: true, includeMethods: true));
-
- var code = _createEntrypoint(generator);
- var staticTestFile = new File(path.join(testDir, 'static_test.dart'));
- var existingCode = staticTestFile.readAsStringSync();
- if (!updateStaticTest) {
- expect(code, existingCode);
- } else if (code == existingCode) {
- print('static_test.dart is already up to date');
- } else {
- staticTestFile.writeAsStringSync(code);
- print('static_test.dart has been updated.');
- }
- }, skip: 'https://github.com/dart-lang/smoke/issues/26');
-}
-
-String _createEntrypoint(SmokeCodeGenerator generator) {
- var sb = new StringBuffer()
- ..writeln('/// ---- AUTOGENERATED: DO NOT EDIT THIS FILE --------------')
- ..writeln('/// To update this test file, call:')
- ..writeln('/// > dart codegen/end_to_end_test.dart --update_static_test')
- ..writeln('/// --------------------------------------------------------')
- ..writeln('\nlibrary smoke.test.static_test;\n')
- ..writeln("import 'package:unittest/unittest.dart';");
-
- generator.writeImports(sb);
- sb.writeln("import 'common.dart' as common show main;\n");
- generator.writeTopLevelDeclarations(sb);
- sb.write('\nfinal configuration = ');
- generator.writeStaticConfiguration(sb, 0);
-
- sb
- ..writeln(';\n')
- ..writeln('main() {')
- ..writeln(' setUp(() => useGeneratedCode(configuration));')
- ..writeln(' common.main();')
- ..writeln('}');
- return sb.toString();
-}
-
-String _resolveImportUrl(LibraryElement lib) {
- if (lib.isDartCore) return 'dart:core';
- if (lib.displayName == 'smoke.test.common') return 'common.dart';
- return 'unknown.dart';
-}
« no previous file with comments | « packages/smoke/test/codegen/common.dart ('k') | packages/smoke/test/codegen/generator_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698