summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-23 20:32:57 +0000
committerbinji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-23 20:32:57 +0000
commit815a0099d612c4b0c7369a4c6ab866c9f851fb19 (patch)
tree2c2de6963b1eda5dbba54b11d7e5877589afa584 /native_client_sdk
parent40aa8bba1fa8d2e5faeb7a0f4f6ecd694a1ac2b1 (diff)
downloadchromium_src-815a0099d612c4b0c7369a4c6ab866c9f851fb19.zip
chromium_src-815a0099d612c4b0c7369a4c6ab866c9f851fb19.tar.gz
chromium_src-815a0099d612c4b0c7369a4c6ab866c9f851fb19.tar.bz2
[NaCl SDK] Add example test for core.
BUG=none R=ncbray@chromium.org, sbc@chromium.org Review URL: https://codereview.chromium.org/23248005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219325 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'native_client_sdk')
-rwxr-xr-xnative_client_sdk/src/build_tools/test_projects.py3
-rw-r--r--native_client_sdk/src/examples/api/core/example.js45
-rw-r--r--native_client_sdk/src/examples/api/core/test.js51
3 files changed, 78 insertions, 21 deletions
diff --git a/native_client_sdk/src/build_tools/test_projects.py b/native_client_sdk/src/build_tools/test_projects.py
index 04fe73d..25b84b5 100755
--- a/native_client_sdk/src/build_tools/test_projects.py
+++ b/native_client_sdk/src/build_tools/test_projects.py
@@ -110,6 +110,9 @@ def GetBrowserTesterCommand(desc, toolchain, config):
ppapi_plugin += '.so'
args.extend(['--ppapi_plugin', ppapi_plugin])
+ ppapi_plugin_mimetype = 'application/x-ppapi-%s' % config.lower()
+ args.extend(['--ppapi_plugin_mimetype', ppapi_plugin_mimetype])
+
if toolchain == 'pnacl':
args.extend(['--browser_flag', '--enable-pnacl'])
diff --git a/native_client_sdk/src/examples/api/core/example.js b/native_client_sdk/src/examples/api/core/example.js
index 99875eb..e126026 100644
--- a/native_client_sdk/src/examples/api/core/example.js
+++ b/native_client_sdk/src/examples/api/core/example.js
@@ -9,60 +9,63 @@ var itrNaCl = new Float64Array(itrMax);
var itrRecv = new Float64Array(itrMax);
var delay = 0;
+function getTimeInMilliseconds() {
+ return (new Date()).getTime();
+}
+
function attachListeners() {
- document.getElementById('start').addEventListener('click',
- startTest);
- count_pp = document.getElementById('count')
- count_pp.textContent = itrMax;
+ document.getElementById('start').addEventListener('click', startTest);
+ countEl = document.getElementById('count');
+ countEl.textContent = itrMax;
}
function startTest() {
if (common.naclModule) {
- var startButton = document.getElementById('start');
- startButton.disabled = true;
+ var startEl = document.getElementById('start');
+ startEl.disabled = true;
- var delayControl = document.getElementById('delay');
- delay = parseInt(delayControl.value, 10);
+ var delayEl = document.getElementById('delay');
+ delay = parseInt(delayEl.value, 10);
common.updateStatus('Running Test');
itrCount = 0;
- itrSend[0] = (new Date()).getTime();
+ itrSend[0] = getTimeInMilliseconds();
common.naclModule.postMessage(delay);
}
}
function setStats(nacl, compute, total) {
- var statNaCl = document.getElementById('NaCl');
- var statRound = document.getElementById('Round');
- var statAll = document.getElementById('Total');
+ var statNaClEl = document.getElementById('NaCl');
+ var statRoundEl = document.getElementById('Round');
+ var statTotalEl = document.getElementById('Total');
- statNaCl.textContent = (nacl / itrMax) + ' ms';
- statRound.textContent = (compute / itrMax) + ' ms';
- statAll.textContent = (total / itrMax) + ' ms';
+ statNaClEl.textContent = (nacl / itrMax) + ' ms';
+ statRoundEl.textContent = (compute / itrMax) + ' ms';
+ statTotalEl.textContent = (total / itrMax) + ' ms';
}
// Called by the common.js module.
function handleMessage(message_event) {
// Convert NaCl Seconds elapsed to MS
itrNaCl[itrCount] = message_event.data * 1000.0;
- itrRecv[itrCount] = (new Date()).getTime();
+ itrRecv[itrCount] = getTimeInMilliseconds();
itrCount++;
- if (itrCount == itrMax) {
+ if (itrCount === itrMax) {
common.updateStatus('Test Finished');
- var startButton = document.getElementById('start');
- startButton.disabled = false;
+ var startEl = document.getElementById('start');
+ startEl.disabled = false;
var naclMS = 0.0;
var computeMS = 0.0;
- for (var i=0; i < itrMax; i++) {
+ for (var i = 0; i < itrMax; i++) {
naclMS += itrNaCl[i];
computeMS += itrRecv[i] - itrSend[i];
}
setStats(naclMS, computeMS, itrRecv[itrMax - 1] - itrSend[0]);
} else {
- itrSend[itrCount] = (new Date()).getTime();
+ itrSend[itrCount] = getTimeInMilliseconds();
common.naclModule.postMessage(delay);
}
}
diff --git a/native_client_sdk/src/examples/api/core/test.js b/native_client_sdk/src/examples/api/core/test.js
new file mode 100644
index 0000000..27f58ce
--- /dev/null
+++ b/native_client_sdk/src/examples/api/core/test.js
@@ -0,0 +1,51 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+function addTests() {
+ function getNaClTimeMs() {
+ return parseFloat(document.getElementById('NaCl').textContent);
+ }
+
+ function getRoundTimeMs() {
+ return parseFloat(document.getElementById('Round').textContent);
+ }
+
+ function getTotalTimeMs() {
+ return parseFloat(document.getElementById('Total').textContent);
+ }
+
+ function delayTest(test, delayMs) {
+ test.log('Setting delay to ' + delayMs + 'ms');
+ document.getElementById('delay').value = delayMs;
+
+ test.log('Clicking start.');
+ var startEl = document.getElementById('start');
+ startEl.dispatchEvent(new CustomEvent('click'));
+
+ test.log('Waiting 1 second for test to finish.');
+ var intervalId = window.setInterval(function() {
+ if (itrCount !== itrMax) {
+ test.log('Not finished, waiting another second.');
+ return;
+ }
+
+ window.clearInterval(intervalId);
+ test.log('NaCl time: ' + getNaClTimeMs().toFixed(2) + 'ms');
+ test.log('Roundtrip time: ' + getRoundTimeMs().toFixed(2) + 'ms');
+ test.log('Total time: ' + getTotalTimeMs().toFixed(2) + 'ms');
+ test.log('Finished.');
+ test.pass();
+ }, 1000);
+ }
+
+ common.tester.addAsyncTest('delay_0', function(test) {
+ var delayMs = 0;
+ delayTest(test, delayMs);
+ });
+
+ common.tester.addAsyncTest('delay_3', function(test) {
+ var delayMs = 3;
+ delayTest(test, delayMs);
+ });
+}