Add a binary compare test
This commit is contained in:
18
dist/tests/packets.js
vendored
18
dist/tests/packets.js
vendored
@@ -82,15 +82,18 @@ describe('Packets', () => {
|
||||
done();
|
||||
}
|
||||
});
|
||||
let buf = Buffer.allocUnsafe(0);
|
||||
let extra = 0;
|
||||
it('should encode back to binary', (done) => {
|
||||
try {
|
||||
let buf = Buffer.alloc(packet.getSize());
|
||||
buf = Buffer.alloc(packet.getSize());
|
||||
buf = packet.writeToBuffer(buf, 0, DecodeFlags_1.DecodeFlags.DontChangeFlags);
|
||||
let bl = buf.length;
|
||||
if (packet.packetFlags & PacketFlags_1.PacketFlags.Ack) {
|
||||
bl += 4 * acksReceived.length;
|
||||
bl++;
|
||||
extra += 4 * acksReceived.length;
|
||||
extra++;
|
||||
}
|
||||
bl += extra;
|
||||
if (data.length !== bl) {
|
||||
console.log(buf.toString('hex'));
|
||||
console.log(data.toString('hex'));
|
||||
@@ -104,6 +107,15 @@ describe('Packets', () => {
|
||||
done(err);
|
||||
}
|
||||
});
|
||||
it('should match the original packet byte-for-byte', (done) => {
|
||||
const trimmedData = data.slice(0, data.length - extra);
|
||||
if (trimmedData.compare(buf) !== 0) {
|
||||
done('Buffers do not match');
|
||||
}
|
||||
else {
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
2
dist/tests/packets.js.map
vendored
2
dist/tests/packets.js.map
vendored
@@ -1 +1 @@
|
||||
{"version":3,"file":"packets.js","sourceRoot":"","sources":["../../lib/tests/packets.ts"],"names":[],"mappings":"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"}
|
||||
{"version":3,"file":"packets.js","sourceRoot":"","sources":["../../lib/tests/packets.ts"],"names":[],"mappings":"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"}
|
||||
@@ -113,20 +113,23 @@ describe('Packets', () =>
|
||||
done();
|
||||
}
|
||||
});
|
||||
let buf = Buffer.allocUnsafe(0);
|
||||
let extra = 0;
|
||||
it('should encode back to binary', (done) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
let buf = Buffer.alloc(packet.getSize());
|
||||
buf = Buffer.alloc(packet.getSize());
|
||||
buf = packet.writeToBuffer(buf, 0, DecodeFlags.DontChangeFlags);
|
||||
|
||||
// Account for appended acks
|
||||
let bl = buf.length;
|
||||
if (packet.packetFlags & PacketFlags.Ack)
|
||||
{
|
||||
bl += 4 * acksReceived.length;
|
||||
bl ++;
|
||||
extra += 4 * acksReceived.length;
|
||||
extra++;
|
||||
}
|
||||
bl += extra;
|
||||
|
||||
if (data.length !== bl)
|
||||
{
|
||||
@@ -144,6 +147,19 @@ describe('Packets', () =>
|
||||
done(err);
|
||||
}
|
||||
});
|
||||
it('should match the original packet byte-for-byte', (done) =>
|
||||
{
|
||||
// First trim off the extra bytes
|
||||
const trimmedData = data.slice(0, data.length - extra);
|
||||
if (trimmedData.compare(buf) !== 0)
|
||||
{
|
||||
done('Buffers do not match');
|
||||
}
|
||||
else
|
||||
{
|
||||
done();
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"scripts": {
|
||||
"setup": "npm install",
|
||||
"prepublish": "npm run build",
|
||||
"test-only": "mocha dist/tests/",
|
||||
"test-only": "mocha -r source-map-support/register dist/tests/",
|
||||
"pretest": "npm run build",
|
||||
"test": "npm run test-only",
|
||||
"build": "tsc --removeComments",
|
||||
|
||||
Reference in New Issue
Block a user