#[test]
fn test_enabled_features_returns_vec() {
let features = oxicrypto::enabled_features();
assert!(
features.len() <= 4,
"at most 4 known features can be enabled; got {:?}",
features
);
}
#[test]
fn test_default_features_include_pure() {
let features = oxicrypto::enabled_features();
#[cfg(feature = "pure")]
assert!(
features.contains(&"pure"),
"pure feature should be in enabled_features() when compiled with --features=pure; got {:?}",
features
);
#[cfg(not(feature = "pure"))]
assert!(
!features.contains(&"pure"),
"pure feature should be absent when not compiled in; got {:?}",
features
);
}
#[test]
fn test_enabled_features_known_names_only() {
let features = oxicrypto::enabled_features();
let known = ["pure", "simd", "pq-preview", "std"];
for &f in &features {
assert!(
known.contains(&f),
"unexpected feature name {:?} in enabled_features()",
f
);
}
}
#[test]
fn test_enabled_features_no_duplicates() {
let features = oxicrypto::enabled_features();
let mut seen = std::collections::HashSet::new();
for &f in &features {
assert!(
seen.insert(f),
"duplicate feature {:?} in enabled_features()",
f
);
}
}
#[test]
fn test_simd_feature_gate_consistent() {
let features = oxicrypto::enabled_features();
#[cfg(feature = "simd")]
assert!(
features.contains(&"simd"),
"`simd` feature compiled in but missing from enabled_features(); got {:?}",
features
);
#[cfg(not(feature = "simd"))]
assert!(
!features.contains(&"simd"),
"`simd` feature NOT compiled in but unexpectedly appears in enabled_features(); got {:?}",
features
);
}
#[test]
fn test_pq_preview_feature_gate_consistent() {
let features = oxicrypto::enabled_features();
#[cfg(feature = "pq-preview")]
assert!(
features.contains(&"pq-preview"),
"`pq-preview` feature compiled in but missing from enabled_features(); got {:?}",
features
);
#[cfg(not(feature = "pq-preview"))]
assert!(
!features.contains(&"pq-preview"),
"`pq-preview` NOT compiled in but unexpectedly in enabled_features(); got {:?}",
features
);
}