1402da26cSstephan<!doctype html> 2402da26cSstephan<html lang="en-us"> 3402da26cSstephan <head> 4402da26cSstephan <meta charset="utf-8"> 5402da26cSstephan <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 6402da26cSstephan <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> 7402da26cSstephan <link rel="stylesheet" href="../common/emscripten.css"/> 8402da26cSstephan <link rel="stylesheet" href="../common/testing.css"/> 9402da26cSstephan <title>sqlite3 tester #1 (Worker thread)</title> 10402da26cSstephan <style> 11402da26cSstephan body { 12402da26cSstephan font-family: monospace; 13402da26cSstephan } 14402da26cSstephan </style> 15402da26cSstephan </head> 16402da26cSstephan <body> 17*49048b14Sstephan <h1 id='color-target'>sqlite3 WASM/JS tester #1 (Worker thread)</h1> 1898147dd5Sstephan <div>See <a href='tester1.html' target='tester1.html'>tester1.html</a> 1998147dd5Sstephan for the UI-thread variant.</div> 2098147dd5Sstephan <div class='input-wrapper'> 21d3c8f2acSstephan <input type='checkbox' id='cb-log-reverse'> 2298147dd5Sstephan <label for='cb-log-reverse'>Reverse log order?</label> 2398147dd5Sstephan </div> 24d85d0839Sstephan <div id='test-output'></div> 25402da26cSstephan <script>(function(){ 26d85d0839Sstephan const logTarget = document.querySelector('#test-output'); 27402da26cSstephan const logHtml = function(cssClass,...args){ 28402da26cSstephan const ln = document.createElement('div'); 29848d27adSstephan if(cssClass){ 30848d27adSstephan for(const c of (Array.isArray(cssClass) ? cssClass : [cssClass])){ 31848d27adSstephan ln.classList.add(c); 32848d27adSstephan } 33848d27adSstephan } 34402da26cSstephan ln.append(document.createTextNode(args.join(' '))); 35d85d0839Sstephan logTarget.append(ln); 36402da26cSstephan }; 3798147dd5Sstephan const cbReverse = document.querySelector('#cb-log-reverse'); 3898147dd5Sstephan const cbReverseIt = ()=>{ 3998147dd5Sstephan logTarget.classList[cbReverse.checked ? 'add' : 'remove']('reverse'); 4098147dd5Sstephan }; 4198147dd5Sstephan cbReverse.addEventListener('change',cbReverseIt,true); 4298147dd5Sstephan cbReverseIt(); 43cd0df83cSstephan const w = new Worker("tester1.js?sqlite3.dir=jswasm"); 44402da26cSstephan w.onmessage = function({data}){ 45402da26cSstephan switch(data.type){ 46402da26cSstephan case 'log': 47402da26cSstephan logHtml(data.payload.cssClass, ...data.payload.args); 48402da26cSstephan break; 49*49048b14Sstephan case 'error': 50*49048b14Sstephan logHtml('error', ...data.payload.args); 51*49048b14Sstephan break; 52*49048b14Sstephan case 'test-result': 53*49048b14Sstephan document.querySelector('#color-target').classList.add( 54*49048b14Sstephan data.payload.pass ? 'tests-pass' : 'tests-fail' 55*49048b14Sstephan ); 56*49048b14Sstephan break; 57402da26cSstephan default: 58402da26cSstephan logHtml('error',"Unhandled message:",data.type); 59402da26cSstephan }; 60402da26cSstephan }; 61402da26cSstephan })();</script> 62402da26cSstephan </body> 63402da26cSstephan</html> 64