]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Get testing1.js working with a kvvfs build.
authorstephan <stephan@noemail.net>
Mon, 12 Sep 2022 22:27:00 +0000 (22:27 +0000)
committerstephan <stephan@noemail.net>
Mon, 12 Sep 2022 22:27:00 +0000 (22:27 +0000)
FossilOrigin-Name: 333a45725d1708e0fefa559c33ce1c7eeb425cdb04f594b1f2b48166c1478c79

ext/wasm/GNUmakefile
ext/wasm/kvvfs.make
ext/wasm/testing1.html
ext/wasm/testing1.js
manifest
manifest.uuid

index 0cf365b912a0022978ee8ea5c90b0016286b7eef..ff37281ea4075af555cf136e0a8e0627f1977b48 100644 (file)
@@ -316,10 +316,11 @@ dir.sql := sql
 speedtest1 := ../../speedtest1
 speedtest1.c := ../../test/speedtest1.c
 speedtest1.sql := $(dir.sql)/speedtest1.sql
+speedtest1.cliflags := --size 100
 $(speedtest1):
        $(MAKE) -C ../.. speedtest1
-$(speedtest1.sql): $(speedtest1)
-       $(speedtest1) --script $@
+$(speedtest1.sql): $(speedtest1) $(MAKEFILE)
+       $(speedtest1) $(speedtest1.cliflags) --script $@
 batch-runner.list: $(MAKEFILE) $(speedtest1.sql) $(dir.sql)/000-mandelbrot.sql
        bash split-speedtest1-script.sh $(dir.sql)/speedtest1.sql
        ls -1 $(dir.sql)/*.sql | grep -v speedtest1.sql | sort > $@
index cfe0af652ca60c08f5149e24373fecac17413921..ad743dfda62d18e630943033c4a514dca1f996d5 100644 (file)
@@ -34,6 +34,12 @@ kvvfs.cflags += -std=c99 -fPIC -g
 kvvfs.cflags += -I. -I$(dir.top)
 kvvfs.cflags += -DSQLITE_OS_KV=1 $(SQLITE_OPT)
 
+kvvfs.extra.c :=
+ifeq (1,1)
+  # To get testing1.js to run with $(kvvfs.js) we need...
+  kvvfs.extra.c += $(jaccwabyt_test.c)
+endif
+
 ########################################################################
 # emcc flags specific to building the final .js/.wasm file...
 kvvfs.jsflags := -fPIC
@@ -44,7 +50,12 @@ kvvfs.jsflags += -sMODULARIZE
 kvvfs.jsflags += -sSTRICT_JS
 kvvfs.jsflags += -sDYNAMIC_EXECUTION=0
 kvvfs.jsflags += -sNO_POLYFILL
-kvvfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
+ifeq (,$(kvvfs.extra.c))
+  kvvfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.api)/EXPORTED_FUNCTIONS.sqlite3-api
+else
+  # need more exports for jaccwabyt test code...
+  kvvfs.jsflags += -sEXPORTED_FUNCTIONS=@$(dir.wasm)/EXPORTED_FUNCTIONS.api
+endif
 kvvfs.jsflags += -sEXPORTED_RUNTIME_METHODS=FS,wasmMemory,allocateUTF8OnStack
                                             # wasmMemory ==> for -sIMPORTED_MEMORY
                                             # allocateUTF8OnStack ==> kvvfs internals
@@ -69,13 +80,12 @@ kvvfs.jsflags += -sMEMORY64=0
 ifneq (0,$(enable_bigint))
 kvvfs.jsflags += -sWASM_BIGINT
 endif
-
-$(kvvfs.js): $(MAKEFILE) $(MAKEFILE.kvvfs) $(kvvfs.wasm.c) $(sqlite3.c) \
-    EXPORTED_FUNCTIONS.api \
+$(kvvfs.js): $(kvvfs.wasm.c) $(sqlite3.c) $(kvvfs.extra.c) \
+    EXPORTED_FUNCTIONS.api $(MAKEFILE) $(MAKEFILE.kvvfs) \
     $(post-js.js)
        $(emcc.bin) -o $@ $(emcc_opt) $(emcc.flags) \
   $(SQLITE_OPT) \
-  $(kvvfs.cflags) $(kvvfs.jsflags) $(kvvfs.wasm.c)
+  $(kvvfs.cflags) $(kvvfs.jsflags) $(kvvfs.wasm.c) $(kvvfs.extra.c)
        chmod -x $(kvvfs.wasm)
 ifneq (,$(wasm-strip))
        $(wasm-strip) $(kvvfs.wasm)
index 24c1e8236056b16e325e925cec31939c859f7367..bf73974ee77fb1cb1a98b92b1517a10dfee47414 100644 (file)
@@ -27,6 +27,8 @@
     <div>Most stuff on this page happens in the dev console.</div>
     <hr>
     <div id='test-output'></div>
+    <!-- testing1.js "should" work with both sqlite3.js and sqlite3-kvvfs.js -->
+    <!--script src="sqlite3-kvvfs.js"></script-->
     <script src="sqlite3.js"></script>
     <script src="common/SqliteTestUtil.js"></script>
     <script src="testing1.js"></script>
index 41442195273b751c53206e2cae86a0c637064343..2aadc30c3a7bb6a2c7e33a63ec43117e3be2eaff 100644 (file)
     db.exec({
       sql:new TextEncoder('utf-8').encode([
         // ^^^ testing string-vs-typedarray handling in execMulti()
-        "attach 'foo.db' as foo;",
+        "attach 'session' as foo;" /* name 'session' is magic for kvvfs! */,
         "create table foo.bar(a);",
         "insert into foo.bar(a) values(1),(2),(3);",
         "select a from foo.bar order by a;"
         .assert('sqlite3_vfs' === dVfs.structName)
         .assert(!!dVfs.structInfo)
         .assert(SB.StructType.hasExternalPointer(dVfs))
