From 056f1ca3bdd39abdf298f43dc1cf79b013dbc96b Mon Sep 17 00:00:00 2001 From: Rajat Jindal Date: Fri, 1 Dec 2023 14:56:24 +0530 Subject: [PATCH 1/2] retry assertions Signed-off-by: Rajat Jindal --- crates/e2e-testing/src/http_asserts.rs | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/crates/e2e-testing/src/http_asserts.rs b/crates/e2e-testing/src/http_asserts.rs index 5e5133a079..20b8e4f21e 100644 --- a/crates/e2e-testing/src/http_asserts.rs +++ b/crates/e2e-testing/src/http_asserts.rs @@ -2,8 +2,26 @@ use crate::ensure_eq; use anyhow::Result; use reqwest::{Method, Request, Response}; use std::str; +use std::thread::sleep; +use std::time::Duration; pub async fn assert_status(url: &str, expected: u16) -> Result<()> { + let mut count = 0; + while count < 5 { + let result = assert_status_once(url, expected).await; + if result.is_ok() { + return Ok(()); + } + + println!("assert_status error is {:?}", result.err()); + count += 1; + sleep(Duration::from_secs(2)) + } + + panic!("failed assert_status after 5 retries") +} + +pub async fn assert_status_once(url: &str, expected: u16) -> Result<()> { let resp = make_request(Method::GET, url, "").await?; let status = resp.status(); @@ -22,6 +40,37 @@ pub async fn assert_http_response( expected: u16, expected_headers: &[(&str, &str)], expected_body: Option<&str>, +) -> Result<()> { + let mut count = 0; + while count < 5 { + let result = assert_http_response_once( + url, + method.clone(), + body, + expected, + expected_headers, + expected_body, + ) + .await; + if result.is_ok() { + return Ok(()); + } + + println!("assert_http_response error is {:?}", result.err()); + count += 1; + sleep(Duration::from_secs(2)) + } + + panic!("failed assert_http_response after 5 retries") +} + +pub async fn assert_http_response_once( + url: &str, + method: Method, + body: &str, + expected: u16, + expected_headers: &[(&str, &str)], + expected_body: Option<&str>, ) -> Result<()> { let res = make_request(method, url, body).await?; From ea8b2d1ef98d79d979cce0d914b2a0aaf21b8a11 Mon Sep 17 00:00:00 2001 From: Rajat Jindal Date: Mon, 4 Dec 2023 21:45:07 +0530 Subject: [PATCH 2/2] use for instead of while Signed-off-by: Rajat Jindal --- crates/e2e-testing/src/http_asserts.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/crates/e2e-testing/src/http_asserts.rs b/crates/e2e-testing/src/http_asserts.rs index 20b8e4f21e..0ca62636c9 100644 --- a/crates/e2e-testing/src/http_asserts.rs +++ b/crates/e2e-testing/src/http_asserts.rs @@ -6,15 +6,13 @@ use std::thread::sleep; use std::time::Duration; pub async fn assert_status(url: &str, expected: u16) -> Result<()> { - let mut count = 0; - while count < 5 { + for _ in 0..5 { let result = assert_status_once(url, expected).await; if result.is_ok() { return Ok(()); } println!("assert_status error is {:?}", result.err()); - count += 1; sleep(Duration::from_secs(2)) } @@ -41,8 +39,7 @@ pub async fn assert_http_response( expected_headers: &[(&str, &str)], expected_body: Option<&str>, ) -> Result<()> { - let mut count = 0; - while count < 5 { + for _ in 0..5 { let result = assert_http_response_once( url, method.clone(), @@ -57,7 +54,6 @@ pub async fn assert_http_response( } println!("assert_http_response error is {:?}", result.err()); - count += 1; sleep(Duration::from_secs(2)) }