1<!doctype html> 2<html lang="en-us"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6 <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> 7 <link rel="stylesheet" href="../common/emscripten.css"/> 8 <link rel="stylesheet" href="../common/testing.css"/> 9 <title>sqlite3 tester #1 (Worker thread)</title> 10 <style> 11 body { 12 font-family: monospace; 13 } 14 </style> 15 </head> 16 <body> 17 <h1 id='color-target'>sqlite3 WASM/JS tester #1 (Worker thread)</h1> 18 <div>See <a href='tester1.html' target='tester1.html'>tester1.html</a> 19 for the UI-thread variant.</div> 20 <div class='input-wrapper'> 21 <input type='checkbox' id='cb-log-reverse'> 22 <label for='cb-log-reverse'>Reverse log order?</label> 23 </div> 24 <div id='test-output'></div> 25 <script>(function(){ 26 const logTarget = document.querySelector('#test-output'); 27 const logHtml = function(cssClass,...args){ 28 const ln = document.createElement('div'); 29 if(cssClass){ 30 for(const c of (Array.isArray(cssClass) ? cssClass : [cssClass])){ 31 ln.classList.add(c); 32 } 33 } 34 ln.append(document.createTextNode(args.join(' '))); 35 logTarget.append(ln); 36 }; 37 const cbReverse = document.querySelector('#cb-log-reverse'); 38 const cbReverseIt = ()=>{ 39 logTarget.classList[cbReverse.checked ? 'add' : 'remove']('reverse'); 40 }; 41 cbReverse.addEventListener('change',cbReverseIt,true); 42 cbReverseIt(); 43 const w = new Worker("tester1.js?sqlite3.dir=jswasm"); 44 w.onmessage = function({data}){ 45 switch(data.type){ 46 case 'log': 47 logHtml(data.payload.cssClass, ...data.payload.args); 48 break; 49 case 'error': 50 logHtml('error', ...data.payload.args); 51 break; 52 case 'test-result': 53 document.querySelector('#color-target').classList.add( 54 data.payload.pass ? 'tests-pass' : 'tests-fail' 55 ); 56 break; 57 default: 58 logHtml('error',"Unhandled message:",data.type); 59 }; 60 }; 61 })();</script> 62 </body> 63</html> 64