diff options
Diffstat (limited to 'tests/test_default.rs')
-rw-r--r-- | tests/test_default.rs | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/tests/test_default.rs b/tests/test_default.rs index 241e580..af634a0 100644 --- a/tests/test_default.rs +++ b/tests/test_default.rs @@ -83,26 +83,49 @@ fn allow_octal() { #[test] fn oibits() { use regex::bytes; - use regex::{Regex, RegexBuilder}; - use std::panic::UnwindSafe; + use regex::{Regex, RegexBuilder, RegexSet, RegexSetBuilder}; + use std::panic::{RefUnwindSafe, UnwindSafe}; fn assert_send<T: Send>() {} fn assert_sync<T: Sync>() {} fn assert_unwind_safe<T: UnwindSafe>() {} + fn assert_ref_unwind_safe<T: RefUnwindSafe>() {} assert_send::<Regex>(); assert_sync::<Regex>(); assert_unwind_safe::<Regex>(); + assert_ref_unwind_safe::<Regex>(); assert_send::<RegexBuilder>(); assert_sync::<RegexBuilder>(); assert_unwind_safe::<RegexBuilder>(); + assert_ref_unwind_safe::<RegexBuilder>(); assert_send::<bytes::Regex>(); assert_sync::<bytes::Regex>(); assert_unwind_safe::<bytes::Regex>(); + assert_ref_unwind_safe::<bytes::Regex>(); assert_send::<bytes::RegexBuilder>(); assert_sync::<bytes::RegexBuilder>(); assert_unwind_safe::<bytes::RegexBuilder>(); + assert_ref_unwind_safe::<bytes::RegexBuilder>(); + + assert_send::<RegexSet>(); + assert_sync::<RegexSet>(); + assert_unwind_safe::<RegexSet>(); + assert_ref_unwind_safe::<RegexSet>(); + assert_send::<RegexSetBuilder>(); + assert_sync::<RegexSetBuilder>(); + assert_unwind_safe::<RegexSetBuilder>(); + assert_ref_unwind_safe::<RegexSetBuilder>(); + + assert_send::<bytes::RegexSet>(); + assert_sync::<bytes::RegexSet>(); + assert_unwind_safe::<bytes::RegexSet>(); + assert_ref_unwind_safe::<bytes::RegexSet>(); + assert_send::<bytes::RegexSetBuilder>(); + assert_sync::<bytes::RegexSetBuilder>(); + assert_unwind_safe::<bytes::RegexSetBuilder>(); + assert_ref_unwind_safe::<bytes::RegexSetBuilder>(); } // See: https://github.com/rust-lang/regex/issues/568 @@ -113,3 +136,18 @@ fn oibits_regression() { let _ = panic::catch_unwind(|| Regex::new("a").unwrap()); } + +// See: https://github.com/rust-lang/regex/issues/750 +#[test] +#[cfg(target_pointer_width = "64")] +fn regex_is_reasonably_small() { + use std::mem::size_of; + + use regex::bytes; + use regex::{Regex, RegexSet}; + + assert_eq!(16, size_of::<Regex>()); + assert_eq!(16, size_of::<RegexSet>()); + assert_eq!(16, size_of::<bytes::Regex>()); + assert_eq!(16, size_of::<bytes::RegexSet>()); +} |