From 21b6997b690a9eaf7ba8659b0a1a895a86a7abc4 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Thu, 10 Oct 2024 08:59:21 +0200 Subject: Lower bound for query delay to 500ms --- rust/src/web.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'rust/src') diff --git a/rust/src/web.rs b/rust/src/web.rs index b9bab27..291801a 100644 --- a/rust/src/web.rs +++ b/rust/src/web.rs @@ -148,6 +148,9 @@ impl Client { if actual == *expected { self.grade += 1; self.delay = Duration::from_secs_f64(self.delay.as_secs_f64() * 0.8); + if self.delay.as_millis() < 500 { + self.delay = Duration::from_millis(500); + } TestResult::TestSucceeded } else { self.delay = Duration::from_secs_f64(self.delay.as_secs_f64() * 1.2); @@ -739,4 +742,17 @@ mod app_tests { assert!(delay_before > client.time_to_next_test()); } + + #[test] + async fn client_decreases_delay_to_minimum_of_500ms() { + let mut client = client(); + let expected = "1".to_string(); + let response = Ok("1".to_string()); + + for _ in 0..100 { + client.check_result(&expected, &response); + } + + assert_eq!(Duration::from_millis(500), client.time_to_next_test()); + } } -- cgit v1.2.3