1
0
Fork 0
mirror of https://github.com/demostf/demo.js synced 2026-06-04 00:54:14 +02:00

more bit wise re-encode tests

This commit is contained in:
Robin Appelman 2017-11-20 23:24:00 +01:00
commit f641610811
10 changed files with 51 additions and 15 deletions

View file

@ -54,6 +54,6 @@ suite('PacketEntity', () => {
const baseLine = hydrateEntity(playerBaseLineData);
const entity = hydrateEntity(playerEntityData);
assert.deepEqual(entity.diffFromBaseLine(baseLine.props).length, 96);
assert.deepEqual(entity.diffFromBaseLine(baseLine.props).length, 70);
});
});

View file

@ -3,7 +3,7 @@ import {readFileSync} from 'fs';
import {GameEvent} from '../../../../Data/GameEventTypes';
import {GameEventListPacket} from '../../../../Data/Packet';
import {EncodeGameEventList, ParseGameEventList} from '../../../../Parser/Packet/GameEventList';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = JSON.parse(readFileSync(__dirname + '/../../../data/gameEventListData.json', 'utf8'));
const expectedSource = JSON.parse(readFileSync(__dirname + '/../../../data/gameEventList.json', 'utf8'));
@ -93,4 +93,8 @@ suite('GameEventList', () => {
test('Encode gameEventList', () => {
assertEncoder(ParseGameEventList, EncodeGameEventList, eventList, 1245);
});
test('Re-encode gameEventList', () => {
assertReEncode(ParseGameEventList, EncodeGameEventList, getStream(data));
});
});

View file

@ -3,7 +3,7 @@ import {GameEventValueType} from '../../../../Data/GameEvent';
import {GameEventPacket} from '../../../../Data/Packet';
import {createParserState} from '../../../../Data/ParserState';
import {EncodeGameEvent, ParseGameEvent} from '../../../../Parser/Packet/GameEvent';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [25, 240, 149, 0, 0];
const expected = {
@ -41,4 +41,8 @@ suite('GameEvent', () => {
test('Encode gameEvent', () => {
assertEncoder(parseEvent, encodeEvent, expected, 36);
});
test('Re-encode gameEvent', () => {
assertReEncode(parseEvent, encodeEvent, getStream(data));
});
});

View file

@ -8,7 +8,7 @@ import {ServerClass} from '../../../../Data/ServerClass';
import {EncodePacketEntities, ParsePacketEntities} from '../../../../Parser/Packet/PacketEntities';
import {deepEqual} from '../../deepEqual';
import {hydrateEntity, hydrateTable} from './hydrate';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertReEncode, getStream} from './PacketTest';
const data = JSON.parse(readFileSync(__dirname + '/../../../data/packetEntitiesData.json', 'utf8'));
const packetData = JSON.parse(gunzipSync(readFileSync(__dirname + '/../../../data/packetEntitiesResult.json.gz')).toString('utf8'));
@ -157,7 +157,7 @@ suite('PacketEntities', () => {
test('Encode packetEntities', () => {
const toEncode = {...expected};
assertEncoder(parse, encode, toEncode, 0);
assertEncoder(parse, encode, toEncode);
});
test('Encode small packetEntities', () => {
@ -169,7 +169,7 @@ suite('PacketEntities', () => {
delta: 0,
maxEntries: 16,
entities: [hydrateEntity(sunEntityData)]
}, 124);
}, 81);
});
test('Encode small packetEntities with removed', () => {
@ -181,7 +181,7 @@ suite('PacketEntities', () => {
delta: 1,
maxEntries: 16,
entities: [hydrateEntity(sunEntityData)]
}, 181);
}, 138);
});
test('Encode packetEntities only removed', () => {
@ -207,7 +207,7 @@ suite('PacketEntities', () => {
delta: 0,
maxEntries: 16,
entities: [hydrateEntity(sunEntityData), hydrateEntity(secondEntity)]
}, 195);
}, 109);
});
test('Encode player packetEntities', () => {
@ -219,6 +219,10 @@ suite('PacketEntities', () => {
delta: 0,
maxEntries: 16,
entities: [hydrateEntity(playerEntityData)]
}, 3568);
}, 1845);
});
test('Re-encode packetEntities', () => {
assertReEncode(parse, encode, getStream(data));
});
});

