Skip to content

Commit

Permalink
Fixes for paths and Long to BigInt
Browse files Browse the repository at this point in the history
  • Loading branch information
bjornharrtell committed Sep 6, 2022
1 parent 7c96cab commit 35e4541
Show file tree
Hide file tree
Showing 2 changed files with 2,352 additions and 2,363 deletions.
26 changes: 12 additions & 14 deletions tests/ts/JavaScriptTest1.js
Expand Up @@ -2,14 +2,14 @@
var assert = require('assert');
var fs = require('fs');

var flatbuffers = require('../js/flatbuffers').flatbuffers;
var flatbuffers = require('../../js/flatbuffers');
var MyGame = require(process.argv[2]).MyGame;

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'));
var data = new Uint8Array(fs.readFileSync('../monsterdata_test.mon'));

// Now test it:

Expand Down Expand Up @@ -173,8 +173,7 @@ function test64bit() {
var mon2 = MyGame.Example.Monster.endMonster(fbb);

MyGame.Example.Stat.startStat(fbb);
// 2541551405100253985 = 0x87654321(low part) + 0x23456789 * 0x100000000(high part);
MyGame.Example.Stat.addVal(fbb, new flatbuffers.Long(0x87654321, 0x23456789)); // the low part is Uint32
MyGame.Example.Stat.addVal(fbb, 0x2345678987654321n);
var stat = MyGame.Example.Stat.endStat(fbb);

MyGame.Example.Monster.startMonster(fbb);
Expand All @@ -195,20 +194,19 @@ function test64bit() {
var stat = mon.testempty();
assert.strictEqual(stat != null, true);
assert.strictEqual(stat.val() != null, true);
assert.strictEqual(stat.val().toFloat64(), 2541551405100253985);
assert.strictEqual(stat.val(), 2541551405100253985n);

var mon2 = mon.enemy();
assert.strictEqual(mon2 != null, true);
stat = mon2.testempty();
assert.strictEqual(stat != null, true);
assert.strictEqual(stat.val() != null, true);
assert.strictEqual(stat.val().low, 0); // default value
assert.strictEqual(stat.val().high, 0);
assert.strictEqual(stat.val(), 0n); // default value
}

function testUnicode() {
var correct = fs.readFileSync('unicode_test.mon');
var json = JSON.parse(fs.readFileSync('unicode_test.json', 'utf8'));
var json = JSON.parse(fs.readFileSync('../unicode_test.json', 'utf8'));

// Test reading
function testReadingUnicode(bb) {
Expand Down Expand Up @@ -293,8 +291,8 @@ function fuzzTest1() {
var ushort_val = 0xFEEE;
var int_val = 0x83333333 | 0;
var uint_val = 0xFDDDDDDD;
var long_val = new flatbuffers.Long(0x44444444, 0x84444444);
var ulong_val = new flatbuffers.Long(0xCCCCCCCC, 0xFCCCCCCC);
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;

Expand Down Expand Up @@ -322,8 +320,8 @@ function fuzzTest1() {
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, flatbuffers.Long.ZERO); break;
case 8: builder.addFieldInt64(f, ulong_val, flatbuffers.Long.ZERO); 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;
}
Expand Down Expand Up @@ -357,8 +355,8 @@ function fuzzTest1() {
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.getInt32(field_offset, true), long_val.low); assert.strictEqual(view.getInt32(field_offset + 4, true), long_val.high); break;
case 8: assert.strictEqual(view.getInt32(field_offset, true), ulong_val.low); assert.strictEqual(view.getInt32(field_offset + 4, true), ulong_val.high); 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;
}
Expand Down

0 comments on commit 35e4541

Please sign in to comment.