keyhog-scanner 0.5.73

keyhog-scanner: high-performance SIMD-accelerated secret detection engine
#[cfg(feature = "simd")]
#[test]
fn reusable_simd_trigger_cache_does_not_retain_source_payload_bytes() {
    use crate::engine::ReusableSimdTriggerCache;
    use keyhog_core::SensitiveString;

    let mut cache = ReusableSimdTriggerCache::default();
    let payload = SensitiveString::from("SECRET_KEY_PAYLOAD_1234567890");

    let computed = cache
        .get_or_compute(&payload, || Ok(Some(vec![1, 2, 3])))
        .expect("compute ok");
    assert!(computed.is_some());

    assert!(!cache.contains_payload_bytes());

    let hit = cache
        .get_or_compute(&payload, || panic!("should be cache hit"))
        .expect("hit ok");
    assert_eq!(hit, computed);

    cache.clear();

    let computed_after_clear = cache
        .get_or_compute(&payload, || Ok(Some(vec![4, 5, 6])))
        .expect("compute after clear ok");
    assert_ne!(computed_after_clear, computed);
}