diff options
author | Daniel McCarney <daniel@binaryparadox.net> | 2024-06-12 16:55:50 -0400 |
---|---|---|
committer | Daniel McCarney <daniel@binaryparadox.net> | 2024-06-19 15:36:07 -0400 |
commit | bc30d547c3a290f95b1b12fd87f1b14c7b6e429c (patch) | |
tree | b83140dca26c99078efdf9e4fc47a17823ae14fa /src | |
parent | f2a4d751f1168287647395d7b7395ab36c9e71e0 (diff) |
lib: move unit tests to bottom
This will help avoid a `clippy::items_after_test_module` finding after
the stand-alone `test_rustls_version` unit test is removed.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib.rs | 206 |
1 files changed, 103 insertions, 103 deletions
@@ -197,109 +197,6 @@ pub(crate) fn log_callback_get() -> Result<(rustls_log_callback, *mut c_void), U .unwrap_or(Err(UserdataError::AccessError)) } -#[cfg(test)] -mod tests { - use super::*; - use std::thread; - - #[test] - fn guard_try_pop() { - let data = "hello"; - let data_ptr = data as *const _ as _; - let mut guard = userdata_push(data_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), data_ptr); - guard.try_pop().unwrap(); - assert!(guard.try_pop().is_err()) - } - - #[test] - fn guard_try_drop() { - let data = "hello"; - let data_ptr = data as *const _ as _; - let guard = userdata_push(data_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), data_ptr); - guard.try_drop().unwrap(); - assert!(userdata_get().is_err()) - } - - #[test] - fn guard_drop() { - let data = "hello"; - let data_ptr = data as *const _ as _; - { - let _guard = userdata_push(data_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), data_ptr); - } - assert!(userdata_get().is_err()) - } - - #[test] - fn nested_guards() { - let hello = "hello"; - let hello_ptr = hello as *const _ as _; - { - let guard = userdata_push(hello_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), hello_ptr); - { - let yo = "yo"; - let yo_ptr = yo as *const _ as _; - let guard2 = userdata_push(yo_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), yo_ptr); - guard2.try_drop().unwrap(); - } - assert_eq!(userdata_get().unwrap(), hello_ptr); - guard.try_drop().unwrap(); - } - assert!(userdata_get().is_err()) - } - - #[test] - fn out_of_order_drop() { - let hello = "hello"; - let hello_ptr = hello as *const _ as _; - let guard = userdata_push(hello_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), hello_ptr); - - let yo = "yo"; - let yo_ptr = yo as *const _ as _; - let guard2 = userdata_push(yo_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), yo_ptr); - - assert!(matches!(guard.try_drop(), Err(UserdataError::WrongData))); - assert!(matches!(guard2.try_drop(), Err(UserdataError::WrongData))); - } - - #[test] - fn userdata_multi_threads() { - let hello = "hello"; - let hello_ptr = hello as *const _ as _; - let guard = userdata_push(hello_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), hello_ptr); - - let thread1 = thread::spawn(|| { - let yo = "yo"; - let yo_ptr = yo as *const _ as _; - let guard2 = userdata_push(yo_ptr, None).unwrap(); - assert_eq!(userdata_get().unwrap(), yo_ptr); - - let greetz = "greetz"; - let greetz_ptr = greetz as *const _ as _; - - let guard3 = userdata_push(greetz_ptr, None).unwrap(); - - assert_eq!(userdata_get().unwrap(), greetz_ptr); - guard3.try_drop().unwrap(); - - assert_eq!(userdata_get().unwrap(), yo_ptr); - guard2.try_drop().unwrap(); - }); - - assert_eq!(userdata_get().unwrap(), hello_ptr); - guard.try_drop().unwrap(); - thread1.join().unwrap(); - } -} - /// Used to mark that pointer to a [`Castable`]'s underlying `Castable::RustType` is provided /// to C code as a pointer to a `Box<Castable::RustType>`. pub(crate) struct OwnershipBox; @@ -816,3 +713,106 @@ fn test_rustls_version() { let vsn = rustls_version(); assert!(vsn.len > 4) } + +#[cfg(test)] +mod tests { + use super::*; + use std::thread; + + #[test] + fn guard_try_pop() { + let data = "hello"; + let data_ptr = data as *const _ as _; + let mut guard = userdata_push(data_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), data_ptr); + guard.try_pop().unwrap(); + assert!(guard.try_pop().is_err()) + } + + #[test] + fn guard_try_drop() { + let data = "hello"; + let data_ptr = data as *const _ as _; + let guard = userdata_push(data_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), data_ptr); + guard.try_drop().unwrap(); + assert!(userdata_get().is_err()) + } + + #[test] + fn guard_drop() { + let data = "hello"; + let data_ptr = data as *const _ as _; + { + let _guard = userdata_push(data_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), data_ptr); + } + assert!(userdata_get().is_err()) + } + + #[test] + fn nested_guards() { + let hello = "hello"; + let hello_ptr = hello as *const _ as _; + { + let guard = userdata_push(hello_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), hello_ptr); + { + let yo = "yo"; + let yo_ptr = yo as *const _ as _; + let guard2 = userdata_push(yo_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), yo_ptr); + guard2.try_drop().unwrap(); + } + assert_eq!(userdata_get().unwrap(), hello_ptr); + guard.try_drop().unwrap(); + } + assert!(userdata_get().is_err()) + } + + #[test] + fn out_of_order_drop() { + let hello = "hello"; + let hello_ptr = hello as *const _ as _; + let guard = userdata_push(hello_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), hello_ptr); + + let yo = "yo"; + let yo_ptr = yo as *const _ as _; + let guard2 = userdata_push(yo_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), yo_ptr); + + assert!(matches!(guard.try_drop(), Err(UserdataError::WrongData))); + assert!(matches!(guard2.try_drop(), Err(UserdataError::WrongData))); + } + + #[test] + fn userdata_multi_threads() { + let hello = "hello"; + let hello_ptr = hello as *const _ as _; + let guard = userdata_push(hello_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), hello_ptr); + + let thread1 = thread::spawn(|| { + let yo = "yo"; + let yo_ptr = yo as *const _ as _; + let guard2 = userdata_push(yo_ptr, None).unwrap(); + assert_eq!(userdata_get().unwrap(), yo_ptr); + + let greetz = "greetz"; + let greetz_ptr = greetz as *const _ as _; + + let guard3 = userdata_push(greetz_ptr, None).unwrap(); + + assert_eq!(userdata_get().unwrap(), greetz_ptr); + guard3.try_drop().unwrap(); + + assert_eq!(userdata_get().unwrap(), yo_ptr); + guard2.try_drop().unwrap(); + }); + + assert_eq!(userdata_get().unwrap(), hello_ptr); + guard.try_drop().unwrap(); + thread1.join().unwrap(); + } +} |