| Index: tests/prebuilt/x86/srpc_basic.html
|
| ===================================================================
|
| --- tests/prebuilt/x86/srpc_basic.html (revision 4988)
|
| +++ tests/prebuilt/x86/srpc_basic.html (working copy)
|
| @@ -1,701 +0,0 @@
|
| -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
| - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
| -<html>
|
| - <!-- Copyright 2009 Google Inc. All rights reserved. -->
|
| - <head>
|
| - <title> SRPC Parameter Passing Test </title>
|
| - <META HTTP-EQUIV="Pragma" CONTENT="no-cache" />
|
| - <META HTTP-EQUIV="Expires" CONTENT="-1" />
|
| - <style type="text/css">
|
| - td.notrun { background-color: skyblue }
|
| - td.pass { background-color: lime }
|
| - td.fail { background-color: red }
|
| - </style>
|
| - <script type="application/x-javascript">
|
| - //<![CDATA[
|
| -var SetTestResult = function(element_id, result) {
|
| - var element = document.getElementById(element_id);
|
| - element.className = result;
|
| -}
|
| -
|
| -// The NaCl module.
|
| -var server;
|
| -// The default socket address for the plugin.
|
| -var default_addr;
|
| -// The count of failing tests. Set from the queue length, and decremented
|
| -// whenever a test passes.
|
| -var failing_count;
|
| -
|
| -// The queue of small tests.
|
| -var testQueue = [ ];
|
| -var appendTest = function(test_descr) {
|
| - testQueue[testQueue.length] = test_descr;
|
| -}
|
| -
|
| -var expectPass = function(element, has_return, fp) {
|
| - appendTest(new Array('pass', element, has_return, fp));
|
| -}
|
| -
|
| -var expectFail = function(element, fp) {
|
| - appendTest(new Array('fail', element, fp));
|
| -}
|
| -
|
| -// Tests passing scalar types.
|
| -var ScalarTypes = function() {
|
| - expectPass('bool_passret',
|
| - true,
|
| - function() {
|
| - if (!server.bool(true) && server.bool(false)) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('int_as_bool',
|
| - function() {
|
| - return server.bool(1);
|
| - });
|
| - expectFail('array_as_bool',
|
| - function() {
|
| - return server.bool(new Array(10));
|
| - });
|
| - expectFail('handle_as_bool',
|
| - function() {
|
| - return server.bool(server.__defaultSocketAddress());
|
| - });
|
| - expectPass('double_passret',
|
| - true,
|
| - function() {
|
| - var dval = 3.1415;
|
| - if (server.double(dval) == -dval) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_double',
|
| - function() {
|
| - return server.double(true);
|
| - });
|
| - expectFail('array_as_double',
|
| - function() {
|
| - return server.double(new Array(10));
|
| - });
|
| - expectFail('handle_as_double',
|
| - function() {
|
| - return server.double(server.__defaultSocketAddress());
|
| - });
|
| - expectPass('int_passret',
|
| - true,
|
| - function() {
|
| - var ival = 12345;
|
| - if (server.int(ival) == -ival) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_int',
|
| - function() {
|
| - return server.int(true);
|
| - });
|
| - expectFail('array_as_int',
|
| - function() {
|
| - return server.int(new Array(10));
|
| - });
|
| - expectFail('handle_as_int',
|
| - function() {
|
| - return server.int(server.__defaultSocketAddress());
|
| - });
|
| -}
|
| -
|
| -// Tests passing array types.
|
| -var ArrayTypes = function() {
|
| - expectPass('chararr_passret',
|
| - true,
|
| - function() {
|
| - var carr = [ 72, 101, 108, 108, 111 ];
|
| - var ret_arr = server.char_array(carr, 5);
|
| - if (ret_arr[0] == carr[4] &&
|
| - ret_arr[1] == carr[3] &&
|
| - ret_arr[2] == carr[2] &&
|
| - ret_arr[3] == carr[1] &&
|
| - ret_arr[4] == carr[0]) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_char_array',
|
| - function() {
|
| - return server.char_array(true);
|
| - });
|
| - expectFail('int_as_char_array',
|
| - function() {
|
| - return server.char_array(1);
|
| - });
|
| - expectFail('double_as_char_array',
|
| - function() {
|
| - return server.char_array(1.0);
|
| - });
|
| - expectFail('handle_as_char_array',
|
| - function() {
|
| - return server.char_array(server.__defaultSocketAddress());
|
| - });
|
| - expectPass('doublearr_passret',
|
| - true,
|
| - function() {
|
| - var darr = [ 3.1, 1.4, 4.1, 1.5, 5.9 ];
|
| - var ret_arr = server.double_array(darr, 5);
|
| - if (ret_arr[0] == darr[4] &&
|
| - ret_arr[1] == darr[3] &&
|
| - ret_arr[2] == darr[2] &&
|
| - ret_arr[3] == darr[1] &&
|
| - ret_arr[4] == darr[0]) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_double_array',
|
| - function() {
|
| - return server.double_array(true);
|
| - });
|
| - expectFail('int_as_double_array',
|
| - function() {
|
| - return server.double_array(1);
|
| - });
|
| - expectFail('double_as_double_array',
|
| - function() {
|
| - return server.double_array(1.0);
|
| - });
|
| - expectFail('handle_as_double_array',
|
| - function() {
|
| - return server.double_array(server.__defaultSocketAddress());
|
| - });
|
| - expectPass('intarr_passret',
|
| - true,
|
| - function() {
|
| - var iarr = [ 1, 2, 3, 4, 5 ];
|
| - var ret_arr = server.int_array(iarr, 5);
|
| - if (ret_arr[0] == iarr[4] &&
|
| - ret_arr[1] == iarr[3] &&
|
| - ret_arr[2] == iarr[2] &&
|
| - ret_arr[3] == iarr[1] &&
|
| - ret_arr[4] == iarr[0]) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_int_array',
|
| - function() {
|
| - return server.int_array(true);
|
| - });
|
| - expectFail('int_as_int_array',
|
| - function() {
|
| - return server.int_array(1);
|
| - });
|
| - expectFail('double_as_int_array',
|
| - function() {
|
| - return server.int_array(1.0);
|
| - });
|
| - expectFail('handle_as_int_array',
|
| - function() {
|
| - return server.int_array(server.__defaultSocketAddress());
|
| - });
|
| -}
|
| -
|
| -// Tests passing more complex or special-purpose types.
|
| -var SpecialTypes = function() {
|
| - expectPass('string_send',
|
| - true,
|
| - function() {
|
| - var str = 'one more test';
|
| - var ret = server.string(str);
|
| - if (str.length == ret) {
|
| - return true;
|
| - }
|
| - });
|
| - expectPass('string_return',
|
| - true,
|
| - function() {
|
| - var ret = server.stringret(0);
|
| - if ('string' == typeof(ret)) {
|
| - return true;
|
| - }
|
| - });
|
| - expectFail('bool_as_string',
|
| - function() {
|
| - return server.string(true);
|
| - });
|
| - expectFail('int_as_string',
|
| - function() {
|
| - return server.string(1);
|
| - });
|
| - expectFail('double_as_string',
|
| - function() {
|
| - return server.string(1);
|
| - });
|
| - expectFail('array_as_string',
|
| - function() {
|
| - var iarr = [ 1, 2, 3, 4, 5 ];
|
| - return server.string(iarr);
|
| - });
|
| - expectPass('handle_send',
|
| - false,
|
| - function() {
|
| - var hnd = server.__defaultSocketAddress();
|
| - server.handle(hnd);
|
| - });
|
| - expectPass('handle_return',
|
| - true,
|
| - function() {
|
| - var ret = server.handleret();
|
| - if ('object' == typeof(ret)) {
|
| - return true;
|
| - }
|
| - });
|
| - expectPass('invalid_handle_return',
|
| - true,
|
| - function() {
|
| - var ret = server.invalid_handle_ret();
|
| - if ('object' == typeof(ret)) {
|
| - return true;
|
| - }
|
| - });
|
| - expectPass('invalid_handle_send',
|
| - false,
|
| - function() {
|
| - var ret = server.invalid_handle_ret();
|
| - if ('object' == typeof(ret)) {
|
| - server.invalid_handle(ret);
|
| - }
|
| - });
|
| - expectFail('bool_as_handle',
|
| - function() {
|
| - return server.handle(true);
|
| - });
|
| - expectFail('int_as_handle',
|
| - function() {
|
| - return server.handle(1);
|
| - });
|
| - expectFail('double_as_handle',
|
| - function() {
|
| - return server.handle(1);
|
| - });
|
| - expectFail('array_as_handle',
|
| - function() {
|
| - var iarr = [ 1, 2, 3, 4, 5 ];
|
| - return server.handle(iarr);
|
| - });
|
| -}
|
| -
|
| -// Functions to support running each of the tests.
|
| -var testExpectedPass = function(element, has_return, fp) {
|
| - var result = undefined;
|
| - try {
|
| - result = fp();
|
| - if (has_return && (undefined == result)) {
|
| - SetTestResult(element, 'fail');
|
| - } else {
|
| - SetTestResult(element, 'pass');
|
| - --failing_count;
|
| - }
|
| - } catch (string) {
|
| - SetTestResult(element, 'fail');
|
| - }
|
| -}
|
| -
|
| -var testExpectedFail = function(element, fp) {
|
| - var result = undefined;
|
| - try {
|
| - result = fp();
|
| - SetTestResult(element, 'fail');
|
| - } catch (string) {
|
| - if (undefined == result) {
|
| - SetTestResult(element, 'pass');
|
| - --failing_count;
|
| - } else {
|
| - SetTestResult(element, 'fail');
|
| - }
|
| - }
|
| -}
|
| -
|
| -var RunAllTests = function() {
|
| - var i;
|
| - var len = testQueue.length;
|
| - // All tests are considered failure until they have run successfully.
|
| - // This catches runs that end prematurely.
|
| - failing_count = len;
|
| - for (i = 0; i < len; ++i) {
|
| - var test_descr = testQueue[i];
|
| - if ('pass' == test_descr[0]) {
|
| - testExpectedPass(test_descr[1], test_descr[2], test_descr[3]);
|
| - } else {
|
| - testExpectedFail(test_descr[1], test_descr[2]);
|
| - }
|
| - }
|
| - if (0 == failing_count) {
|
| - // Set the magic Selenium variable to signal success.
|
| - document.cookie = 'status=OK';
|
| - }
|
| -}
|
| -
|
| -var EnqueueAndRunTests = function() {
|
| - // Setup -- abort entire test if this fails.
|
| - try {
|
| - // If these fail at the beginning, all the tests will abort.
|
| - // Otherwise more specific tests are done on them.
|
| - default_addr = server.__defaultSocketAddress();
|
| - } catch (string) {
|
| - window.alert('Socket address test setup failed.');
|
| - return;
|
| - }
|
| - // Enqueue the tests.
|
| - ScalarTypes();
|
| - ArrayTypes();
|
| - SpecialTypes();
|
| - // Run them all.
|
| - RunAllTests();
|
| -}
|
| - //]]>
|
| - </script>
|
| - </head>
|
| - <body onload="nacllib.waitForModulesAndRunTests();"
|
| - onunload="nacllib.cleanUp();" >
|
| - <h1> SRPC Parameter Passing Test </h1>
|
| - <table cellspacing=5 cellpadding=5 border=5 summary="Test status table">
|
| - <tr>
|
| - <td>
|
| - </td>
|
| - <td>
|
| - <b> Scalar types </b>
|
| - </td>
|
| - <td>
|
| - <b> Array types </b>
|
| - </td>
|
| - <td>
|
| - <b> Special types </b>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Boolean </b>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Boolean test status">
|
| - <tr>
|
| - <td id="bool_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_bool" class="notrun">
|
| - int as bool
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="array_as_bool" class="notrun">
|
| - array as bool
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_bool" class="notrun">
|
| - handle as bool
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Character (1-byte) </b>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Character test status">
|
| - <tr>
|
| - <td id="chararr_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_char_array" class="notrun">
|
| - bool as char array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_char_array" class="notrun">
|
| - int as char array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="double_as_char_array" class="notrun">
|
| - double as char array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_char_array" class="notrun">
|
| - handle as char array
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Double (8-byte fp) </b>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Double test status">
|
| - <tr>
|
| - <td id="double_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_double" class="notrun">
|
| - bool as double
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="array_as_double" class="notrun">
|
| - array as double
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_double" class="notrun">
|
| - handle as double
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Double array test status">
|
| - <tr>
|
| - <td id="doublearr_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_double_array" class="notrun">
|
| - bool as double array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_double_array" class="notrun">
|
| - int as double array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="double_as_double_array" class="notrun">
|
| - double as double array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_double_array" class="notrun">
|
| - handle as double array
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Integer (4-byte) </b>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Integer test status">
|
| - <tr>
|
| - <td id="int_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_int" class="notrun">
|
| - bool as int
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="array_as_int" class="notrun">
|
| - array as int
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_int" class="notrun">
|
| - handle as int
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Integer array test status">
|
| - <tr>
|
| - <td id="intarr_passret" class="notrun">
|
| - pass/return
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_int_array" class="notrun">
|
| - bool as int array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_int_array" class="notrun">
|
| - int as int array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="double_as_int_array" class="notrun">
|
| - double as int array
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_as_int_array" class="notrun">
|
| - handle as int array
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Strings (NUL-terminated) </b>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - <td valign=top>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="String tests status">
|
| - <tr>
|
| - <td id="string_send" class="notrun">
|
| - send to NaCl
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_string" class="notrun">
|
| - bool as string
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_string" class="notrun">
|
| - int as string
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="double_as_string" class="notrun">
|
| - double as string
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="array_as_string" class="notrun">
|
| - array as string
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="string_return" class="notrun">
|
| - return from NaCl
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td>
|
| - <b> Handle (descriptor) </b>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Handle tests">
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Handle tests">
|
| - </table>
|
| - </td>
|
| - <td valign=top>
|
| - <table summary="Handle tests status">
|
| - <tr>
|
| - <td id="handle_send" class="notrun">
|
| - send to NaCl
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="bool_as_handle" class="notrun">
|
| - bool as handle
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="int_as_handle" class="notrun">
|
| - int as handle
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="double_as_handle" class="notrun">
|
| - double as handle
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="array_as_handle" class="notrun">
|
| - array as handle
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="handle_return" class="notrun">
|
| - return from NaCl
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="invalid_handle_send" class="notrun">
|
| - send invalid to NaCl
|
| - </td>
|
| - </tr>
|
| - <tr>
|
| - <td id="invalid_handle_return" class="notrun">
|
| - return invalid from NaCl
|
| - </td>
|
| - </tr>
|
| - </table>
|
| - </td>
|
| - </tr>
|
| - </table>
|
| -
|
| - <table summary="The color codes used for identifying test outcomes">
|
| - <tr> <td align="center"> <em> Legend </em> </td> </tr>
|
| - <tr> <td align="center" class="notrun"> Test not run </td> </tr>
|
| - <tr> <td align="center" class="pass"> Test passed </td> </tr>
|
| - <tr> <td align="center" class="fail"> Test failed </td> </tr>
|
| - </table>
|
| - <p>
|
| - <b>
|
| - NOTE: Some versions of some WebKit-based browsers do not correctly report
|
| - JavaScript exceptions raised by NPAPI plugins. This can cause some of
|
| - the above tests to spuriously report failure.
|
| - </b>
|
| - </p>
|
| -
|
| - <div id=status>NO-STATUS</div>
|
| -
|
| - <embed type="application/x-nacl" id="nacl_server" name="nacl_module"
|
| - width="0" height="0" src="srpc_test.nexe" />
|
| -
|
| - <script type="text/javascript" src="nacl_js_lib.js"></script>
|
| - <script type="text/javascript">
|
| - //<![CDATA[
|
| - var nacllib = new NaclLib("nacl_module", "status", 500);
|
| -
|
| - nacllib.test = function() {
|
| - server = document.getElementById("nacl_server");
|
| - EnqueueAndRunTests();
|
| - if (0 == testQueue.length) {
|
| - return "No tests run.";
|
| - } else if (0 != failing_count) {
|
| - return "Tests failed.";
|
| - } else {
|
| - return "";
|
| - }
|
| - }
|
| - //]]>
|
| - </script>
|
| - </body>
|
| -</html>
|
|
|