From 56e9e5e68a2664e3d93c4d120cf656b5302ce4f9 Mon Sep 17 00:00:00 2001 From: Jamil Date: Thu, 22 Feb 2024 17:06:54 -0800 Subject: [PATCH] feat(ci): Test that relay restarts don't break existing connected entities (#3671) ~~Highlights the issue hypothesized in #3666~~ This tests that restarting a Relay won't cause sustained downtime. Sleeps have been removed as they shouldn't necessary -- removing them will better catch race conditions. --- .github/workflows/ci.yml | 1 + scripts/tests/direct-curl-portal-down.sh | 4 +--- scripts/tests/direct-curl-portal-relay-down.sh | 4 +--- scripts/tests/direct-curl-portal-restart.sh | 6 +++--- scripts/tests/relayed-curl-portal-down.sh | 4 +--- scripts/tests/relayed-curl-portal-restart.sh | 6 +++--- scripts/tests/relayed-curl-relay-restart.sh | 14 ++++++++++++++ 7 files changed, 24 insertions(+), 15 deletions(-) create mode 100755 scripts/tests/relayed-curl-relay-restart.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 46d75ea34..95568cefe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -187,6 +187,7 @@ jobs: test: [ direct-curl-portal-restart, relayed-curl-portal-restart, + relayed-curl-relay-restart, direct-curl-portal-down, relayed-curl-portal-down, direct-curl-portal-relay-down, diff --git a/scripts/tests/direct-curl-portal-down.sh b/scripts/tests/direct-curl-portal-down.sh index 26b71431e..f21a26cd2 100755 --- a/scripts/tests/direct-curl-portal-down.sh +++ b/scripts/tests/direct-curl-portal-down.sh @@ -4,10 +4,8 @@ set -euo pipefail source "./scripts/tests/lib.sh" -client_curl_resource +client_curl_resource # Establish a connection docker compose stop api relay # Stop portal & relay -sleep 5 # Wait for client to disconnect - client_curl_resource diff --git a/scripts/tests/direct-curl-portal-relay-down.sh b/scripts/tests/direct-curl-portal-relay-down.sh index 8f9b1f3f4..e75eb3e82 100755 --- a/scripts/tests/direct-curl-portal-relay-down.sh +++ b/scripts/tests/direct-curl-portal-relay-down.sh @@ -4,10 +4,8 @@ set -euo pipefail source "./scripts/tests/lib.sh" -client_curl_resource +client_curl_resource # Establish a connection docker compose stop api # Stop portal -sleep 5 # Wait for client to disconnect - client_curl_resource diff --git a/scripts/tests/direct-curl-portal-restart.sh b/scripts/tests/direct-curl-portal-restart.sh index 85ba81ed6..8c6d42bb9 100755 --- a/scripts/tests/direct-curl-portal-restart.sh +++ b/scripts/tests/direct-curl-portal-restart.sh @@ -4,10 +4,10 @@ set -euo pipefail source "./scripts/tests/lib.sh" -client_curl_resource - docker compose restart api # Restart portal -sleep 5 # Wait for client to reconnect +client_curl_resource + +docker compose restart api # Restart again client_curl_resource diff --git a/scripts/tests/relayed-curl-portal-down.sh b/scripts/tests/relayed-curl-portal-down.sh index 123a440b5..2114aa4ad 100755 --- a/scripts/tests/relayed-curl-portal-down.sh +++ b/scripts/tests/relayed-curl-portal-down.sh @@ -7,10 +7,8 @@ source "./scripts/tests/lib.sh" install_iptables_drop_rules trap remove_iptables_drop_rules EXIT # Cleanup after us -client_curl_resource +client_curl_resource # Establish a connection docker compose stop api # Stop portal -sleep 5 # Wait for client to disconnect - client_curl_resource diff --git a/scripts/tests/relayed-curl-portal-restart.sh b/scripts/tests/relayed-curl-portal-restart.sh index 40b6d38e4..e81dc2cbd 100755 --- a/scripts/tests/relayed-curl-portal-restart.sh +++ b/scripts/tests/relayed-curl-portal-restart.sh @@ -7,10 +7,10 @@ source "./scripts/tests/lib.sh" install_iptables_drop_rules trap remove_iptables_drop_rules EXIT # Cleanup after us -client_curl_resource - docker compose restart api # Restart portal -sleep 5 # Wait for client to reconnect +client_curl_resource + +docker compose restart api # Restart again client_curl_resource diff --git a/scripts/tests/relayed-curl-relay-restart.sh b/scripts/tests/relayed-curl-relay-restart.sh new file mode 100755 index 000000000..36921bad5 --- /dev/null +++ b/scripts/tests/relayed-curl-relay-restart.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +set -e + +source "./scripts/tests/lib.sh" + +install_iptables_drop_rules +trap remove_iptables_drop_rules EXIT # Cleanup after us + +client_curl_resource + +docker compose restart relay # Restart relay + +client_curl_resource