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

Unified Diff: pkg/analyzer/test/src/summary/flat_buffers_test.dart

Issue 2875373002: Move flat_buffer and api_signature into front_end. (Closed)
Patch Set: Update summary format generator. Created 3 years, 7 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/analyzer/test/src/summary/api_signature_test.dart ('k') | pkg/analyzer/test/src/summary/test_all.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/summary/flat_buffers_test.dart
diff --git a/pkg/analyzer/test/src/summary/flat_buffers_test.dart b/pkg/analyzer/test/src/summary/flat_buffers_test.dart
deleted file mode 100644
index 2498fca5370fafcb93bfd620f2cada308541947d..0000000000000000000000000000000000000000
--- a/pkg/analyzer/test/src/summary/flat_buffers_test.dart
+++ /dev/null
@@ -1,429 +0,0 @@
-// Copyright (c) 2016, 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.
-
-library test.src.summary.flat_buffers_test;
-
-import 'dart:typed_data';
-
-import 'package:analyzer/src/summary/flat_buffers.dart';
-import 'package:test/test.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-
-main() {
- defineReflectiveSuite(() {
- defineReflectiveTests(BuilderTest);
- });
-}
-
-@reflectiveTest
-class BuilderTest {
- void test_error_addInt32_withoutStartTable() {
- Builder builder = new Builder();
- expect(() {
- builder.addInt32(0, 0);
- }, throwsStateError);
- }
-
- void test_error_addOffset_withoutStartTable() {
- Builder builder = new Builder();
- expect(() {
- builder.addOffset(0, new Offset(0));
- }, throwsStateError);
- }
-
- void test_error_endTable_withoutStartTable() {
- Builder builder = new Builder();
- expect(() {
- builder.endTable();
- }, throwsStateError);
- }
-
- void test_error_startTable_duringTable() {
- Builder builder = new Builder();
- builder.startTable();
- expect(() {
- builder.startTable();
- }, throwsStateError);
- }
-
- void test_error_writeString_duringTable() {
- Builder builder = new Builder();
- builder.startTable();
- expect(() {
- builder.writeString('12345');
- }, throwsStateError);
- }
-
- void test_file_identifier() {
- Uint8List byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- builder.startTable();
- Offset offset = builder.endTable();
- byteList = builder.finish(offset, 'Az~ÿ');
- }
- // Convert byteList to a ByteData so that we can read data from it.
- ByteData byteData = byteList.buffer.asByteData(byteList.offsetInBytes);
- // First 4 bytes are an offset to the table data.
- int tableDataLoc = byteData.getUint32(0, Endianness.LITTLE_ENDIAN);
- // Next 4 bytes are the file identifier.
- expect(byteData.getUint8(4), 65); // 'a'
- expect(byteData.getUint8(5), 122); // 'z'
- expect(byteData.getUint8(6), 126); // '~'
- expect(byteData.getUint8(7), 255); // 'ÿ'
- // First 4 bytes of the table data are a backwards offset to the vtable.
- int vTableLoc = tableDataLoc -
- byteData.getInt32(tableDataLoc, Endianness.LITTLE_ENDIAN);
- // First 2 bytes of the vtable are the size of the vtable in bytes, which
- // should be 4.
- expect(byteData.getUint16(vTableLoc, Endianness.LITTLE_ENDIAN), 4);
- // Next 2 bytes are the size of the object in bytes (including the vtable
- // pointer), which should be 4.
- expect(byteData.getUint16(vTableLoc + 2, Endianness.LITTLE_ENDIAN), 4);
- }
-
- void test_low() {
- Builder builder = new Builder(initialSize: 0);
- builder.lowReset();
- expect((builder..lowWriteUint8(1)).lowFinish(), [1]);
- expect((builder..lowWriteUint32(2)).lowFinish(), [2, 0, 0, 0, 0, 0, 0, 1]);
- expect((builder..lowWriteUint8(3)).lowFinish(),
- [0, 0, 0, 3, 2, 0, 0, 0, 0, 0, 0, 1]);
- expect((builder..lowWriteUint8(4)).lowFinish(),
- [0, 0, 4, 3, 2, 0, 0, 0, 0, 0, 0, 1]);
- expect((builder..lowWriteUint8(5)).lowFinish(),
- [0, 5, 4, 3, 2, 0, 0, 0, 0, 0, 0, 1]);
- expect((builder..lowWriteUint32(6)).lowFinish(),
- [6, 0, 0, 0, 0, 5, 4, 3, 2, 0, 0, 0, 0, 0, 0, 1]);
- }
-
- void test_table_default() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- builder.startTable();
- builder.addInt32(0, 10, 10);
- builder.addInt32(1, 20, 10);
- Offset offset = builder.endTable();
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buffer = new BufferContext.fromBytes(byteList);
- int objectOffset = buffer.derefObject(0);
- // was not written, so uses the new default value
- expect(const Int32Reader().vTableGet(buffer, objectOffset, 0, 15), 15);
- // has the written value
- expect(const Int32Reader().vTableGet(buffer, objectOffset, 1, 15), 20);
- }
-
- void test_table_format() {
- Uint8List byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- builder.startTable();
- builder.addInt32(0, 10);
- builder.addInt32(1, 20);
- builder.addInt32(2, 30);
- byteList = builder.finish(builder.endTable());
- }
- // Convert byteList to a ByteData so that we can read data from it.
- ByteData byteData = byteList.buffer.asByteData(byteList.offsetInBytes);
- // First 4 bytes are an offset to the table data.
- int tableDataLoc = byteData.getUint32(0, Endianness.LITTLE_ENDIAN);
- // First 4 bytes of the table data are a backwards offset to the vtable.
- int vTableLoc = tableDataLoc -
- byteData.getInt32(tableDataLoc, Endianness.LITTLE_ENDIAN);
- // First 2 bytes of the vtable are the size of the vtable in bytes, which
- // should be 10.
- expect(byteData.getUint16(vTableLoc, Endianness.LITTLE_ENDIAN), 10);
- // Next 2 bytes are the size of the object in bytes (including the vtable
- // pointer), which should be 16.
- expect(byteData.getUint16(vTableLoc + 2, Endianness.LITTLE_ENDIAN), 16);
- // Remaining 6 bytes are the offsets within the object where the ints are
- // located.
- for (int i = 0; i < 3; i++) {
- int offset =
- byteData.getUint16(vTableLoc + 4 + 2 * i, Endianness.LITTLE_ENDIAN);
- expect(byteData.getInt32(tableDataLoc + offset, Endianness.LITTLE_ENDIAN),
- 10 + 10 * i);
- }
- }
-
- void test_table_string() {
- String latinString = 'test';
- String unicodeString = 'Проба пера';
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset<String> latinStringOffset = builder.writeString(latinString);
- Offset<String> unicodeStringOffset = builder.writeString(unicodeString);
- builder.startTable();
- builder.addOffset(0, latinStringOffset);
- builder.addOffset(1, unicodeStringOffset);
- Offset offset = builder.endTable();
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- int objectOffset = buf.derefObject(0);
- expect(const StringReader().vTableGet(buf, objectOffset, 0), latinString);
- expect(const StringReader().vTableGet(buf, objectOffset, 1), unicodeString);
- }
-
- void test_table_types() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset<String> stringOffset = builder.writeString('12345');
- builder.startTable();
- builder.addBool(0, true);
- builder.addInt8(1, 10);
- builder.addInt32(2, 20);
- builder.addOffset(3, stringOffset);
- builder.addInt32(4, 40);
- builder.addUint32(5, 0x9ABCDEF0);
- builder.addUint8(6, 0x9A);
- Offset offset = builder.endTable();
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- int objectOffset = buf.derefObject(0);
- expect(const BoolReader().vTableGet(buf, objectOffset, 0), true);
- expect(const Int8Reader().vTableGet(buf, objectOffset, 1), 10);
- expect(const Int32Reader().vTableGet(buf, objectOffset, 2), 20);
- expect(const StringReader().vTableGet(buf, objectOffset, 3), '12345');
- expect(const Int32Reader().vTableGet(buf, objectOffset, 4), 40);
- expect(const Uint32Reader().vTableGet(buf, objectOffset, 5), 0x9ABCDEF0);
- expect(const Uint8Reader().vTableGet(buf, objectOffset, 6), 0x9A);
- }
-
- void test_writeList_of_Uint32() {
- List<int> values = <int>[10, 100, 12345, 0x9abcdef0];
- // write
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset offset = builder.writeListUint32(values);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<int> items = const Uint32ListReader().read(buf, 0);
- expect(items, hasLength(4));
- expect(items, orderedEquals(values));
- }
-
- void test_writeList_ofBool() {
- void verifyListBooleans(int len, List<int> trueBits) {
- // write
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- List<bool> values = new List<bool>.filled(len, false);
- for (int bit in trueBits) {
- values[bit] = true;
- }
- Offset offset = builder.writeListBool(values);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<bool> items = const BoolListReader().read(buf, 0);
- expect(items, hasLength(len));
- for (int i = 0; i < items.length; i++) {
- expect(items[i], trueBits.contains(i), reason: 'bit $i of $len');
- }
- }
-
- verifyListBooleans(0, <int>[]);
- verifyListBooleans(1, <int>[]);
- verifyListBooleans(1, <int>[0]);
- verifyListBooleans(31, <int>[0, 1]);
- verifyListBooleans(31, <int>[1, 2, 24, 25, 30]);
- verifyListBooleans(31, <int>[0, 30]);
- verifyListBooleans(32, <int>[1, 2, 24, 25, 31]);
- verifyListBooleans(33, <int>[1, 2, 24, 25, 32]);
- verifyListBooleans(33, <int>[1, 2, 24, 25, 31, 32]);
- verifyListBooleans(63, <int>[]);
- verifyListBooleans(63, <int>[0, 1, 2, 61, 62]);
- verifyListBooleans(63, new List<int>.generate(63, (i) => i));
- verifyListBooleans(64, <int>[]);
- verifyListBooleans(64, <int>[0, 1, 2, 61, 62, 63]);
- verifyListBooleans(64, <int>[1, 2, 62]);
- verifyListBooleans(64, <int>[0, 1, 2, 63]);
- verifyListBooleans(64, new List<int>.generate(64, (i) => i));
- verifyListBooleans(100, <int>[0, 3, 30, 60, 90, 99]);
- }
-
- void test_writeList_ofFloat64() {
- List<double> values = <double>[-1.234567, 3.4E+9, -5.6E-13, 7.8, 12.13];
- // write
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset offset = builder.writeListFloat64(values);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<double> items = const Float64ListReader().read(buf, 0);
- expect(items, hasLength(5));
- expect(items, orderedEquals(values));
- }
-
- void test_writeList_ofInt32() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset offset = builder.writeListInt32(<int>[1, 2, 3, 4, 5]);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<int> items = const ListReader<int>(const Int32Reader()).read(buf, 0);
- expect(items, hasLength(5));
- expect(items, orderedEquals(<int>[1, 2, 3, 4, 5]));
- }
-
- void test_writeList_ofObjects() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- // write the object #1
- Offset object1;
- {
- builder.startTable();
- builder.addInt32(0, 10);
- builder.addInt32(1, 20);
- object1 = builder.endTable();
- }
- // write the object #1
- Offset object2;
- {
- builder.startTable();
- builder.addInt32(0, 100);
- builder.addInt32(1, 200);
- object2 = builder.endTable();
- }
- // write the list
- Offset offset = builder.writeList([object1, object2]);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<TestPointImpl> items =
- const ListReader<TestPointImpl>(const TestPointReader()).read(buf, 0);
- expect(items, hasLength(2));
- expect(items[0].x, 10);
- expect(items[0].y, 20);
- expect(items[1].x, 100);
- expect(items[1].y, 200);
- }
-
- void test_writeList_ofStrings_asRoot() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset<String> str1 = builder.writeString('12345');
- Offset<String> str2 = builder.writeString('ABC');
- Offset offset = builder.writeList([str1, str2]);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<String> items =
- const ListReader<String>(const StringReader()).read(buf, 0);
- expect(items, hasLength(2));
- expect(items, contains('12345'));
- expect(items, contains('ABC'));
- }
-
- void test_writeList_ofStrings_inObject() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset listOffset = builder.writeList(
- [builder.writeString('12345'), builder.writeString('ABC')]);
- builder.startTable();
- builder.addOffset(0, listOffset);
- Offset offset = builder.endTable();
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- StringListWrapperImpl reader = new StringListWrapperReader().read(buf, 0);
- List<String> items = reader.items;
- expect(items, hasLength(2));
- expect(items, contains('12345'));
- expect(items, contains('ABC'));
- }
-
- void test_writeList_ofUint32() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset offset = builder.writeListUint32(<int>[1, 2, 0x9ABCDEF0]);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<int> items = const Uint32ListReader().read(buf, 0);
- expect(items, hasLength(3));
- expect(items, orderedEquals(<int>[1, 2, 0x9ABCDEF0]));
- }
-
- void test_writeList_ofUint8() {
- List<int> byteList;
- {
- Builder builder = new Builder(initialSize: 0);
- Offset offset = builder.writeListUint8(<int>[1, 2, 3, 4, 0x9A]);
- byteList = builder.finish(offset);
- }
- // read and verify
- BufferContext buf = new BufferContext.fromBytes(byteList);
- List<int> items = const Uint8ListReader().read(buf, 0);
- expect(items, hasLength(5));
- expect(items, orderedEquals(<int>[1, 2, 3, 4, 0x9A]));
- }
-}
-
-class StringListWrapperImpl {
- final BufferContext bp;
- final int offset;
-
- StringListWrapperImpl(this.bp, this.offset);
-
- List<String> get items =>
- const ListReader<String>(const StringReader()).vTableGet(bp, offset, 0);
-}
-
-class StringListWrapperReader extends TableReader<StringListWrapperImpl> {
- const StringListWrapperReader();
-
- @override
- StringListWrapperImpl createObject(BufferContext object, int offset) {
- return new StringListWrapperImpl(object, offset);
- }
-}
-
-class TestPointImpl {
- final BufferContext bp;
- final int offset;
-
- TestPointImpl(this.bp, this.offset);
-
- int get x => const Int32Reader().vTableGet(bp, offset, 0, 0);
-
- int get y => const Int32Reader().vTableGet(bp, offset, 1, 0);
-}
-
-class TestPointReader extends TableReader<TestPointImpl> {
- const TestPointReader();
-
- @override
- TestPointImpl createObject(BufferContext object, int offset) {
- return new TestPointImpl(object, offset);
- }
-}
« no previous file with comments | « pkg/analyzer/test/src/summary/api_signature_test.dart ('k') | pkg/analyzer/test/src/summary/test_all.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698