| OLD | NEW |
| 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
| 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| 3 <html> | 3 <html> |
| 4 <!-- Copyright 2009 Google Inc. All rights reserved. --> | 4 <!-- Copyright 2009 Google Inc. All rights reserved. --> |
| 5 <head> | 5 <head> |
| 6 <title> SRPC Socket Address API Test </title> | 6 <title> SRPC Socket Address API Test </title> |
| 7 <META HTTP-EQUIV="Pragma" CONTENT="no-cache" /> | 7 <META HTTP-EQUIV="Pragma" CONTENT="no-cache" /> |
| 8 <META HTTP-EQUIV="Expires" CONTENT="-1" /> | 8 <META HTTP-EQUIV="Expires" CONTENT="-1" /> |
| 9 <style type="text/css"> | 9 <style type="text/css"> |
| 10 td.notrun { background-color: skyblue } | 10 td.notrun { background-color: skyblue } |
| 11 td.pass { background-color: lime } | 11 td.pass { background-color: lime } |
| 12 td.fail { background-color: red } | 12 td.fail { background-color: red } |
| 13 </style> | 13 </style> |
| 14 <script type="application/x-javascript"> | 14 <script type="application/x-javascript"> |
| 15 //<![CDATA[ | 15 //<![CDATA[ |
| 16 var SetTestResult = function(element_id, result) { | 16 var SetTestResult = function(element_id, result) { |
| 17 var element = document.getElementById(element_id); | 17 var element = document.getElementById(element_id); |
| 18 element.className = result; | 18 element.className = result; |
| 19 } | 19 } |
| 20 | 20 |
| 21 // The NaCl module. Used to produce handles and for __shmFactory invocations. | 21 // The NaCl module. Used to produce handles and for __shmFactory invocations. |
| 22 var server; | 22 var server; |
| 23 // The default socket address for the plugin. | 23 // The default socket address for the plugin. |
| 24 var default_addr; | 24 var default_addr; |
| 25 // The address string of the default socket address for the plugin. | |
| 26 var addr_str; | |
| 27 // The count of failing tests. Set from the queue length, and decremented | 25 // The count of failing tests. Set from the queue length, and decremented |
| 28 // whenever a test passes. | 26 // whenever a test passes. |
| 29 var failing_count; | 27 var failing_count; |
| 30 | 28 |
| 31 // The queue of small tests. | 29 // The queue of small tests. |
| 32 var testQueue = [ ]; | 30 var testQueue = [ ]; |
| 33 var appendTest = function(test_descr) { | 31 var appendTest = function(test_descr) { |
| 34 testQueue[testQueue.length] = test_descr; | 32 testQueue[testQueue.length] = test_descr; |
| 35 } | 33 } |
| 36 | 34 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 48 expectFail('default_too_many', | 46 expectFail('default_too_many', |
| 49 function() { | 47 function() { |
| 50 return server.__defaultSocketAddress('extra'); | 48 return server.__defaultSocketAddress('extra'); |
| 51 }); | 49 }); |
| 52 // Attempt to get the default socket address. | 50 // Attempt to get the default socket address. |
| 53 expectPass('default_conforming', | 51 expectPass('default_conforming', |
| 54 true, | 52 true, |
| 55 function() { | 53 function() { |
| 56 return server.__defaultSocketAddress(); | 54 return server.__defaultSocketAddress(); |
| 57 }); | 55 }); |
| 58 // Attempt to get the string form of the socket address. | |
| 59 expectPass('default_tostring', | |
| 60 true, | |
| 61 function() { | |
| 62 var sockaddr = server.__defaultSocketAddress(); | |
| 63 if (sockaddr.toString() == addr_str) { | |
| 64 return true; | |
| 65 } | |
| 66 // undefined return will trigger failure. | |
| 67 return server.__defaultSocketAddress().toString(); | |
| 68 }); | |
| 69 } | |
| 70 | |
| 71 var SocketAddressFactory = function() { | |
| 72 // Test the creation of socket address objects. | |
| 73 // Attempt to create with the wrong number of parameters. | |
| 74 expectFail('factory_too_few', | |
| 75 function() { | |
| 76 return server.__socketAddressFactory(); | |
| 77 }); | |
| 78 expectFail('factory_too_many', | |
| 79 function() { | |
| 80 return server.__socketAddressFactory(addr_str, 'extra'); | |
| 81 }); | |
| 82 // Attempt to create a shared memory region with size of invalid type. | |
| 83 expectFail('factory_null', | |
| 84 function() { | |
| 85 return server.__socketAddressFactory(undefined); | |
| 86 }); | |
| 87 expectFail('factory_integer', | |
| 88 function() { | |
| 89 return server.__socketAddressFactory(1); | |
| 90 }); | |
| 91 expectFail('factory_object', | |
| 92 function() { | |
| 93 return server.__socketAddressFactory(new Array(10)); | |
| 94 }); | |
| 95 // Attempt to create a socket address with a valid string. | |
| 96 expectPass('factory_conforming', | |
| 97 true, | |
| 98 function() { | |
| 99 return server.__socketAddressFactory(addr_str); | |
| 100 }); | |
| 101 // Check that toString returns the string used to create the address. | |
| 102 expectPass('factory_tostring', | |
| 103 true, | |
| 104 function() { | |
| 105 var sockaddr = server.__socketAddressFactory(addr_str); | |
| 106 if (sockaddr.toString() == addr_str) { | |
| 107 return true; | |
| 108 } | |
| 109 // undefined return will trigger failure. | |
| 110 }); | |
| 111 } | 56 } |
| 112 | 57 |
| 113 var Connect = function() { | 58 var Connect = function() { |
| 114 // Test connection to socket address objects. | 59 // Test connection to socket address objects. |
| 115 // Attempt to create with the wrong number of parameters. | 60 // Attempt to create with the wrong number of parameters. |
| 116 expectFail('connect_too_many', | 61 expectFail('connect_too_many', |
| 117 function() { | 62 function() { |
| 118 return default_addr.connect('extra'); | 63 return default_addr.connect('extra'); |
| 119 }); | 64 }); |
| 120 expectFail('connect_invalid', | |
| 121 function() { | |
| 122 // There's a slight chance this is a valid address, I suppose. | |
| 123 var sockaddr = server.__socketAddressFactory('abcd'); | |
| 124 return sockaddr.connect(); | |
| 125 }); | |
| 126 // Attempt to connect to the default socket address. | 65 // Attempt to connect to the default socket address. |
| 127 expectPass('connect_default', | 66 expectPass('connect_default', |
| 128 true, | 67 true, |
| 129 function() { | 68 function() { |
| 130 return default_addr.connect(); | 69 return default_addr.connect(); |
| 131 }); | 70 }); |
| 132 // Attempt to connect to a created socket address. | |
| 133 expectPass('connect_sockaddr', | |
| 134 true, | |
| 135 function() { | |
| 136 var sockaddr = server.__socketAddressFactory(addr_str); | |
| 137 return sockaddr.connect(); | |
| 138 }); | |
| 139 // Attempt to connect to a socket address returned from a NaCl module. | 71 // Attempt to connect to a socket address returned from a NaCl module. |
| 140 expectPass('connect_nacl', | 72 expectPass('connect_nacl', |
| 141 true, | 73 true, |
| 142 function() { | 74 function() { |
| 143 var sockaddr = server.start_server(); | 75 var sockaddr = server.start_server(); |
| 144 return sockaddr.connect(); | 76 return sockaddr.connect(); |
| 145 }); | 77 }); |
| 146 } | 78 } |
| 147 | 79 |
| 148 // The test run functions. | 80 // The test run functions. |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 document.cookie = 'status=OK'; | 127 document.cookie = 'status=OK'; |
| 196 } | 128 } |
| 197 } | 129 } |
| 198 | 130 |
| 199 var EnqueueAndRunTests = function() { | 131 var EnqueueAndRunTests = function() { |
| 200 // Setup -- abort entire test if this fails. | 132 // Setup -- abort entire test if this fails. |
| 201 try { | 133 try { |
| 202 // If these fail at the beginning, all the tests will abort. | 134 // If these fail at the beginning, all the tests will abort. |
| 203 // Otherwise more specific tests are done on them. | 135 // Otherwise more specific tests are done on them. |
| 204 default_addr = server.__defaultSocketAddress(); | 136 default_addr = server.__defaultSocketAddress(); |
| 205 addr_str = default_addr.toString(); | |
| 206 } catch (string) { | 137 } catch (string) { |
| 207 window.alert('Socket address test setup failed.'); | 138 window.alert('Socket address test setup failed.'); |
| 208 return; | 139 return; |
| 209 } | 140 } |
| 210 // Enqueue the tests. | 141 // Enqueue the tests. |
| 211 DefaultSocketAddress(); | 142 DefaultSocketAddress(); |
| 212 SocketAddressFactory(); | |
| 213 Connect(); | 143 Connect(); |
| 214 // Run them all. | 144 // Run them all. |
| 215 RunAllTests(); | 145 RunAllTests(); |
| 216 } | 146 } |
| 217 //]]> | 147 //]]> |
| 218 </script> | 148 </script> |
| 219 </head> | 149 </head> |
| 220 <body onload="nacllib.waitForModulesAndRunTests();" | 150 <body onload="nacllib.waitForModulesAndRunTests();" |
| 221 onunload="nacllib.cleanUp();" > | 151 onunload="nacllib.cleanUp();" > |
| 222 <h1> SRPC Socket Address API Test </h1> | 152 <h1> SRPC Socket Address API Test </h1> |
| 223 <table cellspacing=5 cellpadding=5 border=5 summary="Test status table"> | 153 <table cellspacing=5 cellpadding=5 border=5 summary="Test status table"> |
| 224 <tr> | 154 <tr> |
| 225 <td> | 155 <td> |
| 226 </td> | 156 </td> |
| 227 <td> | 157 <td> |
| 228 <b> __defaultSocketAddress tests </b> | 158 <b> __defaultSocketAddress tests </b> |
| 229 </td> | 159 </td> |
| 230 <td> | 160 <td> |
| 231 <b> __socketAddressFactory tests </b> | |
| 232 </td> | |
| 233 <td> | |
| 234 <b> connect tests </b> | 161 <b> connect tests </b> |
| 235 </td> | 162 </td> |
| 236 </tr> | 163 </tr> |
| 237 <tr> | 164 <tr> |
| 238 <td> | 165 <td> |
| 239 <b> Argument count tests </b> | 166 <b> Argument count tests </b> |
| 240 </td> | 167 </td> |
| 241 <td> | 168 <td> |
| 242 <table summary="Default argument count test"> | 169 <table summary="Default argument count test"> |
| 243 <tr> | 170 <tr> |
| 244 <td id="default_too_many" class="notrun"> | 171 <td id="default_too_many" class="notrun"> |
| 245 argc: too many | 172 argc: too many |
| 246 </td> | 173 </td> |
| 247 </tr> | 174 </tr> |
| 248 </table> | 175 </table> |
| 249 </td> | 176 </td> |
| 250 <td valign=top> | |
| 251 <table summary="Factory argument count tests"> | |
| 252 <tr> | |
| 253 <td id="factory_too_few" class="notrun"> | |
| 254 argc: too few | |
| 255 </td> | |
| 256 </tr> | |
| 257 <tr> | |
| 258 <td id="factory_too_many" class="notrun"> | |
| 259 argc: too many | |
| 260 </td> | |
| 261 </tr> | |
| 262 </table> | |
| 263 </td> | |
| 264 <td> | 177 <td> |
| 265 <table summary="Connect argument count test"> | 178 <table summary="Connect argument count test"> |
| 266 <tr> | 179 <tr> |
| 267 <td id="connect_too_many" class="notrun"> | 180 <td id="connect_too_many" class="notrun"> |
| 268 argc: too many | 181 argc: too many |
| 269 </td> | 182 </td> |
| 270 </tr> | 183 </tr> |
| 271 </table> | 184 </table> |
| 272 </td> | 185 </td> |
| 273 </tr> | 186 </tr> |
| 274 <tr> | |
| 275 <td> | |
| 276 <b> Argument type tests </b> | |
| 277 </td> | |
| 278 <td valign=top> | |
| 279 </td> | |
| 280 <td valign=top> | |
| 281 <table summary="Factory argument type tests"> | |
| 282 <tr> | |
| 283 <td id="factory_null" class="notrun"> | |
| 284 arg[0]: (address) undefined | |
| 285 </td> | |
| 286 </tr> | |
| 287 <tr> | |
| 288 <td id="factory_integer" class="notrun"> | |
| 289 arg[0]: (address) integer | |
| 290 </td> | |
| 291 </tr> | |
| 292 <tr> | |
| 293 <td id="factory_object" class="notrun"> | |
| 294 arg[0]: (address) object | |
| 295 </td> | |
| 296 </tr> | |
| 297 </table> | |
| 298 </td> | |
| 299 <td valign=top> | |
| 300 </td> | |
| 301 </tr> | |
| 302 | |
| 303 <tr> | |
| 304 <td> | |
| 305 <b> Semantic error tests </b> | |
| 306 </td> | |
| 307 <td> | |
| 308 </td> | |
| 309 <td> | |
| 310 </td> | |
| 311 <td> | |
| 312 <table summary="Invalid connection test"> | |
| 313 <tr> | |
| 314 <td id="connect_invalid" class="notrun"> | |
| 315 to bad socket address | |
| 316 </td> | |
| 317 </tr> | |
| 318 </table> | |
| 319 </td> | |
| 320 </tr> | |
| 321 | 187 |
| 322 <tr> | 188 <tr> |
| 323 <td> | 189 <td> |
| 324 <b> Expected behavior </b> | 190 <b> Expected behavior </b> |
| 325 </td> | 191 </td> |
| 326 <td valign=top> | 192 <td valign=top> |
| 327 <table summary="Default behavior tests"> | 193 <table summary="Default behavior tests"> |
| 328 <tr> | 194 <tr> |
| 329 <td id="default_conforming" class="notrun"> | 195 <td id="default_conforming" class="notrun"> |
| 330 conforming invocation | 196 conforming invocation |
| 331 </td> | 197 </td> |
| 332 </tr> | 198 </tr> |
| 333 <tr> | |
| 334 <td id="default_tostring" class="notrun"> | |
| 335 toString | |
| 336 </td> | |
| 337 </tr> | |
| 338 </table> | 199 </table> |
| 339 </td> | 200 </td> |
| 340 <td valign=top> | 201 <td valign=top> |
| 341 <table summary="Factory behavior tests"> | |
| 342 <tr> | |
| 343 <td id="factory_conforming" class="notrun"> | |
| 344 conforming invocation | |
| 345 </td> | |
| 346 </tr> | |
| 347 <tr> | |
| 348 <td id="factory_tostring" class="notrun"> | |
| 349 toString | |
| 350 </td> | |
| 351 </tr> | |
| 352 </table> | |
| 353 </td> | |
| 354 <td valign=top> | |
| 355 <table summary="Connection behavior tests"> | 202 <table summary="Connection behavior tests"> |
| 356 <tr> | 203 <tr> |
| 357 <td id="connect_default" class="notrun"> | 204 <td id="connect_default" class="notrun"> |
| 358 to default | 205 to default |
| 359 </td> | 206 </td> |
| 360 </tr> | 207 </tr> |
| 361 <tr> | 208 <tr> |
| 362 <td id="connect_sockaddr" class="notrun"> | |
| 363 to JavaScript-created address | |
| 364 </td> | |
| 365 </tr> | |
| 366 <tr> | |
| 367 <td id="connect_nacl" class="notrun"> | 209 <td id="connect_nacl" class="notrun"> |
| 368 to address returned from NaCl | 210 to address returned from NaCl |
| 369 </td> | 211 </td> |
| 370 </tr> | 212 </tr> |
| 371 </table> | 213 </table> |
| 372 </td> | 214 </td> |
| 373 </tr> | 215 </tr> |
| 374 </table> | 216 </table> |
| 375 | 217 |
| 376 <table summary="The color codes used for identifying test outcomes"> | 218 <table summary="The color codes used for identifying test outcomes"> |
| (...skipping 28 matching lines...) Expand all Loading... |
| 405 } else if (0 != failing_count) { | 247 } else if (0 != failing_count) { |
| 406 return "Tests failed."; | 248 return "Tests failed."; |
| 407 } else { | 249 } else { |
| 408 return ""; | 250 return ""; |
| 409 } | 251 } |
| 410 } | 252 } |
| 411 //]]> | 253 //]]> |
| 412 </script> | 254 </script> |
| 413 </body> | 255 </body> |
| 414 </html> | 256 </html> |
| OLD | NEW |