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
 

Reply via email to