View file

@ -1,6 +1,6 @@
import {BitStream} from 'bit-buffer';
import {EncodeParseSounds, ParseParseSounds} from '../../../../Parser/Packet/ParseSounds';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [
18,
@ -216,4 +216,8 @@ suite('ParseSounds', () => {
data: soundStream.readBitStream(15)
}, 24);
});
test('Re-encode parseSounds', () => {
assertReEncode(ParseParseSounds, EncodeParseSounds, getStream(data));
});
});

View file

@ -1,6 +1,6 @@
import {BitStream} from 'bit-buffer';
import {EncodeSetConVar, ParseSetConVar} from '../../../../Parser/Packet/SetConVar';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
suite('SetConVar', () => {
test('Parse setConVar', () => {
@ -22,4 +22,8 @@ suite('SetConVar', () => {
])
}, 8 + ('foo\0bar\0second\0value\0'.length * 8));
});
test('Re-encode setConVar', () => {
assertReEncode(ParseSetConVar, EncodeSetConVar, getStream(String.fromCharCode(2) + 'foo\0bar\0second\0value\0'));
});
});

View file

@ -5,7 +5,7 @@ import {createParserState} from '../../../../Data/ParserState';
import {ServerClass} from '../../../../Data/ServerClass';
import {EncodeTempEntities, ParseTempEntities} from '../../../../Parser/Packet/TempEntities';
import {hydrateEntity, hydrateTable} from './hydrate';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [
2,
@ -389,4 +389,8 @@ suite('TempEntities', () => {
test('Encode tempEntities', () => {
assertEncoder(parse, encode, expected, 166);
});
test('Re-encode tempEntities', () => {
assertReEncode(parse, encode, getStream(data));
});
});

View file

@ -1,7 +1,7 @@
import {BitStream} from 'bit-buffer';
import {HudTextLocation} from '../../../../Data/UserMessage';
import {EncodeUserMessage, ParseUserMessage} from '../../../../Parser/Packet/UserMessage';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [
5,
@ -52,4 +52,8 @@ suite('UserMessage', () => {
test('Encode userMessage', () => {
assertEncoder(ParseUserMessage, EncodeUserMessage, expected, 219);
});
test('Re-encode userMessage', () => {
assertReEncode(ParseUserMessage, EncodeUserMessage, getStream(data));
});
});

View file

@ -1,6 +1,6 @@
import {BitStream} from 'bit-buffer';
import {EncodeVoiceData, ParseVoiceData} from '../../../../Parser/Packet/VoiceData';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [5, 18, 24, 0, 123, 219, 1];
@ -24,4 +24,8 @@ suite('VoiceData', () => {
data: getStream([123, 219, 1])
}, 56);
});
test('Re-encode voiceData', () => {
assertReEncode(ParseVoiceData, EncodeVoiceData, getStream(data));
});
});

View file

@ -1,6 +1,6 @@
import {BitStream} from 'bit-buffer';
import {EncodeVoiceInit, ParseVoiceInit} from '../../../../Parser/Packet/VoiceInit';
import {assertEncoder, assertParser, getStream} from './PacketTest';
import {assertEncoder, assertParser, assertReEncode, getStream} from './PacketTest';
const data = [118, 97, 117, 100, 105, 111, 95, 99, 101, 108, 116, 0, 255, 34, 86];
@ -22,4 +22,8 @@ suite('VoiceInit', () => {
extraData: 22050
}, 120);
});
test('Re-encode voiceInit', () => {
assertReEncode(ParseVoiceInit, EncodeVoiceInit, getStream(data));
});
});