Commit 1ba65f58 authored by Noel Gordon's avatar Noel Gordon Committed by Commit Bot

[piexwasm] tests.js: better measure piex test time

Measure the test time (viz., fetch and piex processing time, including
the cost of extracting the preview / thumbnail images). Accumlate that
test time into a window.testTime global, controlled by test.js.

Minor test.sh change: force grep to treat its input as text.

Bug: 935285
Change-Id: I13c66e0f803677f0cd22d7507e479bd02e0e7462
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1548961
Commit-Queue: Noel Gordon <noel@chromium.org>
Reviewed-by: default avatarAlex Danilo <adanilo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#647125}
parent 37574327
...@@ -29,7 +29,7 @@ piex wasm raw image preview / thumbnail test page ...@@ -29,7 +29,7 @@ piex wasm raw image preview / thumbnail test page
process(resolve, reject) { process(resolve, reject) {
if (this.length <= 0 || this.length >= Math.pow(2, 30)) if (this.length <= 0 || this.length >= Math.pow(2, 30))
return reject(new Error('invalid image length')); return reject(new Error('invalid image length'));
const memory = Module._malloc(this.length); const memory = Module._malloc(this.length);
if (!memory) if (!memory)
return reject(new Error('image malloc failure')); return reject(new Error('image malloc failure'));
...@@ -186,20 +186,24 @@ piex wasm raw image preview / thumbnail test page ...@@ -186,20 +186,24 @@ piex wasm raw image preview / thumbnail test page
// Fetch the image in an array buffer. // Fetch the image in an array buffer.
let time = performance.now(); let time = performance.now();
const buffer = await fetch(image).then(r => r.arrayBuffer()); const buffer = await fetch(image).then(r => r.arrayBuffer());
time = performance.now() - time; const elapsed = performance.now() - time;
console.log('test: fetch time', time.toFixed(3) + 'ms'); console.log('test: fetch time', elapsed.toFixed(3));
// Extract its preview and thumbnail images, render them. // Extract its preview and thumbnail images, render them.
time = performance.now();
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
new ImageBuffer(buffer).process(resolve, reject); new ImageBuffer(buffer).process(resolve, reject);
}).then((imageBuffer) => { }).then((imageBuffer) => {
let preview = imageBuffer.preview();
let thumb = imageBuffer.thumbnail();
time = performance.now() - time; time = performance.now() - time;
console.log('test: result ' + JSON.stringify(imageBuffer.result)); const maker = imageBuffer.result.maker || '';
const model = imageBuffer.result.model || '';
console.log('test:', image, maker, model);
window.images_ = 0; window.images_ = 0;
renderResult(image, imageBuffer.preview()); renderResult(image, preview);
renderResult(image, imageBuffer.thumbnail()); renderResult(image, thumb);
console.log('test: done', time.toFixed(3) + 'ms'); console.log('test: done', time.toFixed(3));
window.testTime += time;
console.log('\n'); console.log('\n');
if (!window.images_) if (!window.images_)
document.title = 'DONE'; document.title = 'DONE';
......
...@@ -86,29 +86,27 @@ const puppeteer = require('puppeteer'); ...@@ -86,29 +86,27 @@ const puppeteer = require('puppeteer');
"images/UNKNOWN_FORMAT.JPG", "images/UNKNOWN_FORMAT.JPG",
]; ];
let time = 0.0; await page.evaluate(() => {
window.testTime = 0;
});
for (let i = 0; i < images.length; ++i) { for (let i = 0; i < images.length; ++i) {
const start = await page.evaluate(() => {
return window.performance.now();
});
await page.evaluate((image) => { await page.evaluate((image) => {
window.runTest(image); window.runTest(image);
}, images[i]); }, images[i]);
await page.mainFrame().waitForFunction('document.title == "DONE"'); await page.mainFrame().waitForFunction('document.title == "DONE"');
time += await page.evaluate(() => {
return window.performance.now();
}) - start;
if (program.debug) { if (program.debug) {
await sleep(2000); await sleep(2000);
} }
} }
console.log('test: done total time', time.toFixed(3)); const testTime = await page.evaluate(() => {
return window.testTime;
});
console.log('test: done total time', testTime.toFixed(3));
browser.close(); browser.close();
})(); })();
...@@ -14,8 +14,8 @@ HTTP_SERVER_PID=$! ...@@ -14,8 +14,8 @@ HTTP_SERVER_PID=$!
# Extract preview thumbnails from the raw test images. # Extract preview thumbnails from the raw test images.
rm -f tests.hash rm -f tests.hash
node tests.js ${HTTP}/tests.html "$*" | tee -a tests.log | \ node tests.js ${HTTP}/tests.html $* | tee -a tests.log | \
grep hash > tests.hash grep --text hash > tests.hash
kill ${HTTP_SERVER_PID} > /dev/null 2>&1 kill ${HTTP_SERVER_PID} > /dev/null 2>&1
# Compare their hash to the golden hash values. # Compare their hash to the golden hash values.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment