Skip to content

Commit

Permalink
test(ffi): ensure that errors raised in core-crypto produce logs [WPB…
Browse files Browse the repository at this point in the history
…-14355]
  • Loading branch information
coriolinus committed Jan 17, 2025
1 parent 977d7ec commit 8664fec
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 4 deletions.
11 changes: 11 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 20 additions & 4 deletions crypto-ffi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,12 @@ required-features = ["uniffi/cli"]

[features]
default = ["proteus"]
proteus = ["core-crypto/proteus", "core-crypto/cryptobox-migrate", "dep:proteus-wasm", "dep:core-crypto-keystore"]
proteus = [
"core-crypto/proteus",
"core-crypto/cryptobox-migrate",
"dep:proteus-wasm",
"dep:core-crypto-keystore",
]

[dependencies]
thiserror.workspace = true
Expand All @@ -32,7 +37,7 @@ log-reload.workspace = true
serde_json.workspace = true
derive_more.workspace = true
proteus-wasm = { workspace = true, optional = true }
core-crypto-keystore = { workspace = true, optional = true}
core-crypto-keystore = { workspace = true, optional = true }

# see https://github.com/RustCrypto/hashes/issues/404
[target.'cfg(not(any(target_arch = "aarch64", target_arch = "x86_64", target_arch = "x86")))'.dependencies]
Expand Down Expand Up @@ -69,7 +74,18 @@ wasm-bindgen-test = "0.3"
wasm-opt = false

[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-Os", "--enable-mutable-globals", "--enable-threads", "--detect-features"]
wasm-opt = [
"-Os",
"--enable-mutable-globals",
"--enable-threads",
"--detect-features",
]

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(wasm_bindgen_unstable_test_coverage)'] }
unexpected_cfgs = { level = "warn", check-cfg = [
'cfg(wasm_bindgen_unstable_test_coverage)',
] }

[dev-dependencies]
testing_logger = "0.1.1"
tokio = { version = "1.43.0", default-features = false, features = ["macros", "rt"] }
20 changes: 20 additions & 0 deletions crypto-ffi/src/generic/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2376,4 +2376,24 @@ mod tests {
CoreCryptoError::Mls(MlsError::ConversationAlreadyExists(_))
));
}

#[tokio::test]
async fn test_error_is_logged() {
testing_logger::setup();
// we shouldn't be able to create a SQLite DB in `/root` unless we are running this test as root
// Don't do that!
let result = CoreCrypto::new("/root/asdf".into(), "key".into(), None, None, None).await;
assert!(
result.is_err(),
"result must be an error in order to verify that something was logged"
);
testing_logger::validate(|captured_logs| {
assert!(
captured_logs.iter().any(|log| log.level == Level::Warn
&& log.target == "core-crypto"
&& log.body.contains("returning this error across ffi")),
"log message did not appear within the captured logs"
)
});
}
}

0 comments on commit 8664fec

Please sign in to comment.