Skip to content

Commit 4840220

Browse files
committed
Fix binary scan tests by creating config once in TestMain setup
The previous fix was creating/deleting config in each test, causing race conditions when tests ran in parallel or sequentially. Docker tests work by creating isolated config directories per test via InitTestWithMockCommandOrParams. This fix creates the CLI config ONCE in setupIntegrationTests() so all binary scan tests share the same config, preventing conflicts. Root cause: - CreateJfrogHomeConfig deletes and recreates the 'default' config - Calling it in each test caused tests to interfere with each other - Docker tests avoid this by using isolated config directories per test Solution: - Move CreateJfrogHomeConfig call to setupIntegrationTests() - Only create config when --test.scan flag is set - Remove individual CreateJfrogHomeConfig calls from all 9 binary scan tests
1 parent e16b867 commit 4840220

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

jfrogclisecurity_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ func setupIntegrationTests() {
4242
integrationUtils.AuthenticateArtifactory()
4343
integrationUtils.AuthenticateXsc()
4444
integrationUtils.CreateRequiredRepositories()
45+
// Create CLI config for binary scan tests (Docker tests create their own isolated configs)
46+
if *configTests.TestScan {
47+
integrationUtils.CreateJfrogHomeConfig(nil, "", true)
48+
}
4549
}
4650

4751
func tearDownIntegrationTests() {

scans_test.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ func runXrayBinaryScan(t *testing.T, params binaryScanParams) (string, error) {
9898
// Binary scan tests
9999
func TestXrayBinaryScanJson(t *testing.T) {
100100
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
101-
integration.CreateJfrogHomeConfig(t, "", true)
102101
output := testXrayMultipleBinariesScan(t, binaryScanParams{Format: format.Json, WithLicense: true}, false)
103102
validations.VerifyJsonResults(t, output, validations.ValidationParams{
104103
Total: &validations.TotalCount{Licenses: 1, Vulnerabilities: 1},
@@ -107,7 +106,6 @@ func TestXrayBinaryScanJson(t *testing.T) {
107106

108107
func TestXrayBinaryScanSimpleJson(t *testing.T) {
109108
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
110-
integration.CreateJfrogHomeConfig(t, "", true)
111109
output := testXrayBinaryScanWithWatch(t, format.SimpleJson, "xray-scan-binary-policy", "scan-binary-watch", true)
112110
validations.VerifySimpleJsonResults(t, output, validations.ValidationParams{
113111
Total: &validations.TotalCount{Licenses: 1, Vulnerabilities: 1, Violations: 1},
@@ -116,7 +114,6 @@ func TestXrayBinaryScanSimpleJson(t *testing.T) {
116114

117115
func TestXrayBinaryScanCycloneDx(t *testing.T) {
118116
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
119-
integration.CreateJfrogHomeConfig(t, "", true)
120117
output := testXrayBinaryScanJASArtifact(t, format.CycloneDx, "backupfriend-client.tar.gz", false)
121118
validations.VerifyCycloneDxResults(t, output, validations.ValidationParams{
122119
Total: &validations.TotalCount{Vulnerabilities: 4},
@@ -129,7 +126,6 @@ func TestXrayBinaryScanCycloneDx(t *testing.T) {
129126

130127
func TestXrayBinaryScanJsonDocker(t *testing.T) {
131128
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
132-
integration.CreateJfrogHomeConfig(t, "", true)
133129
// In Windows, indexer fails to index the tar, Caused by: failed to rename path for layer so we run in clean copy in temp dir
134130
output := testXrayBinaryScanJASArtifact(t, format.SimpleJson, "xmas.tar", true)
135131
validations.VerifySimpleJsonResults(t, output, validations.ValidationParams{
@@ -143,7 +139,6 @@ func TestXrayBinaryScanJsonDocker(t *testing.T) {
143139

144140
func TestXrayBinaryScanJsonGeneric(t *testing.T) {
145141
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
146-
integration.CreateJfrogHomeConfig(t, "", true)
147142
output := testXrayBinaryScanJASArtifact(t, format.SimpleJson, "backupfriend-client.tar.gz", false)
148143
validations.VerifySimpleJsonResults(t, output, validations.ValidationParams{
149144
Total: &validations.TotalCount{Vulnerabilities: 4},
@@ -156,7 +151,6 @@ func TestXrayBinaryScanJsonGeneric(t *testing.T) {
156151

157152
func TestXrayBinaryScanJsonJar(t *testing.T) {
158153
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
159-
integration.CreateJfrogHomeConfig(t, "", true)
160154
output := testXrayBinaryScanJASArtifact(t, format.SimpleJson, "student-services-security-0.0.1.jar", false)
161155
validations.VerifySimpleJsonResults(t, output, validations.ValidationParams{
162156
Total: &validations.TotalCount{Vulnerabilities: 41},
@@ -169,7 +163,6 @@ func TestXrayBinaryScanJsonJar(t *testing.T) {
169163

170164
func TestXrayBinaryScanJsonWithProgress(t *testing.T) {
171165
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
172-
integration.CreateJfrogHomeConfig(t, "", true)
173166
callback := commonTests.MockProgressInitialization()
174167
defer callback()
175168
output := testXrayMultipleBinariesScan(t, binaryScanParams{Format: format.Json, WithLicense: true}, false)
@@ -180,7 +173,6 @@ func TestXrayBinaryScanJsonWithProgress(t *testing.T) {
180173

181174
func TestXrayBinaryScanSimpleJsonWithProgress(t *testing.T) {
182175
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
183-
integration.CreateJfrogHomeConfig(t, "", true)
184176
callback := commonTests.MockProgressInitialization()
185177
defer callback()
186178
output := testXrayBinaryScanWithWatch(t, format.SimpleJson, "xray-scan-binary-progress-policy", "scan-binary-progress-watch", true)

0 commit comments

Comments
 (0)