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

Unified Diff: pkg/front_end/test/src/incremental/format_test.dart

Issue 2939653002: FlatBuffers formats for storing unlinked units. (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/lib/src/incremental/format.dart ('k') | pkg/front_end/test/src/incremental/test_all.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/test/src/incremental/format_test.dart
diff --git a/pkg/front_end/test/src/incremental/format_test.dart b/pkg/front_end/test/src/incremental/format_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..b3c2a900f1dbca7bb9e16674b972fd05de48b651
--- /dev/null
+++ b/pkg/front_end/test/src/incremental/format_test.dart
@@ -0,0 +1,106 @@
+// Copyright (c) 2017, 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.
+
+import 'dart:typed_data';
+
+import 'package:front_end/src/base/flat_buffers.dart' as fb;
+import 'package:front_end/src/incremental/format.dart';
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+main() {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(FormatTest);
+ });
+}
+
+@reflectiveTest
+class FormatTest {
+ void test_UnlinkedCombinator_hides() {
+ Uint8List bytes;
+ {
+ fb.Builder fbBuilder = new fb.Builder();
+ fb.Offset offset =
+ new UnlinkedCombinatorBuilder(hides: ['a', 'bb', 'ccc'])
+ .finish(fbBuilder);
+ bytes = fbBuilder.finish(offset);
+ }
+
+ var combinator = new UnlinkedCombinator(bytes);
+ expect(combinator.shows, isEmpty);
+ expect(combinator.hides, ['a', 'bb', 'ccc']);
+ }
+
+ void test_UnlinkedCombinator_shows() {
+ Uint8List bytes;
+ {
+ fb.Builder fbBuilder = new fb.Builder();
+ fb.Offset offset =
+ new UnlinkedCombinatorBuilder(shows: ['a', 'bb', 'ccc'])
+ .finish(fbBuilder);
+ bytes = fbBuilder.finish(offset);
+ }
+
+ var combinator = new UnlinkedCombinator(bytes);
+ expect(combinator.shows, ['a', 'bb', 'ccc']);
+ expect(combinator.hides, isEmpty);
+ }
+
+ void test_UnlinkedNamespaceDirective() {
+ Uint8List bytes;
+ {
+ fb.Builder fbBuilder = new fb.Builder();
+ fb.Offset offset = new UnlinkedNamespaceDirectiveBuilder(
+ uri: 'package:foo/foo.dart',
+ combinators: [
+ new UnlinkedCombinatorBuilder(shows: ['aaa']),
+ new UnlinkedCombinatorBuilder(hides: ['bbb', 'ccc'])
+ ]).finish(fbBuilder);
+ bytes = fbBuilder.finish(offset);
+ }
+
+ var directive = new UnlinkedNamespaceDirective(bytes);
+ expect(directive.uri, 'package:foo/foo.dart');
+ expect(directive.combinators, hasLength(2));
+ expect(directive.combinators[0].shows, ['aaa']);
+ expect(directive.combinators[0].hides, isEmpty);
+ expect(directive.combinators[1].shows, isEmpty);
+ expect(directive.combinators[1].hides, ['bbb', 'ccc']);
+ }
+
+ void test_UnlinkedUnit() {
+ Uint8List bytes;
+ {
+ fb.Builder fbBuilder = new fb.Builder();
+ fb.Offset offset = new UnlinkedUnitBuilder(apiSignature: [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4
+ ], imports: [
+ new UnlinkedNamespaceDirectiveBuilder(uri: 'a.dart')
+ ], exports: [
+ new UnlinkedNamespaceDirectiveBuilder(uri: 'b.dart')
+ ], parts: [
+ new UnlinkedNamespaceDirectiveBuilder(uri: 'p1.dart'),
+ new UnlinkedNamespaceDirectiveBuilder(uri: 'p2.dart'),
+ ]).finish(fbBuilder);
+ bytes = fbBuilder.finish(offset);
+ }
+
+ var directive = new UnlinkedUnit(bytes);
+ expect(directive.apiSignature, [0, 1, 2, 3, 4]);
+
+ expect(directive.imports, hasLength(1));
+ expect(directive.imports[0].uri, 'a.dart');
+
+ expect(directive.exports, hasLength(1));
+ expect(directive.exports[0].uri, 'b.dart');
+
+ expect(directive.parts, hasLength(2));
+ expect(directive.parts[0].uri, 'p1.dart');
+ expect(directive.parts[1].uri, 'p2.dart');
+ }
+}
« no previous file with comments | « pkg/front_end/lib/src/incremental/format.dart ('k') | pkg/front_end/test/src/incremental/test_all.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698