Description
Hi @onsi
Thank you for Ginkgo, it's been an incredibly helpful tool for testing needs!
Question
Is it a known limitation that multiple Ginkgo processes cannot run concurrently from the same package directory, even when using mutually exclusive label filters?
Problem Summary
We’re encountering the following error when running multiple Ginkgo commands in parallel using Jenkins parallel stages:
fork/exec /workspace/integration/tests.test: text file busy
This happens intermittently
Setup
I am splitting around 600 tests into two subsets with labels as two make commands like this
Makefile targets
run-integration-tests:
ginkgo --procs=8 --compilers=8 --label-filter="integration_test" ./integration/tests
run-non-integration-tests:
ginkgo --procs=10 --compilers=10 --label-filter="!integration_test" ./integration/tests
calling these commands as parallel stages, as part of high-level test stage
Jenkinsfile stages
parallel([
"integration Tests": {
stage('integration Tests') {
try {
sh 'make run-integration-tests'
} catch (e) {
currentBuild.result = 'FAILED'
error("integration label tests have failed")
}
}
},
"non-integration Tests": {
stage('non-integration Tests') {
try {
sh 'make run-non-integration-tests'
} catch (e) {
currentBuild.result = 'FAILED'
error("non-integration Tests have failed")
}
}
}])
I believe the issue arises because both commands are accessing the temporary test binary (e.g., tests.test).
NOTE: This happens intermittently