more test work

This commit is contained in:
John Smith
2022-11-30 21:32:41 -05:00
parent edc87cd78e
commit 89dd5da522
65 changed files with 175 additions and 283 deletions

View File

@@ -1,35 +1,25 @@
use super::native::*;
use super::*;
//use jni::errors::Result as JniResult;
use jni::{objects::GlobalRef, objects::JObject, JNIEnv, JavaVM};
use lazy_static::*;
use std::backtrace::Backtrace;
use std::panic;
pub struct AndroidGlobals {
pub vm: JavaVM,
pub ctx: GlobalRef,
use jni::{objects::JClass, objects::JObject, JNIEnv};
#[no_mangle]
#[allow(non_snake_case)]
pub extern "system" fn Java_com_veilid_veilid_1tools_1android_1tests_MainActivity_run_1tests(
_env: JNIEnv,
_class: JClass,
_ctx: JObject,
) {
crate::tests::android::veilid_tools_setup_android_tests();
run_all_tests();
}
impl Drop for AndroidGlobals {
fn drop(&mut self) {
// Ensure we're attached before dropping GlobalRef
self.vm.attach_current_thread_as_daemon().unwrap();
}
}
lazy_static! {
pub static ref ANDROID_GLOBALS: Arc<Mutex<Option<AndroidGlobals>>> = Arc::new(Mutex::new(None));
}
pub fn veilid_tools_setup_android_no_log<'a>(env: JNIEnv<'a>, ctx: JObject<'a>) {
*ANDROID_GLOBALS.lock() = Some(AndroidGlobals {
vm: env.get_java_vm().unwrap(),
ctx: env.new_global_ref(ctx).unwrap(),
});
}
pub fn veilid_tools_setup<'a>(env: JNIEnv<'a>, ctx: JObject<'a>, log_tag: &'a str) {
pub fn veilid_tools_setup_android_tests() {
cfg_if! {
if #[cfg(feature = "tracing")] {
use tracing::*;
@@ -44,7 +34,7 @@ pub fn veilid_tools_setup<'a>(env: JNIEnv<'a>, ctx: JObject<'a>, log_tag: &'a st
// Set up subscriber and layers
let subscriber = Registry::default();
let mut layers = Vec::new();
let layer = tracing_android::layer(log_tag)
let layer = tracing_android::layer("veilid-tools")
.expect("failed to set up android logging")
.with_filter(filter::LevelFilter::TRACE)
.with_filter(filters);
@@ -89,25 +79,4 @@ pub fn veilid_tools_setup<'a>(env: JNIEnv<'a>, ctx: JObject<'a>, log_tag: &'a st
}
error!("Backtrace:\n{:?}", bt);
}));
veilid_tools_setup_android_no_log(env, ctx);
}
// pub fn get_android_globals() -> (JavaVM, GlobalRef) {
// let globals_locked = ANDROID_GLOBALS.lock();
// let globals = globals_locked.as_ref().unwrap();
// let env = globals.vm.attach_current_thread_as_daemon().unwrap();
// let vm = env.get_java_vm().unwrap();
// let ctx = globals.ctx.clone();
// (vm, ctx)
// }
// pub fn with_null_local_frame<'b, T, F>(env: JNIEnv<'b>, s: i32, f: F) -> JniResult<T>
// where
// F: FnOnce() -> JniResult<T>,
// {
// env.push_local_frame(s)?;
// let out = f();
// env.pop_local_frame(JObject::null())?;
// out
// }