-        .assert(3===dVfs.$iVersion)
+        .assert(dVfs.$iVersion>0)
         .assert('number'===typeof dVfs.$zName)
         .assert('number'===typeof dVfs.$xSleep)
         .assert(capi.wasm.functionEntry(dVfs.$xOpen))
       T.assert(capi.wasm[k] instanceof Function);
     });
 
-    const db = new oo.DB(':memory:'), startTime = performance.now();
+    let dbName = "/testing1.sqlite3";
+    let vfsName = undefined;
+    if(oo.DB.clearKvvfsStorage){
+      dbName = "local";
+      vfsName = 'kvvfs';
+      logHtml("Found kvvfs. Clearing db(s) from sessionStorage and localStorage",
+              "and selecting kvvfs-friendly db name:",dbName);
+      oo.DB.clearKvvfsStorage();
+    }
+    const db = new oo.DB(dbName,'c',vfsName), startTime = performance.now();
     try {
-      log("DB filename:",db.filename,db.fileName());
+      log("db.filename =",db.filename,"db.fileName() =",db.fileName());
       const banner1 = '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>',
             banner2 = '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<';
       [
index 75b3e09950674fc4a06b75f9787ef657b5936da1..b104be806b01e3a6f5e006e330db6504737a69a2 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Merge\skv-vfs\sbranch\sinto\sfiddle-opfs\sand\sadd\sspeedtest1-kvvfs.html\stest\sapp\s(which\scurrently\sfails\searly\son).
-D 2022-09-12T20:18:28.723
+C Get\stesting1.js\sworking\swith\sa\skvvfs\sbuild.
+D 2022-09-12T22:27:00.037
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -474,7 +474,7 @@ F ext/userauth/user-auth.txt e6641021a9210364665fe625d067617d03f27b04
 F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb
 F ext/wasm/EXPORTED_FUNCTIONS.fiddle db7a4602f043cf4a5e4135be3609a487f9f1c83f05778bfbdf93766be4541b96
 F ext/wasm/EXPORTED_RUNTIME_METHODS.fiddle a004bd5eeeda6d3b28d16779b7f1a80305bfe009dfc7f0721b042967f0d39d02
-F ext/wasm/GNUmakefile 0434268aa7e042ec265c13e85a82cc3a760be02851ba428aa996a36d4ba77dfd
+F ext/wasm/GNUmakefile b175a00599c976fe9e7bc02bbc1337b5e3b81d042320c3a0be1621d2c7a21b21
 F ext/wasm/README.md e1ee1e7c321c6a250bf78a84ca6f5882890a237a450ba5a0649c7a8399194c52
 F ext/wasm/api/EXPORTED_FUNCTIONS.sqlite3-api 1dfd067b3cbd9a49cb204097367cf2f8fe71b5a3b245d9d82a24779fd4ac2394
 F ext/wasm/api/EXPORTED_RUNTIME_METHODS.sqlite3-api 1ec3c73e7d66e95529c3c64ac3de2470b0e9e7fbf7a5b41261c367cf4f1b7287
@@ -506,7 +506,7 @@ F ext/wasm/jaccwabyt/jaccwabyt.js 0d7f32817456a0f3937fcfd934afeb32154ca33580ab26
 F ext/wasm/jaccwabyt/jaccwabyt.md 447cc02b598f7792edaa8ae6853a7847b8178a18ed356afacbdbf312b2588106
 F ext/wasm/jaccwabyt/jaccwabyt_test.c 39e4b865a33548f943e2eb9dd0dc8d619a80de05d5300668e9960fff30d0d36f
 F ext/wasm/jaccwabyt/jaccwabyt_test.exports 5ff001ef975c426ffe88d7d8a6e96ec725e568d2c2307c416902059339c06f19
-F ext/wasm/kvvfs.make 1858354b02ebdccc459fb2d235552f8951d6ce28340083da9bb230bcf2533789
+F ext/wasm/kvvfs.make bfa0aaac384d9f200d2c8e31efb3536b40d139667b88e6eba9c0a71e23da6a5c
 F ext/wasm/kvvfs1.html 83bac238d1e93ed102a461672fc58fe74e611e426708e9a5c66002c01eadb942
 F ext/wasm/kvvfs1.js 53721a42e0ec45f6978cc723e5de47f882517867d0fcff4c6ff05f4c422e27c4
 F ext/wasm/scratchpad-opfs-main.html 4565cf194e66188190d35f70e82553e2e2d72b9809b73c94ab67b8cfd14d2e0c
@@ -525,8 +525,8 @@ F ext/wasm/sqlite3-worker1-promiser.js 92b8da5f38439ffec459a8215775d30fa498bc0f1
 F ext/wasm/sqlite3-worker1.js 0c1e7626304543969c3846573e080c082bf43bcaa47e87d416458af84f340a9e
 F ext/wasm/testing-worker1-promiser.html 6eaec6e04a56cf24cf4fa8ef49d78ce8905dde1354235c9125dca6885f7ce893
 F ext/wasm/testing-worker1-promiser.js c62b5879339eef0b21aebd9d75bc125c86530edc17470afff18077f931cb704a
-F ext/wasm/testing1.html 528001c7e32ee567abc195aa071fd9820cc3c8ffc9c8a39a75e680db05f0c409
-F ext/wasm/testing1.js 2def7a86c52ff28b145cb86188d5c7a49d5993f9b78c50d140e1c31551220955
+F ext/wasm/testing1.html 50575755e43232dbe4c2f97c9086b3118eb91ec2ee1fae931e6d7669fb17fcae
+F ext/wasm/testing1.js 735120231d6e55b92964924fcb54a66484d8b2e30fe5a18c71081b3590344a5f
 F ext/wasm/testing2.html a66951c38137ff1d687df79466351f3c734fa9c6d9cce71d3cf97c291b2167e3
 F ext/wasm/testing2.js 25584bcc30f19673ce13a6f301f89f8820a59dfe044e0c4f2913941f4097fe3c
 F install-sh 9d4de14ab9fb0facae2f48780b874848cbf2f895 x
@@ -2024,8 +2024,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P d845c6c22bd5d3fffc66e0566df346d690dd8bd1fc1688e312161b1a1edcfd79 878cc93e779c3857adc711f212520f007256274fcd3f6f3d72c754a937fcd198
-R af6be1e15f44117c1188e0c623230580
+P 8b1608a9a37131121cb3a0cb1e8dbad5e39dc1fc2a341d056f09537f179b2e7a
+R 77095a41dfb9b784dcab0078822e6eff
 U stephan
-Z 1b00f3836ac4e8ae817bece731c1dd12
+Z c624cb9efadffe8972e3df15b8dc9939
 # Remove this line to create a well-formed Fossil manifest.
index e78c4a139f562923f232318513cc12c4a70da791..69b3e88fd2de86222e962b4e3c13ef729495fcc6 100644 (file)
@@ -1 +1 @@
-8b1608a9a37131121cb3a0cb1e8dbad5e39dc1fc2a341d056f09537f179b2e7a
\ No newline at end of file
+333a45725d1708e0fefa559c33ce1c7eeb425cdb04f594b1f2b48166c1478c79
\ No newline at end of file