veilid/veilid-core/src/tests/ios/mod.rs
Christien Rioux d34801ad42 Log split
2025-02-18 23:42:04 +00:00

46 lines
1.5 KiB
Rust

use super::native::*;
use crate::*;
use backtrace::Backtrace;
use std::panic;
use tracing_oslog::OsLogger;
use tracing_subscriber::prelude::*;
#[no_mangle]
#[allow(dead_code)]
pub extern "C" fn run_veilid_core_tests() {
block_on(async {
veilid_core_setup_ios_tests();
run_all_tests().await;
});
}
pub fn veilid_core_setup_ios_tests() {
// Set up subscriber and layers
let filter = VeilidLayerFilter::new(VeilidConfigLogLevel::Info, &[], None);
tracing_subscriber::registry()
.with(OsLogger::new("com.veilid.veilidcore-tests", "").with_filter(filter))
.init();
panic::set_hook(Box::new(|panic_info| {
let bt = Backtrace::new();
if let Some(location) = panic_info.location() {
error!(
"panic occurred in file '{}' at line {}",
location.file(),
location.line(),
);
} else {
error!("panic occurred but can't get location information...");
}
if let Some(s) = panic_info.payload().downcast_ref::<&str>() {
error!("panic payload: {:?}", s);
} else if let Some(s) = panic_info.payload().downcast_ref::<String>() {
error!("panic payload: {:?}", s);
} else if let Some(a) = panic_info.payload().downcast_ref::<std::fmt::Arguments>() {
error!("panic payload: {:?}", a);
} else {
error!("no panic payload");
}
error!("Backtrace:\n{:?}", bt);
}));
}