--- tests/sharded_lock.rs +++ tests/sharded_lock.rs @@ -46,6 +46,8 @@ fn frob() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn arc_poison_wr() { let arc = Arc::new(ShardedLock::new(1)); let arc2 = arc.clone(); @@ -58,6 +60,8 @@ fn arc_poison_wr() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn arc_poison_ww() { let arc = Arc::new(ShardedLock::new(1)); assert!(!arc.is_poisoned()); @@ -72,6 +76,8 @@ fn arc_poison_ww() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn arc_no_poison_rr() { let arc = Arc::new(ShardedLock::new(1)); let arc2 = arc.clone(); @@ -84,6 +90,8 @@ fn arc_no_poison_rr() { assert_eq!(*lock, 1); } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn arc_no_poison_sl() { let arc = Arc::new(ShardedLock::new(1)); let arc2 = arc.clone(); @@ -135,6 +143,8 @@ fn arc() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn arc_access_in_unwind() { let arc = Arc::new(ShardedLock::new(1)); let arc2 = arc.clone(); @@ -211,6 +221,8 @@ fn test_into_inner_drop() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn test_into_inner_poison() { let m = Arc::new(ShardedLock::new(NonCopy(10))); let m2 = m.clone(); @@ -235,6 +247,8 @@ fn test_get_mut() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn test_get_mut_poison() { let m = Arc::new(ShardedLock::new(NonCopy(10))); let m2 = m.clone(); --- tests/thread.rs +++ tests/thread.rs @@ -9,6 +9,8 @@ const THREADS: usize = 10; const SMALL_STACK_SIZE: usize = 20; #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn join() { let counter = AtomicUsize::new(0); thread::scope(|scope| { @@ -64,6 +66,8 @@ fn counter_builder() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn counter_panic() { let counter = AtomicUsize::new(0); let result = thread::scope(|scope| { @@ -84,6 +88,8 @@ fn counter_panic() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn panic_twice() { let result = thread::scope(|scope| { scope.spawn(|_| { @@ -108,6 +114,8 @@ fn panic_twice() { } #[test] +// Android aborts on panic and this test relies on stack unwinding. +#[cfg(not(target_os = "android"))] fn panic_many() { let result = thread::scope(|scope| { scope.spawn(|_| panic!("deliberate panic #1"));