Skip to content

Commit 13cde75

Browse files
committed
test(gateway): retain cert on corrupt hot reload
1 parent a708e89 commit 13cde75

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

dstack/gateway/src/cert_store.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,4 +590,28 @@ mod tests {
590590
}
591591
assert_eq!(misses.load(Ordering::Relaxed), 0);
592592
}
593+
594+
#[test]
595+
fn corrupt_update_retains_previous_certificate() {
596+
let original = make_test_cert_data();
597+
let mut corrupt = make_test_cert_data();
598+
corrupt.cert_pem = "not a certificate".to_string();
599+
600+
let resolver = CertResolver::new();
601+
resolver
602+
.update_cert("example.com", &original)
603+
.expect("failed to install original certificate");
604+
resolver
605+
.update_cert("example.com", &corrupt)
606+
.expect_err("corrupt certificate must be rejected");
607+
assert_eq!(
608+
resolver
609+
.get()
610+
.get_cert_data("example.com")
611+
.expect("original certificate was lost")
612+
.not_after,
613+
original.not_after
614+
);
615+
assert!(resolver.get().has_cert_for_sni("app.example.com"));
616+
}
593617
}

0 commit comments

Comments
 (0)