diff options
author | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 20:32:57 +0000 |
---|---|---|
committer | binji@chromium.org <binji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-23 20:32:57 +0000 |
commit | 815a0099d612c4b0c7369a4c6ab866c9f851fb19 (patch) | |
tree | 2c2de6963b1eda5dbba54b11d7e5877589afa584 /native_client_sdk | |
parent | 40aa8bba1fa8d2e5faeb7a0f4f6ecd694a1ac2b1 (diff) | |
download | chromium_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-x | native_client_sdk/src/build_tools/test_projects.py | 3 | ||||
-rw-r--r-- | native_client_sdk/src/examples/api/core/example.js | 45 | ||||
-rw-r--r-- | native_client_sdk/src/examples/api/core/test.js | 51 |
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); + }); +} |