1 <!-- 2 Copyright 2011 The Chromium Authors. All rights reserved. 3 Use of this source code is governed by a BSD-style license that can 4 be found in the LICENSE file. 5 --> 6 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 7 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 8 <html> 9 <head> 10 <meta http-equiv="Pragma" content="no-cache" /> 11 <meta http-equiv="Expires" content="-1" /> 12 <script type="text/javascript" src="nacltest.js"></script> 13 <title>Native Client I/O Redirection to Post Message Test</title> 14 </head> 15 16 <body> 17 <h1>Native Client I/O Redirection to Post Message Test</h1> 18 <div> 19 <embed id="naclModule" 20 name="naclModule" 21 width=400 height=400 22 src="pm_redir_test.nmf" 23 basic_tests="2" 24 stress_tests="0" 25 style="background-color:gray" 26 type="application/x-nacl" /> 27 </div> 28 29 <script type="text/javascript"> 30 //<![CDATA[ 31 function setupTests(tester, plugin) { 32 tester.addAsyncTest('Test_output', function(status) { 33 plugin.addEventListener('message', function(message_event) { 34 var prefix = 'DEBUG_POSTMESSAGE:'; 35 if (message_event.data.indexOf(prefix) == 0) { 36 var expected_output = 'BOGUS STRING'; 37 if (args.stream == 'stdout' && args.thread == 'fg') { 38 expected_output = 39 ('In the year 1878 I took my degree of Doctor of Medicine...\n'); 40 } else if (args.stream == 'stderr' && args.thread == 'fg') { 41 expected_output = 42 ('A merry little surge of electricity piped by automatic' 43 +' alarm...\n'); 44 } else if (args.stream == 'stdout' && args.thread == 'bg') { 45 expected_output = 46 ('Squire Trelawney, Dr. Livesey, and the rest of these' 47 +' gentlemen...\n'); 48 } else if (args.stream == 'stderr' && args.thread == 'bg') { 49 expected_output = 50 ('It is a truth universally acknowledged, that a single man' 51 +' in possession...\n'); 52 } 53 var msg_string = message_event.data.substring(prefix.length); 54 console.log('expected output ' + expected_output); 55 56 console.log(msg_string); 57 if (msg_string == expected_output) { 58 console.log('pass!'); 59 this.removeEventListener('message', arguments.callee, true); 60 status.pass(); 61 } else { 62 // comment this out if test framework args=['--debug'] is 63 // used, since that causes lots of SRPC and PPAPI_PROXY 64 // debug output to be generated on stdout/err, and the test 65 // has no debugging output 66 // 67 status.fail('unexpected output: ' + msg_string); 68 } 69 } 70 }, true); 71 message=('stream=' + args.stream + ',thread=' + args.thread + 72 ',delay_us=' + args.delay_us); 73 console.log(message); 74 plugin.postMessage(message); 75 }); 76 } 77 78 var tester = new Tester(); 79 var args = getTestArguments({ 80 'stream' : 'THIS TEST CANNOT RUN STANDALONE -- run using scons instead', 81 'thread' : 'THIS TEST CANNOT RUN STANDALONE -- run using scons instead', 82 }); 83 setupTests(tester, $('naclModule')); 84 tester.waitFor($('naclModule')); 85 tester.run(); 86 //]]> 87 </script> 88 </body> 89 </html> 90