<!--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-->
sqlite3 WASM Testing Page Index
sqlite3 WASM test pages
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 this page be run
using:
althttpd -enable-sab -page index.html
and the individual tests be started in their own tab.
Warnings and Caveats:
All of these pages must be served via an HTTP
server. Browsers do not support loading WASM files via
file:// URLs.
Any OPFS-related pages or tests require:
That the web server emit the so-called
COOP
and
COEP
headers. althttpd requires the
-enable-sab flag for that.
A very recent version of a
Chromium-based browser (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 (v111 as of 2023-02-10).
The tests and demos...
Core-most tests
tester1 : Core unit and
regression tests for the various APIs and surrounding
utility code.
tester1-worker : same thing
but running in a Worker.
tester1-esm : same as
tester1 but loads sqlite3 in the main thread via
an ES6 module.
tester1-worker?esm :
same as tester1-esm 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.
High-level apps and demos...
fiddle is an HTML front-end
to a wasm build of the sqlite3 shell.
demo-123 provides a
no-nonsense example of adding sqlite3 support to a web
page in the UI thread.
demo-123-worker is
the same as demo-123 but loads and runs
sqlite3 from a Worker thread.
demo-jsstorage : very basic
demo of using the key-value VFS for storing a persistent db
in JS localStorage or sessionStorage .
demo-worker1 :
Worker-based wrapper of the OO API #1. Its Promise-based
wrapper is significantly easier to use, however.
demo-worker1-promiser :
a demo of the Promise-based wrapper of the Worker1 API.
speedtest1 ports (sqlite3's primary benchmarking tool)...
speedtest1 : a main-thread WASM build of speedtest1.
speedtest1?vfs=kvvfs : speedtest1 with the kvvfs.
speedtest1-worker : an interactive Worker-thread variant of speedtest1.
speedtest1-worker?vfs=opfs : speedtest1-worker with the
OPFS VFS preselected and configured for a moderate workload.
The obligatory "misc." category...
module-symbols gives
a high-level overview of the symbols exposed by the JS
module.
batch-runner : runs batches of SQL exported from speedtest1.
test-opfs-vfs
( same
with verbose output and sanity-checking tests ) 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.
OPFS concurrency
tests using multiple workers.