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/testing.css"/> 8 <title>sqlite3 WASM Testing Page Index</title> 9 </head> 10 <body> 11 <header id='titlebar'><span>sqlite3 WASM test pages</span></header> 12 <hr> 13 <div>Below is the list of test pages for the sqlite3 WASM 14 builds. All of them require that this directory have been 15 "make"d first. The intent is that <em>this</em> page be run 16 using:</div> 17 <blockquote><pre>althttpd -page index.html</pre></blockquote> 18 <div>and the individual tests be started in their own tab.</div> 19 <div>Warnings and Caveats: 20 <ul class='warning'> 21 <li>Some of these pages require that 22 the web server emit the so-called COOP and COEP headers. The 23 default build of althttpd <em>does not</em>. 24 </li> 25 <li>Any OPFS-related pages require very recent 26 version of Chrome or Chromium (v102 at least, possibly 27 newer). OPFS support in the other major browsers is 28 pending.</li> 29 <li>Whether or not WASMFS/OPFS support is enabled on any given 30 page may depend on build-time options which are <em>off by 31 default</em> because they currently (as of 2022-09-08) break 32 with Worker-based pages. Similarly, WASMFS does not work on 33 some platforms, e.g. Raspberry Pi 4. 34 </li> 35 </ul> 36 </div> 37 <div>The tests... 38 <ul id='test-list'> 39 <li>High-level apps and demos... 40 <ul> 41 <li><a href='fiddle/fiddle.html'>fiddle</a> is an HTML front-end 42 to a wasm build of the sqlite3 shell.</li> 43 <li><a href='demo-123.html'>demo-123</a> provides a 44 no-nonsense example of adding sqlite3 support to a 45 web page. </li> 46 <li><a href='demo-123-worker.html'>demo-123-worker</a> is the 47 same as <code>demo-123</code> but loads and run sqlite3 from 48 a Worker thread.</li> 49 <li><a href='demo-kvvfs1.html'>demo-kvvfs1</a>: very basic 50 demo of using the key-value vfs for storing a persistent db 51 in JS localStorage or sessionStorage.</li> 52 </ul> 53 </li> 54 <li>speedtest1 ports (sqlite3's primary benchmarking tool)... 55 <ul> 56 <li><a href='speedtest1.html'>speedtest1</a>: a main-thread WASM build of speedtest1.</li> 57 <li><a href='speedtest1-wasmfs.html'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs feature.</li> 58 <li><a href='speedtest1.html?vfs=kvvfs'>speedtest1-kvvfs</a>: speedtest1 with the kvvfs.</li> 59 <li><a href='speedtest1-worker.html'>speedtest1-worker</a>: an interactive Worker-thread variant of speedtest1.</li> 60 <li><a href='speedtest1-worker.html?vfs=opfs&size=25'>speedtest1-worker-opfs</a>: speedtest1-worker with the 61 OPFS VFS preselected and configured for a moderate workload.</li> 62 </ul> 63 </li> 64 <li>The obligatory "misc." category... 65 <ul> 66 <li><a href='testing1.html'>testing1</a>: sanity tests of the core APIs and surrounding utility code.</li> 67 <li><a href='testing2.html'>testing2</a>: Worker-based test of OO API #1.</li> 68 <li><a href='testing-worker1-promiser.html'>testing-worker1-promiser</a>: 69 tests for the Promise-based wrapper of the Worker-based API.</li> 70 <li><a href='batch-runner.html'>batch-runner</a>: runs batches of SQL exported from speedtest1.</li> 71 <li><a href='scratchpad-wasmfs-main.html'>scratchpad-wasmfs-main</a>: 72 experimenting with WASMFS/OPFS-based persistence. Maintenance 73 reminder: we cannot currently (2022-09-15) load WASMFS in a 74 worker due to an Emscripten limitation.</li> 75 <li><a href='test-opfs-vfs.html'>test-opfs-vfs</a> 76 (<a href='test-opfs-vfs.html?opfs-sanity-check&opfs-verbose'>same 77 with verbose output and sanity-checking tests</a>) is an 78 experiment in implementing a syncronous sqlite3 VFS proxy 79 for a fully asynchronous backend interface (namely OPFS), 80 using SharedArrayBuffer and the Atomics APIs to regulate 81 communication between the synchronous interface and the 82 async impl. 83 </li> 84 </ul> 85 </li> 86 <!--li><a href='x.html'></a></li--> 87 </ul> 88 </div> 89 <style> 90 #test-list { font-size: 120%; } 91 </style> 92 <script>//Assign a distinct target tab name for each test page... 93 document.querySelectorAll('a').forEach(function(e){ 94 e.target = e.href; 95 }); 96 </script> 97 </body> 98</html> 99