This is an automated email from the ASF dual-hosted git repository.
maciej pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new 261d25557 feat(bdd): support -race option for Go BDD tests (#2914)
261d25557 is described below
commit 261d25557d9aabdd51cb071ed8f62422ccb70c90
Author: Atharva Lade <[email protected]>
AuthorDate: Thu Mar 12 04:19:53 2026 -0500
feat(bdd): support -race option for Go BDD tests (#2914)
Closes #2863
---
.github/config/components.yml | 2 +-
.github/workflows/_test_bdd.yml | 2 +-
bdd/docker-compose.yml | 3 ++-
bdd/go/Dockerfile | 6 ++++--
scripts/run-bdd-tests.sh | 34 ++++++++++++++++++++--------------
5 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/.github/config/components.yml b/.github/config/components.yml
index fb2ccc11b..fa9620be3 100644
--- a/.github/config/components.yml
+++ b/.github/config/components.yml
@@ -247,7 +247,7 @@ components:
paths:
- "bdd/go/**"
- "bdd/scenarios/**"
- tasks: ["bdd-go"]
+ tasks: ["bdd-go", "bdd-go-race"]
bdd-node:
depends_on:
diff --git a/.github/workflows/_test_bdd.yml b/.github/workflows/_test_bdd.yml
index 9c9c571f6..bd527ed2c 100644
--- a/.github/workflows/_test_bdd.yml
+++ b/.github/workflows/_test_bdd.yml
@@ -83,7 +83,7 @@ jobs:
if: startsWith(inputs.component, 'bdd-') && startsWith(inputs.task,
'bdd-')
run: |
# Extract SDK name from task (format: bdd-<sdk>)
- SDK_NAME=$(echo "${{ inputs.task }}" | sed 's/bdd-//')
+ SDK_NAME=$(echo "${{ inputs.task }}" | sed 's/^bdd-//')
echo "Running BDD tests for SDK: $SDK_NAME"
echo "Current directory: $(pwd)"
diff --git a/bdd/docker-compose.yml b/bdd/docker-compose.yml
index f213e4f25..f30aeaed2 100644
--- a/bdd/docker-compose.yml
+++ b/bdd/docker-compose.yml
@@ -222,9 +222,10 @@ services:
- IGGY_ROOT_USERNAME=iggy
- IGGY_ROOT_PASSWORD=iggy
- IGGY_TCP_ADDRESS=iggy-server:8090
+ - GO_TEST_EXTRA_FLAGS=${GO_TEST_EXTRA_FLAGS:-}
volumes:
-
./scenarios/basic_messaging.feature:/app/features/basic_messaging.feature
- command: [ "go", "test", "-v", "./..." ]
+ command: [ "sh", "-c", "go test -v ${GO_TEST_EXTRA_FLAGS} ./..." ]
networks:
- iggy-bdd-network
diff --git a/bdd/go/Dockerfile b/bdd/go/Dockerfile
index d7560b9bd..279409f14 100644
--- a/bdd/go/Dockerfile
+++ b/bdd/go/Dockerfile
@@ -17,6 +17,8 @@
FROM golang:1.23.10-alpine
+RUN apk add --no-cache gcc musl-dev
+
WORKDIR /app
# Copy only go.mod and go.sum first to leverage Docker layer caching
@@ -39,5 +41,5 @@ COPY bdd/scenarios ./bdd/scenarios
# Change workdir to bdd/go
WORKDIR /app/bdd/go
-# Default command
-CMD ["go", "test", "-v", "./..."]
+# Default command (GO_TEST_EXTRA_FLAGS can inject -race)
+CMD ["sh", "-c", "go test -v ${GO_TEST_EXTRA_FLAGS:-} ./..."]
diff --git a/scripts/run-bdd-tests.sh b/scripts/run-bdd-tests.sh
index aeb920178..67e63c0a7 100755
--- a/scripts/run-bdd-tests.sh
+++ b/scripts/run-bdd-tests.sh
@@ -21,7 +21,7 @@ set -Eeuo pipefail
SDK=${1:-"all"}
FEATURE=${2:-"scenarios/basic_messaging.feature"}
-export DOCKER_BUILDKIT=1 FEATURE
+export DOCKER_BUILDKIT=1 FEATURE GO_TEST_EXTRA_FLAGS="${GO_TEST_EXTRA_FLAGS:-}"
cd "$(dirname "$0")/../bdd"
@@ -48,25 +48,31 @@ run_suite(){
}
case "$SDK" in
- rust) run_suite rust-bdd "๐ฆ" "Running Rust BDD tests" ;;
- python) run_suite python-bdd "๐" "Running Python BDD tests" ;;
- go) run_suite go-bdd "๐น" "Running Go BDD tests" ;;
- node) run_suite node-bdd "๐ข๐" "Running Node BDD tests" ;;
- csharp) run_suite csharp-bdd "๐ท" "Running C# BDD tests" ;;
- java) run_suite java-bdd "โ" "Running Java BDD tests" ;;
+ rust) run_suite rust-bdd "๐ฆ" "Running Rust BDD tests" ;;
+ python) run_suite python-bdd "๐" "Running Python BDD tests" ;;
+ go) run_suite go-bdd "๐น" "Running Go BDD tests" ;;
+ go-race)
+ export GO_TEST_EXTRA_FLAGS="-race"
+ run_suite go-bdd "๐นโก" "Running Go BDD tests with data race detector"
+ ;;
+ node) run_suite node-bdd "๐ข๐" "Running Node BDD tests" ;;
+ csharp) run_suite csharp-bdd "๐ท" "Running C# BDD tests" ;;
+ java) run_suite java-bdd "โ" "Running Java BDD tests" ;;
all)
- run_suite rust-bdd "๐ฆ" "Running Rust BDD tests" || exit $?
- run_suite python-bdd "๐" "Running Python BDD tests" || exit $?
- run_suite go-bdd "๐น" "Running Go BDD tests" || exit $?
- run_suite node-bdd "๐ข๐" "Running Node BDD tests" || exit $?
- run_suite csharp-bdd "๐ท" "Running C# BDD tests" || exit $?
- run_suite java-bdd "โ" "Running Java BDD tests" || exit $?
+ run_suite rust-bdd "๐ฆ" "Running Rust BDD tests"
|| exit $?
+ run_suite python-bdd "๐" "Running Python BDD tests"
|| exit $?
+ run_suite go-bdd "๐น" "Running Go BDD tests"
|| exit $?
+ GO_TEST_EXTRA_FLAGS="-race" \
+ run_suite go-bdd "๐นโก" "Running Go BDD tests with data race detector"
|| exit $?
+ run_suite node-bdd "๐ข๐" "Running Node BDD tests"
|| exit $?
+ run_suite csharp-bdd "๐ท" "Running C# BDD tests"
|| exit $?
+ run_suite java-bdd "โ" "Running Java BDD tests"
|| exit $?
;;
clean)
cleanup; exit 0 ;;
*)
log "โ Unknown SDK: ${SDK}"
- log "๐ Usage: $0 [rust|python|go|node|csharp|java|all|clean]
[feature_file]"
+ log "๐ Usage: $0 [rust|python|go|go-race|node|csharp|java|all|clean]
[feature_file]"
exit 2 ;;
esac