[ci skip] fix wasm unit tests

This commit is contained in:
Christien Rioux 2025-03-11 21:39:56 -04:00
parent 6018d385e8
commit 3a8150c062
7 changed files with 55 additions and 21 deletions

15
Cargo.lock generated
View File

@ -6090,17 +6090,6 @@ dependencies = [
"tracing-log 0.2.0", "tracing-log 0.2.0",
] ]
[[package]]
name = "tracing-wasm"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
dependencies = [
"tracing",
"tracing-subscriber",
"wasm-bindgen",
]
[[package]] [[package]]
name = "triomphe" name = "triomphe"
version = "0.1.14" version = "0.1.14"
@ -6483,12 +6472,12 @@ dependencies = [
"tracing-error", "tracing-error",
"tracing-oslog", "tracing-oslog",
"tracing-subscriber", "tracing-subscriber",
"tracing-wasm",
"tsify", "tsify",
"veilid-bugsalot", "veilid-bugsalot",
"veilid-hashlink", "veilid-hashlink",
"veilid-igd", "veilid-igd",
"veilid-tools", "veilid-tools",
"veilid-tracing-wasm",
"wasm-bindgen", "wasm-bindgen",
"wasm-bindgen-futures", "wasm-bindgen-futures",
"wasm-bindgen-test", "wasm-bindgen-test",
@ -6680,9 +6669,9 @@ dependencies = [
"tracing", "tracing",
"tracing-oslog", "tracing-oslog",
"tracing-subscriber", "tracing-subscriber",
"tracing-wasm",
"validator", "validator",
"veilid-bugsalot", "veilid-bugsalot",
"veilid-tracing-wasm",
"wasm-bindgen", "wasm-bindgen",
"wasm-bindgen-futures", "wasm-bindgen-futures",
"wasm-bindgen-test", "wasm-bindgen-test",

View File

@ -216,7 +216,6 @@ ws_stream_wasm = "0.7.4"
# Logging # Logging
wasm-logger = "0.2.0" wasm-logger = "0.2.0"
tracing-wasm = "0.2.1"
# Data Structures # Data Structures
keyvaluedb-web = "0.1.2" keyvaluedb-web = "0.1.2"
@ -272,6 +271,7 @@ serial_test = { version = "2.0.0", default-features = false, features = [
wasm-bindgen-test = "0.3.50" wasm-bindgen-test = "0.3.50"
console_error_panic_hook = "0.1.7" console_error_panic_hook = "0.1.7"
wasm-logger = "0.2.0" wasm-logger = "0.2.0"
veilid-tracing-wasm = "^0"
### BUILD OPTIONS ### BUILD OPTIONS

View File

@ -68,9 +68,9 @@ impl InspectCache {
}; };
if idx < entry.1.seqs.len() { if idx < entry.1.seqs.len() {
entry.1.seqs[idx] = seq; entry.1.seqs[idx] = seq;
} else if idx > entry.1.seqs.len() { } else {
panic!( panic!(
"representational error in l2 inspect cache: {} > {}", "representational error in l2 inspect cache: {} >= {}",
idx, idx,
entry.1.seqs.len() entry.1.seqs.len()
) )

View File

@ -1,5 +1,6 @@
use crate::tests::test_veilid_config::*; use crate::tests::test_veilid_config::*;
use crate::*; use crate::*;
use futures_util::StreamExt as _;
async fn startup() -> VeilidAPI { async fn startup() -> VeilidAPI {
trace!("test_table_store: starting"); trace!("test_table_store: starting");
@ -266,11 +267,55 @@ pub async fn test_protect_unprotect(vcrypto: &AsyncCryptoSystemGuard<'_>, ts: &T
} }
} }
pub async fn test_store_load_json_many(ts: &TableStore) {
trace!("test_json");
let _ = ts.delete("test").await;
let db = ts.open("test", 3).await.expect("should have opened");
let rows = 16;
let valuesize = 32768;
let parallel = 10;
let value = vec!["ABCD".to_string(); valuesize];
let mut unord = FuturesUnordered::new();
let mut r = 0;
let start_ts = Timestamp::now();
loop {
while r < rows && unord.len() < parallel {
let key = format!("key_{}", r);
r += 1;
unord.push(Box::pin(async {
let key = key;
db.store_json(0, key.as_bytes(), &value)
.await
.expect("should store");
let value2 = db
.load_json::<Vec<String>>(0, key.as_bytes())
.await
.expect("should load")
.expect("should exist");
assert_eq!(value, value2);
}));
}
if unord.next().await.is_none() {
break;
}
}
let end_ts = Timestamp::now();
trace!("test_store_load_json_many duration={}", (end_ts - start_ts));
}
pub async fn test_all() { pub async fn test_all() {
let api = startup().await; let api = startup().await;
let crypto = api.crypto().unwrap(); let crypto = api.crypto().unwrap();
let ts = api.table_store().unwrap(); let ts = api.table_store().unwrap();
test_store_load_json_many(&ts).await;
for ck in VALID_CRYPTO_KINDS { for ck in VALID_CRYPTO_KINDS {
let vcrypto = crypto.get_async(ck).unwrap(); let vcrypto = crypto.get_async(ck).unwrap();
test_protect_unprotect(&vcrypto, &ts).await; test_protect_unprotect(&vcrypto, &ts).await;

View File

@ -18,8 +18,8 @@ pub fn setup() -> () {
let config = veilid_tracing_wasm::WASMLayerConfig::new() let config = veilid_tracing_wasm::WASMLayerConfig::new()
.with_report_logs_in_timings(false) .with_report_logs_in_timings(false)
.with_max_level(Level::TRACE) .with_max_level(Level::TRACE)
.with_console_config(tracing_wasm::ConsoleConfig::ReportWithoutConsoleColor); .with_console_config(veilid_tracing_wasm::ConsoleConfig::ReportWithoutConsoleColor);
tracing_wasm::set_as_global_default_with_config(config); veilid_tracing_wasm::set_as_global_default_with_config(config);
}); });
} }

View File

@ -185,7 +185,7 @@ serial_test = { version = "2.0.0", default-features = false, features = [
console_error_panic_hook = "0.1.7" console_error_panic_hook = "0.1.7"
wasm-bindgen-test = "0.3.50" wasm-bindgen-test = "0.3.50"
wasm-logger = "0.2.0" wasm-logger = "0.2.0"
tracing-wasm = { version = "0.2.1" } veilid-tracing-wasm = "^0"
### BUILD OPTIONS ### BUILD OPTIONS

View File

@ -18,8 +18,8 @@ pub fn setup() -> () {
let config = veilid_tracing_wasm::WASMLayerConfig::new() let config = veilid_tracing_wasm::WASMLayerConfig::new()
.with_report_logs_in_timings(false); .with_report_logs_in_timings(false);
.with_max_level(Level::TRACE); .with_max_level(Level::TRACE);
.with_console_config(tracing_wasm::ConsoleConfig::ReportWithoutConsoleColor); .with_console_config(veilid_tracing_wasm::ConsoleConfig::ReportWithoutConsoleColor);
tracing_wasm::set_as_global_default_with_config(config); veilid_tracing_wasm::set_as_global_default_with_config(config);
} else { } else {
wasm_logger::init(wasm_logger::Config::default()); wasm_logger::init(wasm_logger::Config::default());
} }