<!doctype html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon"> <link rel="stylesheet" href="common/testing.css"/> <title>sqlite3 WASM Testing Page Index</title> </head> <body> <style> header { background: #044a64; color: white; padding: 0.5em; border-radius: 0.25em; } </style> <header id='titlebar'><span>sqlite3 WASM test pages</span></header> <hr> <div>Below is the list of test pages for the sqlite3 WASM builds. All of them require that this directory have been "make"d first. The intent is that <em>this</em> page be run using:</div> <blockquote><pre>althttpd -enable-sab -page index.html</pre></blockquote> <div>and the individual tests be started in their own tab. Warnings and Caveats: <ul class='warning'> <li>Some of these pages require that the web server emit the so-called <a href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy'>COOP</a> and <a href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Embedder-Policy'>COEP</a> headers. <a href='https://sqlite.org/althttpd'>althttpd</a> requires the <code>-enable-sab</code> flag for that. </li> <li>Any OPFS-related pages require very recent version of Chrome or Chromium (v102 at least, possibly newer). OPFS support in the other major browsers is pending. Development and testing is currently done against a dev-channel release of Chrome (v110 as of 2022-12-02). </li> </ul> </div> <div>The tests and demos... <ul id='test-list'> <li>Core-most tests <ul> <li><a href='tester1.html'>tester1</a>: Core unit and regression tests for the various APIs and surrounding utility code.</li> <li><a href='tester1-worker.html'>tester1-worker</a>: same thing but running in a Worker.</li> <li><a href='tester1-esm.html'>tester1-esm</a>: same as <code>tester1</code> but loads sqlite3 in the main thread via an ES6 module. </li> <li><a href='tester1-worker.html?esm'>tester1-worker?esm</a>: same as <code>tester1-esm</code> but loads a Worker Module which then loads the sqlite3 API via an ES6 module. Note that not all browsers permit loading modules in Worker threads. </li> </ul> </li> <li>High-level apps and demos... <ul> <li><a href='fiddle/index.html'>fiddle</a> is an HTML front-end to a wasm build of the sqlite3 shell.</li> <li><a href='demo-123.html'>demo-123</a> provides a no-nonsense example of adding sqlite3 support to a web page in the UI thread.</li> <li><a href='demo-123-worker.html'>demo-123-worker</a> is the same as <code>demo-123</code> but loads and runs sqlite3 from a Worker thread.</li> <li><a href='demo-jsstorage.html'>demo-jsstorage</a>: very basic demo of using the key-value VFS for storing a persistent db in JS <code>localStorage</code> or <code>sessionStorage</code>.</li> <li><a href='demo-worker1.html'>demo-worker1</a>: Worker-based wrapper of the OO API #1. Its Promise-based wrapper is significantly easier to use, however.</li> <li><a href='demo-worker1-promiser.html'>demo-worker1-promiser</a>: a demo of the Promise-based wrapper of the Worker1 API.</li> </ul> </li> <li>speedtest1 ports (sqlite3's primary benchmarking tool)... <ul> <li><a href='speedtest1.html'>speedtest1</a>: a main-thread WASM build of speedtest1.</li> <li><a href='speedtest1.html?vfs=kvvfs'>speedtest1?vfs=kvvfs</a>: speedtest1 with the kvvfs.</li> <li><a href='speedtest1-worker.html?size=25'>speedtest1-worker</a>: an interactive Worker-thread variant of speedtest1.</li> <li><a href='speedtest1-worker.html?vfs=opfs&size=25'>speedtest1-worker?vfs=opfs</a>: speedtest1-worker with the OPFS VFS preselected and configured for a moderate workload.</li> </ul> </li> <li>The obligatory "misc." category... <ul> <li><a href='module-symbols.html'>module-symbols</a> gives a high-level overview of the symbols exposed by the JS module.</li> <li><a href='batch-runner.html'>batch-runner</a>: runs batches of SQL exported from speedtest1.</li> <li><a href='test-opfs-vfs.html'>test-opfs-vfs</a> (<a href='test-opfs-vfs.html?opfs-sanity-check&opfs-verbose'>same with verbose output and sanity-checking tests</a>) is an sqlite3_vfs OPFS proxy using SharedArrayBuffer and the Atomics APIs to regulate communication between the synchronous sqlite3_vfs interface and the async OPFS impl. </li> <li><a href='tests/opfs/concurrency/index.html'>OPFS concurrency</a> tests using multiple workers. </li> </ul> </li> <!--li>WASMFS-specific tests which currently do not work due to incompatible changes made to the WASMFS+OPFS combination. <ul> <li><a href='speedtest1-wasmfs.html?flags=--size,25'>speedtest1-wasmfs</a>: a variant of speedtest1 built solely for the wasmfs/opfs feature.</li> <li><a href='scratchpad-wasmfs-main.html'>scratchpad-wasmfs-main</a>: experimenting with WASMFS/OPFS-based persistence. Maintenance reminder: we cannot currently (2022-09-15) load WASMFS in a worker due to an Emscripten wasm loader limitation.</li> </ul> </li--> <!--li><a href='x.html'></a></li--> </ul> </div> <style> #test-list { font-size: 120%; } </style> <script>//Assign a distinct target tab name for each test page... document.querySelectorAll('a').forEach(function(e){ e.target = e.href; }); </script> </body> </html>