summaryrefslogtreecommitdiffstats
path: root/js/src/tests/shell/compression.js
blob: 4836d832fb361b54525afc532dae08b4b2498c1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// |reftest| skip-if(!xulRuntime.shell)

// Compressed buffers must have magic header and length
assertThrows(() => decompressLZ4(new ArrayBuffer()));

// Compress and decompress take an array buffer, not arrays
assertThrows(() => compressLZ4([]));
assertThrows(() => decompressLZ4([]));

// Round trip several buffers
let tests = [
	new Uint8Array([]),
	new Uint8Array([0]),
	new Uint8Array([0, 1, 2, 3]),
	new Uint8Array(1000),
];

for (let test of tests) {
	let original = test.buffer;

	let compressed = compressLZ4(original);
	assertEq(compressed instanceof ArrayBuffer, true);

	let decompressed = decompressLZ4(compressed);
	assertEq(decompressed instanceof ArrayBuffer, true);

	assertEqArray(new Uint8Array(original), new Uint8Array(decompressed));
}

reportCompare(true,true);