forked from BigfootDev/flatbuffers
bulk code format fix (#8707)
This commit is contained in:
@@ -1,17 +1,16 @@
|
||||
// Run this using JavaScriptTest.sh
|
||||
import assert from 'assert'
|
||||
import fs from 'fs'
|
||||
import * as flatbuffers from 'flatbuffers'
|
||||
import fs from 'fs'
|
||||
|
||||
import { Monster, MonsterT } from './my-game/example/monster.js'
|
||||
import { Test, TestT } from './my-game/example/test.js'
|
||||
import { Stat } from './my-game/example/stat.js'
|
||||
import { Vec3 } from './my-game/example/vec3.js'
|
||||
import { Color } from './my-game/example/color.js';
|
||||
import { Any } from './my-game/example/any.js';
|
||||
import {Any} from './my-game/example/any.js';
|
||||
import {Color} from './my-game/example/color.js';
|
||||
import {Monster, MonsterT} from './my-game/example/monster.js'
|
||||
import {Stat} from './my-game/example/stat.js'
|
||||
import {Test, TestT} from './my-game/example/test.js'
|
||||
import {Vec3} from './my-game/example/vec3.js'
|
||||
|
||||
function main() {
|
||||
|
||||
// First, let's test reading a FlatBuffer generated by C++ code:
|
||||
// This file was generated from monsterdata_test.json
|
||||
var data = new Uint8Array(fs.readFileSync('../monsterdata_test.mon'));
|
||||
@@ -21,8 +20,8 @@ function main() {
|
||||
var bb = new flatbuffers.ByteBuffer(data);
|
||||
testBuffer(bb);
|
||||
|
||||
// Second, let's create a FlatBuffer from scratch in JavaScript, and test it also.
|
||||
// We use an initial size of 1 to exercise the reallocation algorithm,
|
||||
// Second, let's create a FlatBuffer from scratch in JavaScript, and test it
|
||||
// also. We use an initial size of 1 to exercise the reallocation algorithm,
|
||||
// normally a size larger than the typical FlatBuffer you generate would be
|
||||
// better for performance.
|
||||
var fbb = new flatbuffers.Builder(1);
|
||||
@@ -70,15 +69,11 @@ function createMonster(fbb) {
|
||||
Test.createTest(fbb, 30, 40);
|
||||
var test4 = fbb.endVector();
|
||||
|
||||
var testArrayOfString = Monster.createTestarrayofstringVector(fbb, [
|
||||
fbb.createString('test1'),
|
||||
fbb.createString('test2')
|
||||
]);
|
||||
var testArrayOfString = Monster.createTestarrayofstringVector(
|
||||
fbb, [fbb.createString('test1'), fbb.createString('test2')]);
|
||||
|
||||
var testVectorOfLongs = Monster.createVectorOfLongsVector(fbb, [
|
||||
1n,
|
||||
101010100n
|
||||
]);
|
||||
var testVectorOfLongs =
|
||||
Monster.createVectorOfLongsVector(fbb, [1n, 101010100n]);
|
||||
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addPos(fbb, Vec3.createVec3(fbb, 1, 2, 3, 3, Color.Green, 5, 6));
|
||||
@@ -102,7 +97,8 @@ function serializeAndTest(fbb) {
|
||||
// parser may serialize in a slightly different order than the above
|
||||
// JavaScript code. They are functionally equivalent though.
|
||||
|
||||
fs.writeFileSync('monsterdata_javascript_wire.mon', Buffer.from(fbb.asUint8Array()));
|
||||
fs.writeFileSync(
|
||||
'monsterdata_javascript_wire.mon', Buffer.from(fbb.asUint8Array()));
|
||||
|
||||
// Tests mutation first. This will verify that we did not trample any other
|
||||
// part of the byte buffer.
|
||||
@@ -121,7 +117,8 @@ function testMutation(bb) {
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
|
||||
var manaRes = monster.mutate_mana(10);
|
||||
assert.strictEqual(manaRes, false); // Field was NOT present, because default value.
|
||||
assert.strictEqual(
|
||||
manaRes, false); // Field was NOT present, because default value.
|
||||
|
||||
// TODO: There is not the availability to mutate structs or vectors.
|
||||
}
|
||||
@@ -137,7 +134,7 @@ function testObjApiPack(fbb) {
|
||||
|
||||
function testObjApiUnpack(monster) {
|
||||
assert.strictEqual(monster.hp, 80);
|
||||
assert.strictEqual(monster.mana, 150); // default
|
||||
assert.strictEqual(monster.mana, 150); // default
|
||||
|
||||
assert.strictEqual(monster.name, 'MyMonster');
|
||||
|
||||
@@ -182,7 +179,7 @@ function testBuffer(bb) {
|
||||
var monster = Monster.getRootAsMonster(bb);
|
||||
|
||||
assert.strictEqual(monster.hp(), 80);
|
||||
assert.strictEqual(monster.mana(), 150); // default
|
||||
assert.strictEqual(monster.mana(), 150); // default
|
||||
|
||||
assert.strictEqual(monster.name(), 'MyMonster');
|
||||
|
||||
@@ -282,7 +279,7 @@ function test64bit() {
|
||||
stat = mon2.testempty();
|
||||
assert.strictEqual(stat != null, true);
|
||||
assert.strictEqual(stat.val() != null, true);
|
||||
assert.strictEqual(stat.val(), 0n); // default value
|
||||
assert.strictEqual(stat.val(), 0n); // default value
|
||||
}
|
||||
|
||||
function testUnicode() {
|
||||
@@ -293,17 +290,26 @@ function testUnicode() {
|
||||
function testReadingUnicode(bb) {
|
||||
var monster = Monster.getRootAsMonster(bb);
|
||||
assert.strictEqual(monster.name(), json.name);
|
||||
assert.deepEqual(Buffer.from(monster.name(flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(json.name));
|
||||
assert.strictEqual(monster.testarrayoftablesLength(), json.testarrayoftables.length);
|
||||
assert.deepEqual(
|
||||
Buffer.from(monster.name(flatbuffers.Encoding.UTF8_BYTES)),
|
||||
Buffer.from(json.name));
|
||||
assert.strictEqual(
|
||||
monster.testarrayoftablesLength(), json.testarrayoftables.length);
|
||||
json.testarrayoftables.forEach(function(table, i) {
|
||||
var value = monster.testarrayoftables(i);
|
||||
assert.strictEqual(value.name(), table.name);
|
||||
assert.deepEqual(Buffer.from(value.name(flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(table.name));
|
||||
assert.deepEqual(
|
||||
Buffer.from(value.name(flatbuffers.Encoding.UTF8_BYTES)),
|
||||
Buffer.from(table.name));
|
||||
});
|
||||
assert.strictEqual(monster.testarrayofstringLength(), json.testarrayofstring.length);
|
||||
assert.strictEqual(
|
||||
monster.testarrayofstringLength(), json.testarrayofstring.length);
|
||||
json.testarrayofstring.forEach(function(string, i) {
|
||||
assert.strictEqual(monster.testarrayofstring(i), string);
|
||||
assert.deepEqual(Buffer.from(monster.testarrayofstring(i, flatbuffers.Encoding.UTF8_BYTES)), Buffer.from(string));
|
||||
assert.deepEqual(
|
||||
Buffer.from(
|
||||
monster.testarrayofstring(i, flatbuffers.Encoding.UTF8_BYTES)),
|
||||
Buffer.from(string));
|
||||
});
|
||||
}
|
||||
testReadingUnicode(new flatbuffers.ByteBuffer(new Uint8Array(correct)));
|
||||
@@ -317,10 +323,12 @@ function testUnicode() {
|
||||
Monster.addName(fbb, name);
|
||||
return Monster.endMonster(fbb);
|
||||
});
|
||||
var testarrayoftablesOffset = Monster.createTestarrayoftablesVector(fbb,
|
||||
testarrayoftablesOffsets);
|
||||
var testarrayofstringOffset = Monster.createTestarrayofstringVector(fbb,
|
||||
json.testarrayofstring.map(function(string) { return fbb.createString(string); }));
|
||||
var testarrayoftablesOffset =
|
||||
Monster.createTestarrayoftablesVector(fbb, testarrayoftablesOffsets);
|
||||
var testarrayofstringOffset = Monster.createTestarrayofstringVector(
|
||||
fbb, json.testarrayofstring.map(function(string) {
|
||||
return fbb.createString(string);
|
||||
}));
|
||||
Monster.startMonster(fbb);
|
||||
Monster.addTestarrayofstring(fbb, testarrayofstringOffset);
|
||||
Monster.addTestarrayoftables(fbb, testarrayoftablesOffset);
|
||||
@@ -362,19 +370,18 @@ function fieldIndexToOffset(field_id) {
|
||||
// Low level stress/fuzz test: serialize/deserialize a variety of
|
||||
// different kinds of data in different combinations
|
||||
function fuzzTest1() {
|
||||
|
||||
// Values we're testing against: chosen to ensure no bits get chopped
|
||||
// off anywhere, and also be different from eachother.
|
||||
var bool_val = true;
|
||||
var char_val = -127; // 0x81
|
||||
var uchar_val = 0xFF;
|
||||
var short_val = -32222; // 0x8222;
|
||||
var bool_val = true;
|
||||
var char_val = -127; // 0x81
|
||||
var uchar_val = 0xFF;
|
||||
var short_val = -32222; // 0x8222;
|
||||
var ushort_val = 0xFEEE;
|
||||
var int_val = 0x83333333 | 0;
|
||||
var uint_val = 0xFDDDDDDD;
|
||||
var long_val = BigInt.asIntN(64, 0x8444444444444444n);
|
||||
var ulong_val = BigInt.asUintN(64, 0xFCCCCCCCCCCCCCCCn);
|
||||
var float_val = new Float32Array([3.14159])[0];
|
||||
var int_val = 0x83333333 | 0;
|
||||
var uint_val = 0xFDDDDDDD;
|
||||
var long_val = BigInt.asIntN(64, 0x8444444444444444n);
|
||||
var ulong_val = BigInt.asUintN(64, 0xFCCCCCCCCCCCCCCCn);
|
||||
var float_val = new Float32Array([3.14159])[0];
|
||||
var double_val = 3.14159265359;
|
||||
|
||||
var test_values_max = 11;
|
||||
@@ -394,17 +401,39 @@ function fuzzTest1() {
|
||||
for (var f = 0; f < fields_per_object; f++) {
|
||||
var choice = lcg_rand() % test_values_max;
|
||||
switch (choice) {
|
||||
case 0: builder.addFieldInt8(f, bool_val, 0); break;
|
||||
case 1: builder.addFieldInt8(f, char_val, 0); break;
|
||||
case 2: builder.addFieldInt8(f, uchar_val, 0); break;
|
||||
case 3: builder.addFieldInt16(f, short_val, 0); break;
|
||||
case 4: builder.addFieldInt16(f, ushort_val, 0); break;
|
||||
case 5: builder.addFieldInt32(f, int_val, 0); break;
|
||||
case 6: builder.addFieldInt32(f, uint_val, 0); break;
|
||||
case 7: builder.addFieldInt64(f, long_val, 0n); break;
|
||||
case 8: builder.addFieldInt64(f, ulong_val, 0n); break;
|
||||
case 9: builder.addFieldFloat32(f, float_val, 0); break;
|
||||
case 10: builder.addFieldFloat64(f, double_val, 0); break;
|
||||
case 0:
|
||||
builder.addFieldInt8(f, bool_val, 0);
|
||||
break;
|
||||
case 1:
|
||||
builder.addFieldInt8(f, char_val, 0);
|
||||
break;
|
||||
case 2:
|
||||
builder.addFieldInt8(f, uchar_val, 0);
|
||||
break;
|
||||
case 3:
|
||||
builder.addFieldInt16(f, short_val, 0);
|
||||
break;
|
||||
case 4:
|
||||
builder.addFieldInt16(f, ushort_val, 0);
|
||||
break;
|
||||
case 5:
|
||||
builder.addFieldInt32(f, int_val, 0);
|
||||
break;
|
||||
case 6:
|
||||
builder.addFieldInt32(f, uint_val, 0);
|
||||
break;
|
||||
case 7:
|
||||
builder.addFieldInt64(f, long_val, 0n);
|
||||
break;
|
||||
case 8:
|
||||
builder.addFieldInt64(f, ulong_val, 0n);
|
||||
break;
|
||||
case 9:
|
||||
builder.addFieldFloat32(f, float_val, 0);
|
||||
break;
|
||||
case 10:
|
||||
builder.addFieldFloat64(f, double_val, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
objects.push(builder.endObject());
|
||||
@@ -429,24 +458,46 @@ function fuzzTest1() {
|
||||
assert.ok(vtable_offset < view.getInt16(vtable, true));
|
||||
var field_offset = offset + view.getInt16(vtable + vtable_offset, true);
|
||||
switch (choice) {
|
||||
case 0: assert.strictEqual(!!view.getInt8(field_offset), bool_val); break;
|
||||
case 1: assert.strictEqual(view.getInt8(field_offset), char_val); break;
|
||||
case 2: assert.strictEqual(view.getUint8(field_offset), uchar_val); break;
|
||||
case 3: assert.strictEqual(view.getInt16(field_offset, true), short_val); break;
|
||||
case 4: assert.strictEqual(view.getUint16(field_offset, true), ushort_val); break;
|
||||
case 5: assert.strictEqual(view.getInt32(field_offset, true), int_val); break;
|
||||
case 6: assert.strictEqual(view.getUint32(field_offset, true), uint_val); break;
|
||||
case 7: assert.strictEqual(view.getBigInt64(field_offset, true), long_val); break;
|
||||
case 8: assert.strictEqual(view.getBigUint64(field_offset, true), ulong_val); break;
|
||||
case 9: assert.strictEqual(view.getFloat32(field_offset, true), float_val); break;
|
||||
case 10: assert.strictEqual(view.getFloat64(field_offset, true), double_val); break;
|
||||
case 0:
|
||||
assert.strictEqual(!!view.getInt8(field_offset), bool_val);
|
||||
break;
|
||||
case 1:
|
||||
assert.strictEqual(view.getInt8(field_offset), char_val);
|
||||
break;
|
||||
case 2:
|
||||
assert.strictEqual(view.getUint8(field_offset), uchar_val);
|
||||
break;
|
||||
case 3:
|
||||
assert.strictEqual(view.getInt16(field_offset, true), short_val);
|
||||
break;
|
||||
case 4:
|
||||
assert.strictEqual(view.getUint16(field_offset, true), ushort_val);
|
||||
break;
|
||||
case 5:
|
||||
assert.strictEqual(view.getInt32(field_offset, true), int_val);
|
||||
break;
|
||||
case 6:
|
||||
assert.strictEqual(view.getUint32(field_offset, true), uint_val);
|
||||
break;
|
||||
case 7:
|
||||
assert.strictEqual(view.getBigInt64(field_offset, true), long_val);
|
||||
break;
|
||||
case 8:
|
||||
assert.strictEqual(view.getBigUint64(field_offset, true), ulong_val);
|
||||
break;
|
||||
case 9:
|
||||
assert.strictEqual(view.getFloat32(field_offset, true), float_val);
|
||||
break;
|
||||
case 10:
|
||||
assert.strictEqual(view.getFloat64(field_offset, true), double_val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function testSharedStrings() {
|
||||
var shared_string = "Hello world";
|
||||
var shared_string = 'Hello world';
|
||||
var builder = new flatbuffers.Builder();
|
||||
let mainOffset = builder.createSharedString(shared_string);
|
||||
assert.strictEqual(builder.createSharedString(shared_string), mainOffset);
|
||||
@@ -463,10 +514,7 @@ function testNullStrings() {
|
||||
function testVectorOfStructs() {
|
||||
let monster = new MonsterT();
|
||||
monster.name = 'testVectorOfStructs';
|
||||
monster.test4 = [
|
||||
new TestT(1, 2),
|
||||
new TestT(3, 4)
|
||||
];
|
||||
monster.test4 = [new TestT(1, 2), new TestT(3, 4)];
|
||||
|
||||
let builder = new flatbuffers.Builder();
|
||||
builder.finish(monster.pack(builder));
|
||||
@@ -482,9 +530,9 @@ function testCreateByteVector() {
|
||||
const data = Uint8Array.from([1, 2, 3, 4, 5]);
|
||||
|
||||
const builder = new flatbuffers.Builder();
|
||||
const required = builder.createString("required");
|
||||
const required = builder.createString('required');
|
||||
const offset = builder.createByteVector(data);
|
||||
|
||||
|
||||
Monster.startMonster(builder);
|
||||
Monster.addName(builder, required);
|
||||
Monster.addInventory(builder, offset)
|
||||
|
||||
Reference in New Issue
Block a user