From e19c5472f904e1a0a9c26121a6ded983698ce508 Mon Sep 17 00:00:00 2001 From: Michael Li Date: Thu, 21 May 2026 12:58:27 -0400 Subject: [PATCH] test(e2e): Fix cassandra e2e test (#2548) (#6739) * chore(e2e): Parallelize installation steps * chore(e2e): Install missing dependencies * test(e2e): Improve resiliency of assertions * CR --- .github/workflows/enos-run.yml | 27 ++++++++++++------- .../target_tcp_connect_cassandra_test.go | 7 +++-- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.github/workflows/enos-run.yml b/.github/workflows/enos-run.yml index 561d27ac2..c85b6f3b3 100644 --- a/.github/workflows/enos-run.yml +++ b/.github/workflows/enos-run.yml @@ -247,18 +247,27 @@ jobs: - name: Install other test dependencies if: contains(matrix.filter, 'e2e_docker_base_plus') run: | - # mongosh - wget -q https://github.com/mongodb-js/mongosh/releases/download/v2.7.0/mongosh-2.7.0-linux-x64.tgz -O /tmp/mongosh.tgz + # Download dependencies in parallel + wget -q https://github.com/mongodb-js/mongosh/releases/download/v2.7.0/mongosh-2.7.0-linux-x64.tgz -O /tmp/mongosh.tgz & + wget -q https://archive.apache.org/dist/cassandra/4.1.10/apache-cassandra-4.1.10-bin.tar.gz -O /tmp/cassandra.tar.gz & + wait + + # Install redis and mysql + sudo apt update && sudo apt install -y redis-tools mysql-client + + # Install mongosh tar -xzf /tmp/mongosh.tgz -C "$HOME" echo "$HOME/mongosh-2.7.0-linux-x64/bin" >> "$GITHUB_PATH" - # cqlsh (cassandra CLI) - wget -q https://archive.apache.org/dist/cassandra/4.1.10/apache-cassandra-4.1.10-bin.tar.gz -O /tmp/cassandra.tar.gz - tar -xzf /tmp/cassandra.tar.gz -C "$HOME" - echo "$HOME/apache-cassandra-4.1.10/bin" >> "$GITHUB_PATH" - - # redis - sudo apt update && sudo apt install -y redis-tools mysql-client + # Install cassandra and update it to use the python virtual + # environment + # A virtual environment was needed because python environments on + # self-hosted runners are externally managed. + sudo apt install -y python3.12-venv + python3 -m venv "$HOME/cqlsh-venv" + "$HOME/cqlsh-venv/bin/pip" install --upgrade pip + "$HOME/cqlsh-venv/bin/pip" install cqlsh + echo "$HOME/cqlsh-venv/bin" >> "$GITHUB_PATH" - name: Determine boundary version to test against previous worker version # Resolve the worker version from the previous release line. if: contains(matrix.filter, 'e2e_docker_base_with_worker_version') diff --git a/testing/internal/e2e/tests/base_plus/target_tcp_connect_cassandra_test.go b/testing/internal/e2e/tests/base_plus/target_tcp_connect_cassandra_test.go index beaaf3c0f..00f51a0ca 100644 --- a/testing/internal/e2e/tests/base_plus/target_tcp_connect_cassandra_test.go +++ b/testing/internal/e2e/tests/base_plus/target_tcp_connect_cassandra_test.go @@ -120,8 +120,11 @@ func TestCliTcpTargetConnectCassandra(t *testing.T) { output := buf.String() t.Logf("Cassandra session output: %s", output) - require.Contains(t, output, "keyspace_name") - require.Contains(t, output, keyspace) + // Note: Additional assertions can be tricky due to output containing \r\n + // and \b characters. The following assertions should be sufficient to prove + // that commands were executed successfully + require.Contains(t, output, "system_schema") // output of DESCRIBE KEYSPACES + require.Contains(t, output, "(1 rows)") // output of SELECT query t.Log("Successfully connected to Cassandra target") }