From ae59c8a663a70f8e03624f43fad1da4b5b59f299 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Thu, 12 May 2022 17:29:07 +0300 Subject: [PATCH] fix: Find substrate port on different log lines (#536) * Find substrate port on different log lines Signed-off-by: Alexandru Vasile * Simplify node_proc line logic Signed-off-by: Alexandru Vasile --- integration-tests/src/utils/node_proc.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/integration-tests/src/utils/node_proc.rs b/integration-tests/src/utils/node_proc.rs index 33488de22b..e7b2276fb2 100644 --- a/integration-tests/src/utils/node_proc.rs +++ b/integration-tests/src/utils/node_proc.rs @@ -168,22 +168,24 @@ fn find_substrate_port_from_output(r: impl Read + Send + 'static) -> u16 { BufReader::new(r) .lines() .find_map(|line| { - let line = line - .expect("failed to obtain next line from stdout for port discovery"); + let line = + line.expect("failed to obtain next line from stdout for port discovery"); // does the line contain our port (we expect this specific output from substrate). - let line_end = match line.rsplit_once("Listening for new connections on 127.0.0.1:") { - None => return None, - Some((_, after)) => after - }; + let line_end = line + .rsplit_once("Listening for new connections on 127.0.0.1:") + .or_else(|| { + line.rsplit_once("Running JSON-RPC WS server: addr=127.0.0.1:") + }) + .map(|(_, port_str)| port_str)?; // trim non-numeric chars from the end of the port part of the line. let port_str = line_end.trim_end_matches(|b| !('0'..='9').contains(&b)); // expect to have a number here (the chars after '127.0.0.1:') and parse them into a u16. - let port_num = port_str - .parse() - .unwrap_or_else(|_| panic!("valid port expected on 'Listening for new connections' line, got '{port_str}'")); + let port_num = port_str.parse().unwrap_or_else(|_| { + panic!("valid port expected for log line, got '{port_str}'") + }); Some(port_num) })