| use super::*; |
| |
| #[test] |
| fn test_combine_with_defaults_no_conflict() { |
| let defaults = SanitizerSet::SHADOWCALLSTACK; |
| let explicit = SanitizerSet::ADDRESS; |
| assert_eq!( |
| explicit.combine_with_defaults(defaults), |
| SanitizerSet::ADDRESS | SanitizerSet::SHADOWCALLSTACK |
| ); |
| } |
| |
| #[test] |
| fn test_combine_with_defaults_safestack_address_conflict() { |
| let defaults = SanitizerSet::SAFESTACK; |
| let explicit = SanitizerSet::ADDRESS; |
| // SafeStack should be implicitly disabled when Address is explicitly provided. |
| assert_eq!(explicit.combine_with_defaults(defaults), SanitizerSet::ADDRESS); |
| } |
| |
| #[test] |
| fn test_combine_with_defaults_empty_explicit() { |
| let defaults = SanitizerSet::SAFESTACK; |
| let explicit = SanitizerSet::empty(); |
| assert_eq!(explicit.combine_with_defaults(defaults), SanitizerSet::SAFESTACK); |
| } |
| |
| #[test] |
| fn test_combine_with_defaults_safestack_cfi() { |
| let defaults = SanitizerSet::SAFESTACK; |
| let explicit = SanitizerSet::CFI; |
| assert_eq!( |
| explicit.combine_with_defaults(defaults), |
| SanitizerSet::CFI | SanitizerSet::SAFESTACK |
| ); |
| } |