From adc2f698ae2e81ff9eb0123483be25c5d94b6c21 Mon Sep 17 00:00:00 2001 From: Jeff Schiller Date: Sun, 12 Dec 2021 15:34:58 -0800 Subject: [PATCH] Rename unzipper test harness files. --- tests/unzipper-test.html | 14 +++++++++++++ tests/unzipper-test.js | 44 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/unzipper-test.html create mode 100644 tests/unzipper-test.js diff --git a/tests/unzipper-test.html b/tests/unzipper-test.html new file mode 100644 index 0000000..72c6e53 --- /dev/null +++ b/tests/unzipper-test.html @@ -0,0 +1,14 @@ + + + + Tiny web inteface to test performance of the Unzipper. + + + +
+ + Select a bunch of zip files +
+
+ + \ No newline at end of file diff --git a/tests/unzipper-test.js b/tests/unzipper-test.js new file mode 100644 index 0000000..05ddca7 --- /dev/null +++ b/tests/unzipper-test.js @@ -0,0 +1,44 @@ + +import { UnarchiveEventType, Unzipper } from '../archive/archive.js'; + +const result = document.querySelector('#result'); +const fileInputEl = document.querySelector('#zip-tester'); + +async function getFiles(fileChangeEvt) { + result.innerHTML = `Starting to load files`; + const files = fileChangeEvt.target.files; + const buffers = []; + for (const file of files) { + buffers.push(await new Promise((resolve, reject) => { + const fr = new FileReader(); + fr.onload = () => { + resolve(new Uint8Array(fr.result)); + }; + fr.readAsArrayBuffer(file); + })); + } + + result.innerHTML = `Loaded files`; + + let fileNum = 0; + const INC = 100 / files.length; + const start = performance.now(); + + for (const b of buffers) { + await new Promise((resolve, reject) => { + const unzipper = new Unzipper(b.buffer, { pathToBitJS: '../' }); + unzipper.addEventListener(UnarchiveEventType.FINISH, () => { + fileNum++; + resolve(); + }); + result.innerHTML = `Unzipping file ${fileNum} / ${files.length}`; + unzipper.start(); + }); + } + + const end = performance.now(); + result.innerHTML = `Unzipping took ${end - start}ms`; +} + +fileInputEl.addEventListener('change', getFiles, false); +