diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 217b51eb4..97289f1b7 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -185,4 +185,4 @@ jobs: - name: Inspect action report if: always() shell: bash - run: cat ./trivy-image-results.txt + run: cat ./trivy-image-results.txt \ No newline at end of file diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index 3d2366a84..a6544d45d 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -26,17 +26,20 @@ const ( // Test validate with credentials used in test env func TestAuthValidate(t *testing.T) { + t.Parallel() err, buffer := executeCommand(t, "auth", "validate") assertSuccessAuthentication(t, err, buffer, defaultSuccessValidationMessage) } func TestAuthValidateClientAndSecret(t *testing.T) { + t.Parallel() err, buffer := executeCommand(t, "auth", "validate", "--debug", "--apikey", "") assertSuccessAuthentication(t, err, buffer, defaultSuccessValidationMessage) } // Test validate with credentials from flags func TestAuthValidateMissingFlagsTogether(t *testing.T) { + t.Parallel() // set base-uri to empty string so that it does not pick up the value from the environment err, _ := executeCommand(t, "auth", "validate", "--client-id", "fake-client-id", "--client-secret", "fake-client-secret", "--base-uri", "", "--base-auth-uri", "", "--apikey", "") assertError(t, err, wrappers.MissingURI) @@ -44,6 +47,7 @@ func TestAuthValidateMissingFlagsTogether(t *testing.T) { // Test validate with credentials from flags func TestAuthValidateEmptyFlags(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "auth", "validate", "--apikey", "", "--client-id", "") assertError(t, err, commands.FailedAuthError) @@ -104,6 +108,7 @@ func TestAuthValidateWithEmptyAuthenticationPath(t *testing.T) { } func TestAuthValidateOnlyAPIKey(t *testing.T) { + t.Parallel() validateCommand, buffer := createRedirectedTestCommand(t) err := execute(validateCommand, "auth", "validate", "--base-uri", "", "--client-id", "", "--client-secret", "") assertSuccessAuthentication(t, err, buffer, "") @@ -111,6 +116,7 @@ func TestAuthValidateOnlyAPIKey(t *testing.T) { // Register with empty username, password or role func TestAuthRegisterWithEmptyParameters(t *testing.T) { + t.Parallel() assertRequiredParameter( t, "Please provide username flag", "auth", "register", @@ -138,6 +144,7 @@ func TestAuthRegisterWithEmptyParameters(t *testing.T) { // Register with credentials and validate the obtained id/secret pair func TestAuthRegister(t *testing.T) { + t.Parallel() registerCommand, _ := createRedirectedTestCommand(t) _ = execute( @@ -153,6 +160,7 @@ func TestAuthRegister(t *testing.T) { } func TestFailProxyAuth(t *testing.T) { + t.Parallel() proxyUser := viper.GetString(ProxyUserEnv) proxyPort := viper.GetInt(ProxyPortEnv) proxyHost := viper.GetString(ProxyHostEnv) diff --git a/test/integration/bfl_test.go b/test/integration/bfl_test.go index a45176e3a..e08e0fb55 100644 --- a/test/integration/bfl_test.go +++ b/test/integration/bfl_test.go @@ -29,6 +29,7 @@ func TestRunGetBflByScanIdAndQueryId(t *testing.T) { } func TestRunGetBflWithInvalidScanIDandQueryID(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "results", "bfl", diff --git a/test/integration/chat_test.go b/test/integration/chat_test.go index eb0cfd7f6..263043051 100644 --- a/test/integration/chat_test.go +++ b/test/integration/chat_test.go @@ -19,6 +19,7 @@ const ( ) func TestChatKicsInvalidAPIKey(t *testing.T) { + t.Parallel() args := []string{ "chat", "kics", "--conversation-id", uuid.New().String(), @@ -37,6 +38,7 @@ func TestChatKicsInvalidAPIKey(t *testing.T) { } func TestChatSastInvalidAPIKey(t *testing.T) { + t.Parallel() args := []string{ "chat", "sast", "--chat-apikey", "invalidApiKey", @@ -52,6 +54,7 @@ func TestChatSastInvalidAPIKey(t *testing.T) { } func TestChatKicsAzureAIInvalidAPIKey(t *testing.T) { + t.Parallel() t.Skip("Skipping this test since not all services are deployed to production yet") createASTIntegrationTestCommand(t) mockConfig := []*wrappers.TenantConfigurationResponse{ diff --git a/test/integration/configuration_test.go b/test/integration/configuration_test.go index d38c91faa..ee32f24d0 100644 --- a/test/integration/configuration_test.go +++ b/test/integration/configuration_test.go @@ -15,6 +15,7 @@ import ( const filePath = "data/config.yaml" func TestLoadConfiguration_EnvVarConfigFilePath(t *testing.T) { + t.Parallel() os.Setenv("CX_CONFIG_FILE_PATH", filePath) defer os.Unsetenv("CX_CONFIG_FILE_PATH") @@ -24,6 +25,7 @@ func TestLoadConfiguration_EnvVarConfigFilePath(t *testing.T) { } func TestLoadConfiguration_FileNotFound(t *testing.T) { + t.Parallel() os.Setenv("CX_CONFIG_FILE_PATH", "data/nonexistent_config.yaml") defer os.Unsetenv("CX_CONFIG_FILE_PATH") @@ -33,6 +35,7 @@ func TestLoadConfiguration_FileNotFound(t *testing.T) { assert.ErrorContains(t, err, "The specified file does not exist") } func TestLoadConfiguration_ValidDirectory(t *testing.T) { + t.Parallel() validDirPath := "data" os.Setenv("CX_CONFIG_FILE_PATH", validDirPath) defer os.Unsetenv("CX_CONFIG_FILE_PATH") @@ -76,16 +79,19 @@ func TestSetConfigProperty_EnvVarConfigFilePath(t *testing.T) { } func TestLoadConfiguration_ConfigFilePathFlag(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "configure", "show", "--config-file-path", filePath) assert.NilError(t, err) } func TestLoadConfiguration_ConfigFilePathFlagValidDirectory(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "configure", "show", "--config-file-path", "data") assert.ErrorContains(t, err, "The specified path points to a directory, not a file.") } func TestLoadConfiguration_ConfigFilePathFlagFileNotFound(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "configure", "show", "--config-file-path", "data/nonexistent_config.yaml") assert.ErrorContains(t, err, "The specified file does not exist.") } diff --git a/test/integration/container_empty_folder_test.go b/test/integration/container_empty_folder_test.go index 07334373d..0acee7541 100644 --- a/test/integration/container_empty_folder_test.go +++ b/test/integration/container_empty_folder_test.go @@ -12,6 +12,7 @@ import ( // TestContainerScan_EmptyFolderWithExternalImages tests scanning with empty folders and external container images func TestContainerScan_EmptyFolderWithExternalImages(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -29,6 +30,7 @@ func TestContainerScan_EmptyFolderWithExternalImages(t *testing.T) { // TestContainerScan_EmptyFolderWithMultipleExternalImages tests scanning empty folder with multiple external images func TestContainerScan_EmptyFolderWithMultipleExternalImages(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -46,6 +48,7 @@ func TestContainerScan_EmptyFolderWithMultipleExternalImages(t *testing.T) { // TestContainerScan_EmptyFolderWithExternalImagesAndDebug tests with debug flag enabled func TestContainerScan_EmptyFolderWithExternalImagesAndDebug(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -64,6 +67,7 @@ func TestContainerScan_EmptyFolderWithExternalImagesAndDebug(t *testing.T) { // TestContainerScan_EmptyFolderWithComplexImageNames tests empty folder with complex image names func TestContainerScan_EmptyFolderWithComplexImageNames(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -81,6 +85,7 @@ func TestContainerScan_EmptyFolderWithComplexImageNames(t *testing.T) { // TestContainerScan_EmptyFolderWithRegistryImages tests empty folder with registry-prefixed images func TestContainerScan_EmptyFolderWithRegistryImages(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -98,6 +103,7 @@ func TestContainerScan_EmptyFolderWithRegistryImages(t *testing.T) { // TestContainerScan_EmptyFolderInvalidImageShouldFail tests that validation still works with empty folders func TestContainerScan_EmptyFolderInvalidImageShouldFail(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", @@ -115,6 +121,7 @@ func TestContainerScan_EmptyFolderInvalidImageShouldFail(t *testing.T) { // TestContainerScan_EmptyFolderMixedValidInvalidImages tests mixed valid/invalid images with empty folder func TestContainerScan_EmptyFolderMixedValidInvalidImages(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) testArgs := []string{ "scan", "create", diff --git a/test/integration/container_images_validation_test.go b/test/integration/container_images_validation_test.go index ebe23f865..d59a931be 100644 --- a/test/integration/container_images_validation_test.go +++ b/test/integration/container_images_validation_test.go @@ -15,6 +15,7 @@ import ( // TestContainerImageValidation_ValidFormats tests that valid container image formats are accepted func TestContainerImageValidation_ValidFormats(t *testing.T) { + t.Parallel() tests := []struct { name string imageFormat string @@ -68,6 +69,7 @@ func TestContainerImageValidation_ValidFormats(t *testing.T) { // TestContainerImageValidation_InvalidFormats tests that invalid container image formats are rejected func TestContainerImageValidation_InvalidFormats(t *testing.T) { + t.Parallel() tests := []struct { name string imageFormat string @@ -123,6 +125,7 @@ func TestContainerImageValidation_InvalidFormats(t *testing.T) { // TestContainerImageValidation_MultipleImagesValidation tests validation with multiple container images func TestContainerImageValidation_MultipleImagesValidation(t *testing.T) { + t.Parallel() tests := []struct { name string imageList string @@ -182,6 +185,7 @@ func TestContainerImageValidation_MultipleImagesValidation(t *testing.T) { // TestContainerImageValidation_TarFiles tests validation of .tar file references func TestContainerImageValidation_TarFiles(t *testing.T) { + t.Parallel() // Create a temporary .tar file for testing tempDir := t.TempDir() emptyTarFile := filepath.Join(tempDir, "test-image.tar") @@ -239,6 +243,7 @@ func TestContainerImageValidation_TarFiles(t *testing.T) { // TestContainerImageValidation_MixedTarAndRegularImages tests mixing .tar files with regular images func TestContainerImageValidation_MixedTarAndRegularImages(t *testing.T) { + t.Parallel() // Create a temporary .tar file for testing // Note: An empty tar file is NOT a valid container image tempDir := t.TempDir() diff --git a/test/integration/container_scan_edge_cases_test.go b/test/integration/container_scan_edge_cases_test.go index d8a033fce..ea30dd35d 100644 --- a/test/integration/container_scan_edge_cases_test.go +++ b/test/integration/container_scan_edge_cases_test.go @@ -14,6 +14,7 @@ import ( // TestContainerScan_ErrorHandling_InvalidAndValidScenarios tests error handling improvements func TestContainerScan_ErrorHandling_InvalidAndValidScenarios(t *testing.T) { + t.Parallel() t.Run("ValidScanWithAllParameters", func(t *testing.T) { createASTIntegrationTestCommand(t) testArgs := []string{ @@ -47,6 +48,7 @@ func TestContainerScan_ErrorHandling_InvalidAndValidScenarios(t *testing.T) { // TestContainerScan_TarFileValidation tests .tar file validation scenarios func TestContainerScan_TarFileValidation(t *testing.T) { + t.Parallel() tempDir := t.TempDir() t.Run("EmptyTarFile", func(t *testing.T) { @@ -112,6 +114,7 @@ func TestContainerScan_TarFileValidation(t *testing.T) { // TestContainerScan_SpecialCharactersInImageNames tests handling of special characters func TestContainerScan_SpecialCharactersInImageNames(t *testing.T) { + t.Parallel() tests := []struct { name string imageName string @@ -177,6 +180,7 @@ func TestContainerScan_SpecialCharactersInImageNames(t *testing.T) { // TestContainerScan_ImageTagVariations tests different tag formats func TestContainerScan_ImageTagVariations(t *testing.T) { + t.Parallel() tests := []struct { name string imageName string @@ -254,6 +258,7 @@ func TestContainerScan_ImageTagVariations(t *testing.T) { // TestContainerScan_BoundaryConditions tests boundary conditions func TestContainerScan_BoundaryConditions(t *testing.T) { + t.Parallel() t.Run("SingleCharacterImageName", func(t *testing.T) { createASTIntegrationTestCommand(t) testArgs := []string{ @@ -308,6 +313,7 @@ func TestContainerScan_BoundaryConditions(t *testing.T) { // TestContainerScan_CombinedWithOtherScanTypes tests container scans combined with other scan types func TestContainerScan_CombinedWithOtherScanTypes(t *testing.T) { + t.Parallel() t.Run("ContainerAndIaC", func(t *testing.T) { createASTIntegrationTestCommand(t) testArgs := []string{ diff --git a/test/integration/containers-realtime_test.go b/test/integration/containers-realtime_test.go index 4508b041f..945022b20 100644 --- a/test/integration/containers-realtime_test.go +++ b/test/integration/containers-realtime_test.go @@ -12,6 +12,7 @@ import ( ) func TestContainersRealtimeScan_PositiveDockerfile_Success(t *testing.T) { + t.Parallel() t.Skip("Skipping this test till the RT api for containers will deploy to DEU ENV") configuration.LoadConfiguration() args := []string{ @@ -38,6 +39,7 @@ func TestContainersRealtimeScan_PositiveDockerfile_Success(t *testing.T) { } func TestContainersRealtimeScan_EmptyDockerfile_SuccessWithEmptyResponse(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ "scan", "containers-realtime", diff --git a/test/integration/feature-flags_test.go b/test/integration/feature-flags_test.go index 08b26f26d..941960df7 100644 --- a/test/integration/feature-flags_test.go +++ b/test/integration/feature-flags_test.go @@ -18,6 +18,7 @@ type MockFeatureFlagsWrapper struct { } func Test_HandleFeatureFlags_WhenCalled_ThenNoErrorAndCacheNotEmpty(t *testing.T) { + t.Parallel() createASTIntegrationTestCommand(t) featureFlagsPath := viper.GetString(commonParams.FeatureFlagsKey) featureFlagsWrapper := wrappers.NewFeatureFlagsHTTPWrapper(featureFlagsPath) diff --git a/test/integration/iac-realtime_test.go b/test/integration/iac-realtime_test.go index 705655030..0ef876356 100644 --- a/test/integration/iac-realtime_test.go +++ b/test/integration/iac-realtime_test.go @@ -32,6 +32,7 @@ func safeRemoveFile(path string) { } func TestIacRealtimeScan_TerraformFile_Success(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -61,6 +62,7 @@ func TestIacRealtimeScan_TerraformFile_Success(t *testing.T) { } func TestIacRealtimeScan_DockerFile_Success(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -94,6 +96,7 @@ func TestIacRealtimeScan_DockerFile_Success(t *testing.T) { } func TestIacRealtimeScan_YamlConfigFile_Success(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -116,6 +119,7 @@ func TestIacRealtimeScan_YamlConfigFile_Success(t *testing.T) { } func TestIacRealtimeScan_EmptyDockerFile_Success(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -137,6 +141,7 @@ func TestIacRealtimeScan_EmptyDockerFile_Success(t *testing.T) { } func TestIacRealtimeScan_NonExistentFile_ShouldFail(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -151,6 +156,7 @@ func TestIacRealtimeScan_NonExistentFile_ShouldFail(t *testing.T) { } func TestIacRealtimeScan_UnsupportedFileExtension_ShouldFail(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() // Create a temporary file with unsupported extension @@ -174,6 +180,7 @@ func TestIacRealtimeScan_UnsupportedFileExtension_ShouldFail(t *testing.T) { } func TestIacRealtimeScan_MissingSourceFlag_ShouldFail(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ @@ -187,6 +194,7 @@ func TestIacRealtimeScan_MissingSourceFlag_ShouldFail(t *testing.T) { } func TestIacRealtimeScan_WithIgnoredFilePath_Success(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() // Create a temporary ignored file @@ -217,6 +225,7 @@ func TestIacRealtimeScan_WithIgnoredFilePath_Success(t *testing.T) { } func TestIacRealtimeScan_ResultsValidation_DetailedCheck(t *testing.T) { + t.Parallel() configuration.LoadConfiguration() args := []string{ diff --git a/test/integration/import_test.go b/test/integration/import_test.go index 4a6cf55a3..f04e396f2 100644 --- a/test/integration/import_test.go +++ b/test/integration/import_test.go @@ -12,6 +12,7 @@ import ( ) func TestImport_ImportSarifFileWithCorrectFlags_CreateImportSuccessfully(t *testing.T) { + t.Parallel() projectId, projectName := createProject(t, nil, nil) defer deleteProject(t, projectId) @@ -27,6 +28,7 @@ func TestImport_ImportSarifFileWithCorrectFlags_CreateImportSuccessfully(t *test } func TestImport_ImportSarifFileWithCorrectFlagsZipFileExtention_CreateImportSuccessfully(t *testing.T) { + t.Parallel() projectId, projectName := createProject(t, nil, nil) defer deleteProject(t, projectId) @@ -100,6 +102,7 @@ func TestImport_MissingImportFlag_ImportFailWithCorrectMessage(t *testing.T) { } func TestGetProjectNameFunction_ProjectNameValueIsEmpty_ReturnRelevantError(t *testing.T) { + t.Parallel() args := []string{ "utils", "import", diff --git a/test/integration/learnmore_test.go b/test/integration/learnmore_test.go index 284374a73..ac691af3a 100644 --- a/test/integration/learnmore_test.go +++ b/test/integration/learnmore_test.go @@ -11,6 +11,7 @@ import ( ) func TestGetLearnMoreInformationFailure(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", "learn-more", flag(params.QueryIDFlag), "abcd", @@ -19,6 +20,7 @@ func TestGetLearnMoreInformationFailure(t *testing.T) { } func TestGetLearnMoreInformationFailureMissingQueryId(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", "learn-more", flag(params.FormatFlag), "json") @@ -26,6 +28,7 @@ func TestGetLearnMoreInformationFailureMissingQueryId(t *testing.T) { } func TestGetLearnMoreInformationSuccessCaseJson(t *testing.T) { + t.Parallel() _ = viper.BindEnv("QUERY_ID") queryID := viper.GetString("QUERY_ID") if queryID == "" { @@ -39,6 +42,7 @@ func TestGetLearnMoreInformationSuccessCaseJson(t *testing.T) { } func TestGetLearnMoreInformationSuccessCaseConsole(t *testing.T) { + t.Parallel() _ = viper.BindEnv("QUERY_ID") queryID := viper.GetString("QUERY_ID") if queryID == "" { diff --git a/test/integration/logs_test.go b/test/integration/logs_test.go index 2d1cb357c..4efa4eea1 100644 --- a/test/integration/logs_test.go +++ b/test/integration/logs_test.go @@ -10,6 +10,7 @@ import ( ) func Test_DownloadScan_Logs_Success(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(commonParams.ProjectName), GenerateRandomProjectNameForScan(), @@ -28,6 +29,7 @@ func Test_DownloadScan_Logs_Success(t *testing.T) { } func Test_DownloadScan_Logs_Failed(t *testing.T) { + t.Parallel() args1 := []string{ "scan", "logs", flag(commonParams.ScanIDFlag), "fake-scan-id", flag(commonParams.ScanTypeFlag), commonParams.SastType, } diff --git a/test/integration/pr_test.go b/test/integration/pr_test.go index 83f14f72d..99cdc9817 100644 --- a/test/integration/pr_test.go +++ b/test/integration/pr_test.go @@ -144,6 +144,7 @@ func TestPRGithubDecoration_WhenUseCodeRepositoryFlag_ShouldSuccess(t *testing.T } func TestPRGithubDecorationFailure(t *testing.T) { + t.Parallel() args := []string{ "utils", "pr", @@ -229,6 +230,7 @@ func TestPRGitlabDecoration_WhenUseCodeRepositoryFlag_ShouldSuccess(t *testing.T } func TestPRGitlabDecorationFailure(t *testing.T) { + t.Parallel() args := []string{ "utils", @@ -312,6 +314,7 @@ func TestPRAzureDecoration_WhenUseCodeRepositoryFlag_ShouldSuccess(t *testing.T) } func TestPRAzureDecorationFailure(t *testing.T) { + t.Parallel() args := []string{ "utils", @@ -447,6 +450,7 @@ func TestPRBBOnCloudDecorationSuccessCase(t *testing.T) { } func TestPRBBBDecorationFailure(t *testing.T) { + t.Parallel() args := []string{ "utils", "pr", diff --git a/test/integration/pre-receive_test.go b/test/integration/pre-receive_test.go index 99f69aa7c..e94dbc8dc 100644 --- a/test/integration/pre-receive_test.go +++ b/test/integration/pre-receive_test.go @@ -271,6 +271,7 @@ func TestPreReceive_IgnoreFolderExclusion_ConfigFile(t *testing.T) { } func TestPre_Receive_Validate_Command_success(t *testing.T) { + t.Parallel() args := []string{ "hooks", "pre-receive", diff --git a/test/integration/predicate_test.go b/test/integration/predicate_test.go index 1e925e6ed..a6c336c2c 100644 --- a/test/integration/predicate_test.go +++ b/test/integration/predicate_test.go @@ -99,6 +99,7 @@ func TestSastUpdateAndGetPredicatesForSimilarityId(t *testing.T) { } func TestGetAndUpdatePredicateWithInvalidScannerType(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "triage", "update", flag(params.ProjectIDFlag), "1234", @@ -125,6 +126,7 @@ func TestGetAndUpdatePredicateWithInvalidScannerType(t *testing.T) { } func TestPredicateWithInvalidValues(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "triage", "update", diff --git a/test/integration/project_test.go b/test/integration/project_test.go index cf6e73d19..e5f6c5888 100644 --- a/test/integration/project_test.go +++ b/test/integration/project_test.go @@ -34,6 +34,7 @@ const SSHKeyFilePath = "ssh-key-file.txt" // - Delete the created project // - Get and assert the project was deleted func TestProjectsE2E(t *testing.T) { + t.Parallel() projectID, _ := createProject(t, Tags, Groups) response := listProjectByID(t, projectID) @@ -54,6 +55,7 @@ func TestProjectsE2E(t *testing.T) { } func TestGetProjectByTagsFilter_whenProjectHasNoneTags_shouldReturnProjectWithNoTags(t *testing.T) { + t.Parallel() projectID, _ := createProject(t, nil, nil) defer deleteProject(t, projectID) @@ -82,6 +84,7 @@ func assertTagsAndGroups(t *testing.T, project wrappers.ProjectResponseModel, gr // Create a project with empty project name should fail func TestCreateEmptyProjectName(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "project", "create", flag(params.FormatFlag), @@ -103,6 +106,7 @@ func TestCreateAlreadyExistingProject(t *testing.T) { } func TestProjectCreate_ApplicationDoesntExist_FailAndReturnErrorMessage(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "project", "create", flag(params.FormatFlag), @@ -114,6 +118,7 @@ func TestProjectCreate_ApplicationDoesntExist_FailAndReturnErrorMessage(t *testi } func TestProjectCreate_ApplicationExists_CreateProjectSuccessfully(t *testing.T) { + t.Parallel() err, outBuffer := executeCommand( t, "project", "create", flag(params.FormatFlag), @@ -129,6 +134,7 @@ func TestProjectCreate_ApplicationExists_CreateProjectSuccessfully(t *testing.T) } func TestCreateWithInvalidGroup(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "project", "create", flag(params.FormatFlag), printer.FormatJSON, flag(params.ProjectName), "project", flag(params.GroupList), "invalidGroup", @@ -159,6 +165,7 @@ func TestCreateProjectWhenUserdoes_not_have_groups_permission(t *testing.T) { } func TestCreateProjectWhenUserdoes_not_have_groups_permission_butonlyAM1_is_On(t *testing.T) { + t.Parallel() if !isFFEnabled(t, "ACCESS_MANAGEMENT_ENABLED") || (isFFEnabled(t, "GROUPS_VALIDATION_ENABLED") && isFFEnabled(t, "ACCESS_MANAGEMENT_ENABLED")) { t.Skip("ACCESS_MANAGEMENT_ENABLED FFs are not enabled... Skipping test") } @@ -185,6 +192,7 @@ func TestCreateProjectWhenUserdoes_not_have_groups_permission_butonlyAM1_is_On(t } func TestProjectCreate_WhenCreatingProjectWithExistingName_FailProjectCreation(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "project", "create", flag(params.FormatFlag), @@ -313,6 +321,7 @@ func showProject(t *testing.T, projectID string) wrappers.ProjectResponseModel { } func TestCreateProjectWithSSHKey(t *testing.T) { + t.Parallel() projectName := fmt.Sprintf("ast-cli-tests_%s", uuid.New().String()) + "_for_project" tagsStr := formatTags(Tags) @@ -368,6 +377,7 @@ func TestCreateProjectWithSSHKey(t *testing.T) { } func TestProjectShow_MainBranch_Exist(t *testing.T) { + t.Parallel() projectID, projectName := createProject(t, Tags, Groups) defer deleteProject(t, projectID) diff --git a/test/integration/rate-limit_test.go b/test/integration/rate-limit_test.go index 05a0efcbb..467ac6902 100644 --- a/test/integration/rate-limit_test.go +++ b/test/integration/rate-limit_test.go @@ -54,25 +54,31 @@ func runRateLimitTest(t *testing.T, config *wrappers.SCMRateLimitConfig, repeatC } func TestGitHubRateLimit_SuccessAfterRetryOne(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.GitHubRateLimitConfig, 429, 1, "X-RateLimit-Reset") } func TestGitHubRateLimit_SuccessAfterRetryTwo(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.GitHubRateLimitConfig, 429, 2, "X-RateLimit-Reset") } func TestGitHubRateLimit_SuccessAfterRetryThree(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.GitHubRateLimitConfig, 403, 3, "X-RateLimit-Reset") } func TestGitLabRateLimit_SuccessAfterRetryOne(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.GitLabRateLimitConfig, 429, 1, "RateLimit-Reset") } func TestBitBucketRateLimit_SuccessAfterRetryOne(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.BitbucketRateLimitConfig, 429, 1, "X-RateLimit-Reset") } func TestAzureRateLimit_SuccessAfterRetryOne(t *testing.T) { + t.Parallel() runRateLimitTest(t, wrappers.AzureRateLimitConfig, 429, 1, "X-Ratelimit-Reset") } diff --git a/test/integration/result_test.go b/test/integration/result_test.go index ce09dca46..7153b595c 100644 --- a/test/integration/result_test.go +++ b/test/integration/result_test.go @@ -35,6 +35,7 @@ const ( ) func TestResultsExitCode_OnSendingFakeScanId_ShouldReturnNotFoundError(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) scansPath := viper.GetString(params.ScansPathKey) scansWrapper := wrappers.NewHTTPScansWrapper(scansPath) @@ -58,6 +59,7 @@ func TestResultsExitCode_OnSuccessfulScan_ShouldReturnStatusCompleted(t *testing } func TestResultsExitCode_NoScanIdSent_FailCommandWithError(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) args := []string{ "results", "exit-code", @@ -69,6 +71,7 @@ func TestResultsExitCode_NoScanIdSent_FailCommandWithError(t *testing.T) { } func TestResultsExitCode_FakeScanIdSent_FailCommandWithError(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) args := []string{ "results", "exit-code", @@ -176,6 +179,7 @@ func assertGlResultFilesCreated(t *testing.T) { } func TestResultsShowParamFailed(t *testing.T) { + t.Parallel() args := []string{ "results", "show", @@ -186,6 +190,7 @@ func TestResultsShowParamFailed(t *testing.T) { } func TestCodeBashingParamFailed(t *testing.T) { + t.Parallel() args := []string{ "results", "codebashing", @@ -196,6 +201,7 @@ func TestCodeBashingParamFailed(t *testing.T) { } func TestCodeBashingList(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Getting results should pass", @@ -213,6 +219,7 @@ func TestCodeBashingList(t *testing.T) { } func TestCodeBashingListJson(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Getting results should pass", @@ -231,6 +238,7 @@ func TestCodeBashingListJson(t *testing.T) { } func TestCodeBashingListTable(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Getting results should pass", @@ -245,6 +253,7 @@ func TestCodeBashingListTable(t *testing.T) { } func TestCodeBashingListEmpty(t *testing.T) { + t.Parallel() args := []string{ "results", "codebashing", @@ -258,6 +267,7 @@ func TestCodeBashingListEmpty(t *testing.T) { } func TestCodeBashingFailedListingAuth(t *testing.T) { + t.Parallel() args := []string{ "results", "codebashing", @@ -416,6 +426,7 @@ func TestResultsGeneratingSBOM(t *testing.T) { } func TestResultsWrongScanID(t *testing.T) { + t.Parallel() args := []string{ "results", "show", flag(params.ScanIDFlag), "wrong", @@ -538,6 +549,7 @@ func TestResultsGeneratingJsonReportWithSeverityHighAndWithoutNotExploitable(t * } func TestResultExcludeNotExploitableFailScanId(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) args := []string{ "results", "show", @@ -655,6 +667,7 @@ func readAndUnmarshalFile(t *testing.T, path string, v interface{}) { } func TestRiskManagementResults_ReturnResults(t *testing.T) { + t.Parallel() projectName := GenerateRandomProjectNameForScan() _ = executeCmdNilAssertion( t, "Create project should pass", diff --git a/test/integration/root_test.go b/test/integration/root_test.go index 13a229f89..91a239dda 100644 --- a/test/integration/root_test.go +++ b/test/integration/root_test.go @@ -126,16 +126,19 @@ func isFFEnabled(t *testing.T, featureFlag string) bool { } func TestSetLogOutputFromFlag_InvalidDir(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "auth", "validate", "--log-file", "/custom/path") assert.ErrorContains(t, err, "the specified directory path does not exist.") } func TestSetLogOutputFromFlag_EmptyDirPath(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "auth", "validate", "--log-file", "") assert.ErrorContains(t, err, "flag needs an argument") } func TestSetLogOutputFromFlag_DirPathIsFilePath(t *testing.T) { + t.Parallel() tempFile, _ := os.CreateTemp("", "ast-cli.txt") defer func(path string) { _ = os.Remove(path) @@ -145,6 +148,7 @@ func TestSetLogOutputFromFlag_DirPathIsFilePath(t *testing.T) { } func TestSetLogOutputFromFlag_DirPathPermissionDenied(t *testing.T) { + t.Parallel() tempDir, _ := os.MkdirTemp("", "tempdir") _ = os.Chmod(tempDir, 0000) defer func(path string) { @@ -155,6 +159,7 @@ func TestSetLogOutputFromFlag_DirPathPermissionDenied(t *testing.T) { } func TestSetLogOutputFromFlag_DirPath_Success(t *testing.T) { + t.Parallel() tempDir, _ := os.MkdirTemp("", "tempdir") defer func(path string) { _ = os.RemoveAll(path) @@ -164,6 +169,7 @@ func TestSetLogOutputFromFlag_DirPath_Success(t *testing.T) { } func TestSetLogOutputFromFlag_DirPath_Console_Success(t *testing.T) { + t.Parallel() tempDir, _ := os.MkdirTemp("", "tempdir") defer func(path string) { _ = os.RemoveAll(path) diff --git a/test/integration/scan_test.go b/test/integration/scan_test.go index 6e0128832..499e671ed 100644 --- a/test/integration/scan_test.go +++ b/test/integration/scan_test.go @@ -283,6 +283,7 @@ func setEnvVars(envVars map[string]string) { // Create a scan with an empty project name // Assert the scan fails with correct message func TestScanCreateEmptyProjectName(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ProjectName), "", @@ -296,6 +297,7 @@ func TestScanCreateEmptyProjectName(t *testing.T) { } func TestScanCreate_ExistingApplicationAndExistingProject_CreateScanSuccessfully(t *testing.T) { + t.Parallel() _, projectName := createNewProject(t, nil, nil, GenerateRandomProjectNameForScan()) args := []string{ "scan", "create", @@ -323,6 +325,7 @@ func TestScanCreate_FolderWithSymbolicLinkWithAbsolutePath_CreateScanSuccessfull } func TestScanCreate_IaCWithPresetID_CreateScanSuccessfully(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) // The createPreset(...) function requires these feature flags to be ON. @@ -383,6 +386,7 @@ func TestScanCreate_FolderWithSymbolicLinkWithRelativePath_CreateScanSuccessfull } func TestScanCreate_ExistingApplicationAndNotExistingProject_CreatingNewProjectAndCreateScanSuccessfully(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ApplicationName), "my-application", @@ -398,6 +402,7 @@ func TestScanCreate_ExistingApplicationAndNotExistingProject_CreatingNewProjectA } func TestScanCreate_WithNewProjectAndApplicationDoesntExist_ShouldFailScanWithError(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ApplicationName), "application-that-doesnt-exist", @@ -583,6 +588,7 @@ func TestInvalidSource(t *testing.T) { } func TestScanShowRequiredOrInvalidScanId(t *testing.T) { + t.Parallel() args := []string{scanCommand, "show", flag(params.ScanIDQueryParam), ""} err, _ := executeCommand(t, args...) assert.Assert(t, strings.Contains(err.Error(), "Failed showing a scan: Please provide a scan ID")) @@ -592,6 +598,7 @@ func TestScanShowRequiredOrInvalidScanId(t *testing.T) { } func TestRequiredScanIdToGetScanShow(t *testing.T) { + t.Parallel() args := []string{scanCommand, "workflow", flag(params.ScanIDQueryParam), ""} err, _ := executeCommand(t, args...) assert.Assert(t, strings.Contains(err.Error(), "Please provide a scan ID")) @@ -1110,6 +1117,7 @@ func pollScanUntilStatus(t *testing.T, scanID string, requiredStatus wrappers.Sc // Get a scan workflow and assert it fails func TestScanWorkflow(t *testing.T) { + t.Parallel() scanID := "fake-scan-id" args := []string{ "scan", "workflow", @@ -1313,6 +1321,7 @@ func TestCreateScanFilterZipFile(t *testing.T) { } func TestRunKicsScan(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Runing KICS real-time command should pass", scanCommand, kicsRealtimeCommand, @@ -1323,6 +1332,7 @@ func TestRunKicsScan(t *testing.T) { } func TestRunKicsScanWithouResults(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Runing KICS real-time command should pass", scanCommand, kicsRealtimeCommand, @@ -1332,6 +1342,7 @@ func TestRunKicsScanWithouResults(t *testing.T) { } func TestRunKicsScanWithoutFileSources(t *testing.T) { + t.Parallel() args := []string{ scanCommand, kicsRealtimeCommand, } @@ -1340,6 +1351,7 @@ func TestRunKicsScanWithoutFileSources(t *testing.T) { } func TestRunKicsScanWithEngine(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Runing KICS real-time with engine command should pass", scanCommand, kicsRealtimeCommand, @@ -1351,6 +1363,7 @@ func TestRunKicsScanWithEngine(t *testing.T) { } func TestRunKicsScanWithInvalidEngine(t *testing.T) { + t.Parallel() args := []string{ scanCommand, kicsRealtimeCommand, flag(params.KicsRealtimeFile), fileSourceValueVul, @@ -1362,6 +1375,7 @@ func TestRunKicsScanWithInvalidEngine(t *testing.T) { } func TestRunKicsScanWithAdditionalParams(t *testing.T) { + t.Parallel() outputBuffer := executeCmdNilAssertion( t, "Runing KICS real-time with additional params command should pass", scanCommand, kicsRealtimeCommand, @@ -1392,6 +1406,7 @@ func TestRunScaRealtimeScan(t *testing.T) { } func TestScaRealtimeRequiredAndWrongProjectDir(t *testing.T) { + t.Parallel() args := []string{scanCommand, "sca-realtime"} err, _ := executeCommand(t, args...) @@ -1815,6 +1830,7 @@ func TestCreateScanSBOMReportFormatWithoutSCA(t *testing.T) { } func TestScanWithPolicy(t *testing.T) { + t.Parallel() args := []string{scanCommand, "create", flag(params.ProjectName), "TiagoBaptista/testingCli/testingCli", flag(params.SourcesFlag), Zip, @@ -1826,6 +1842,7 @@ func TestScanWithPolicy(t *testing.T) { } func TestScanWithPolicyTimeout(t *testing.T) { + t.Parallel() args := []string{scanCommand, "create", flag(params.ProjectName), "TiagoBaptista/testingCli/testingCli", flag(params.SourcesFlag), Zip, @@ -2025,6 +2042,7 @@ func TestCreateScan_WithScanTypesScsAndScorecardEngineAndOnlyScorecardMissingRep } func TestScanListWithFilters(t *testing.T) { + t.Parallel() args := []string{ "scan", "list", flag(params.FilterFlag), "limit=100", @@ -2035,6 +2053,7 @@ func TestScanListWithFilters(t *testing.T) { } func TestScanListWithBigLimitAndOtherFilters(t *testing.T) { + t.Parallel() args := []string{ "scan", "list", flag(params.FilterFlag), "limit=10000,project-id=6cd7afbd-3d21-44b9-a72f-8a7eb351b5a5,branch=develop", @@ -2045,6 +2064,7 @@ func TestScanListWithBigLimitAndOtherFilters(t *testing.T) { } func TestScanListWithBigLimit(t *testing.T) { + t.Parallel() args := []string{ "scan", "list", flag(params.FilterFlag), "limit=5000", @@ -2075,6 +2095,7 @@ func validateCheckmarxDomains(t *testing.T, usedDomainsInTests []string) { } func TestCreateScan_TwoScansWithSameBranchNameWithWhiteSpace_Success(t *testing.T) { + t.Parallel() projectName := GenerateRandomProjectNameForScan() args := []string{ scanCommand, "create", @@ -2135,6 +2156,7 @@ func TestCreateAsyncScan_CallExportServiceBeforeScanFinishWithRetry_Success(t *t } func TestCreateScanWithResubmitFlag_ProjectNotExist_ScanCreatedSuccessfullyWithDefaultConfig(t *testing.T) { + t.Parallel() projectName := GenerateRandomProjectNameForScan() args := []string{ scanCommand, "create", @@ -2172,6 +2194,7 @@ func TestCreateAsyncScan_ChangedCachedTokenAndPollingScanStatus_Success(t *testi } func TestScanCreate_WithContainerFilterFlags_CreatingScanSuccessfully(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) var createdScan wrappers.ScanResponseModel var createdScanConfig wrappers.Config @@ -2213,6 +2236,7 @@ func TestScanCreate_WithContainerFilterFlags_CreatingScanSuccessfully(t *testing } func TestScanCreate_WithContainerFilterFlagsAndResubmitFlag_CreatingScanWithLatestScanConfigurationSuccessfully(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) var createdScan wrappers.ScanResponseModel @@ -2273,6 +2297,7 @@ func TestScanCreate_WithContainerFilterFlagsAndResubmitFlag_CreatingScanWithLate } func TestScanCreate_GitScanWithContainerResolveLocallyAndCustomImages_ShouldIncludeUserCustomImages(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) var createdScan wrappers.ScanResponseModel var createdScanConfig wrappers.Config @@ -2312,6 +2337,7 @@ func TestScanCreate_GitScanWithContainerResolveLocallyAndCustomImages_ShouldIncl } func TestScanCreate_UploadScanWithContainerResolveLocallyAndCustomImages_ShouldNotIncludeUserCustomImages(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) var createdScan wrappers.ScanResponseModel var createdScanConfig wrappers.Config @@ -2350,6 +2376,7 @@ func TestScanCreate_UploadScanWithContainerResolveLocallyAndCustomImages_ShouldN } func TestScanCreate_GitScanWithoutContainerResolveLocallyAndCustomImages_ShouldIncludeUserCustomImages(t *testing.T) { + t.Parallel() bindKeysToEnvAndDefault(t) var createdScan wrappers.ScanResponseModel var createdScanConfig wrappers.Config @@ -2629,6 +2656,7 @@ func TestContainerScan_DirectoryWithFilesAndFilters(t *testing.T) { } func TestCreateScan_SbomScanForInvalidScanTypes(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ProjectName), "random_proj", @@ -2644,6 +2672,7 @@ func TestCreateScan_SbomScanForInvalidScanTypes(t *testing.T) { } func TestCreateScan_SbomScanForInvalidFileExtension(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ProjectName), "random_proj", @@ -2659,6 +2688,7 @@ func TestCreateScan_SbomScanForInvalidFileExtension(t *testing.T) { } func TestCreateScan_SbomScanForNotExistingFile(t *testing.T) { + t.Parallel() args := []string{ "scan", "create", flag(params.ProjectName), "random_proj", @@ -2699,6 +2729,7 @@ func TestCreateScanFilterGitIgnoreFile_GitIgnoreExist(t *testing.T) { } func TestCreateScanWithExistingProjectAnd_AssignApplication(t *testing.T) { + t.Parallel() _, projectName := createNewProject(t, nil, nil, GenerateRandomProjectNameForScan()) args := []string{ diff --git a/test/integration/secrets-realtime_test.go b/test/integration/secrets-realtime_test.go index 9a4a99804..739ea6592 100644 --- a/test/integration/secrets-realtime_test.go +++ b/test/integration/secrets-realtime_test.go @@ -9,6 +9,7 @@ import ( ) func TestSecrets_RealtimeScan_TextFile_Success(t *testing.T) { + t.Parallel() args := []string{ "scan", "secrets-realtime", "-s", "data/secret-exposed.txt", flag(commonParams.IgnoredFilePathFlag), "", } @@ -17,6 +18,7 @@ func TestSecrets_RealtimeScan_TextFile_Success(t *testing.T) { } func TestSecrets_RealtimeScan_Empty_filePath_Fail(t *testing.T) { + t.Parallel() args := []string{ "scan", "secrets-realtime", "-s", "", flag(commonParams.IgnoredFilePathFlag), "", } diff --git a/test/integration/tenant_test.go b/test/integration/tenant_test.go index f5f27a771..b9657630d 100644 --- a/test/integration/tenant_test.go +++ b/test/integration/tenant_test.go @@ -10,6 +10,7 @@ import ( ) func TestGetTenantConfigurationSuccessCaseJson(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", "tenant", flag(params.FormatFlag), "json", @@ -18,6 +19,7 @@ func TestGetTenantConfigurationSuccessCaseJson(t *testing.T) { } func TestGetTenantConfigurationSuccessCaseList(t *testing.T) { + t.Parallel() err, _ := executeCommand(t, "utils", "tenant") assert.NilError(t, err, "Must not fail") } diff --git a/test/integration/user-count-azure_test.go b/test/integration/user-count-azure_test.go index 1dddffc8f..0b17797ff 100644 --- a/test/integration/user-count-azure_test.go +++ b/test/integration/user-count-azure_test.go @@ -24,6 +24,7 @@ const ( ) func TestAzureUserCountOrgs(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -52,6 +53,7 @@ func TestAzureUserCountOrgs(t *testing.T) { } func TestAzureUserCountProjects(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -82,6 +84,7 @@ func TestAzureUserCountProjects(t *testing.T) { } func TestAzureUserCountRepos(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -114,6 +117,7 @@ func TestAzureUserCountRepos(t *testing.T) { } func TestAzureUserCountOrgsFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -129,6 +133,7 @@ func TestAzureUserCountOrgsFailed(t *testing.T) { } func TestAzureUserCountReposFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -148,6 +153,7 @@ func TestAzureUserCountReposFailed(t *testing.T) { } func TestAzureCountMultipleWorkspaceFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -169,6 +175,7 @@ func TestAzureCountMultipleWorkspaceFailed(t *testing.T) { } func TestAzureUserCountWrongToken(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -186,6 +193,7 @@ func TestAzureUserCountWrongToken(t *testing.T) { } func TestAzureUserCountWrongOrg(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, diff --git a/test/integration/user-count-bitbucket_test.go b/test/integration/user-count-bitbucket_test.go index a0faf282d..a34c8c070 100644 --- a/test/integration/user-count-bitbucket_test.go +++ b/test/integration/user-count-bitbucket_test.go @@ -24,6 +24,7 @@ const ( ) func TestBitbucketUserCountWorkspace(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -54,6 +55,7 @@ func TestBitbucketUserCountWorkspace(t *testing.T) { } func TestBitbucketUserCountRepos(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -86,6 +88,7 @@ func TestBitbucketUserCountRepos(t *testing.T) { } func TestBitbucketUserCountReposDebug(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -119,6 +122,7 @@ func TestBitbucketUserCountReposDebug(t *testing.T) { } func TestBitbucketCountWorkspaceFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -133,6 +137,7 @@ func TestBitbucketCountWorkspaceFailed(t *testing.T) { } func TestBitbucketCountRepoFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, @@ -149,6 +154,7 @@ func TestBitbucketCountRepoFailed(t *testing.T) { } func TestBitbucketCountMultipleWorkspaceFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, diff --git a/test/integration/user-count-github_test.go b/test/integration/user-count-github_test.go index 345d748c9..3dc6fe686 100644 --- a/test/integration/user-count-github_test.go +++ b/test/integration/user-count-github_test.go @@ -16,6 +16,7 @@ import ( ) func TestGitHubUserCount(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdWithTimeOutNilAssertion( t, @@ -45,6 +46,7 @@ func TestGitHubUserCount(t *testing.T) { } func TestGitHubUserCountRepos(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) buffer := executeCmdNilAssertion( t, @@ -75,6 +77,7 @@ func TestGitHubUserCountRepos(t *testing.T) { } func TestGitHubUserCountFailed(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) err, _ := executeCommand( t, diff --git a/test/integration/user-count-gitlab_test.go b/test/integration/user-count-gitlab_test.go index acb32200f..b87b6547e 100644 --- a/test/integration/user-count-gitlab_test.go +++ b/test/integration/user-count-gitlab_test.go @@ -19,6 +19,7 @@ const ( ) func TestGitLabUserCountOnlyUserProjects(t *testing.T) { + t.Parallel() buffer := executeCmdNilAssertion( t, "Counting contributors from gitlab user projects should pass", "utils", usercount.UcCommand, @@ -40,6 +41,7 @@ func TestGitLabUserCountOnlyUserProjects(t *testing.T) { } func TestGitLabUserCountOnlyGroup(t *testing.T) { + t.Parallel() buffer := executeCmdNilAssertion( t, "Counting contributors from gitlab group should pass", "utils", usercount.UcCommand, @@ -62,6 +64,7 @@ func TestGitLabUserCountOnlyGroup(t *testing.T) { } func TestGitLabUserCountOnlyProject(t *testing.T) { + t.Parallel() buffer := executeCmdNilAssertion( t, "Counting contributors from gitlab project should pass", "utils", usercount.UcCommand, @@ -84,6 +87,7 @@ func TestGitLabUserCountOnlyProject(t *testing.T) { } func TestGitLabUserCountBothProjectAndGroup(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", usercount.UcCommand, usercount.GitLabCommand, @@ -97,6 +101,7 @@ func TestGitLabUserCountBothProjectAndGroup(t *testing.T) { } func TestGitLabUserCountInvalidProject(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", usercount.UcCommand, usercount.GitLabCommand, @@ -109,6 +114,7 @@ func TestGitLabUserCountInvalidProject(t *testing.T) { } func TestGitLabUserCountInvalidGroup(t *testing.T) { + t.Parallel() err, _ := executeCommand( t, "utils", usercount.UcCommand, usercount.GitLabCommand, @@ -121,6 +127,7 @@ func TestGitLabUserCountInvalidGroup(t *testing.T) { } func TestGitLabUserCountBlankGroupValue(t *testing.T) { + t.Parallel() buffer := executeCmdNilAssertion( t, "Counting contributors from gitlab group should pass", "utils", usercount.UcCommand, @@ -143,6 +150,7 @@ func TestGitLabUserCountBlankGroupValue(t *testing.T) { } func TestGitLabUserCountBlankProjectValue(t *testing.T) { + t.Parallel() buffer := executeCmdNilAssertion( t, "Counting contributors from gitlab group should pass", "utils", usercount.UcCommand, diff --git a/test/integration/util_remediation_test.go b/test/integration/util_remediation_test.go index ce4dc0e40..30161b0ba 100644 --- a/test/integration/util_remediation_test.go +++ b/test/integration/util_remediation_test.go @@ -32,6 +32,7 @@ const ( ) func TestScaRemediation(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) executeCmdNilAssertion( t, @@ -49,6 +50,7 @@ func TestScaRemediation(t *testing.T) { } func TestScaRemediationUnsupported(t *testing.T) { + t.Parallel() args := []string{ utilsCommand, remediationCommand, @@ -66,6 +68,7 @@ func TestScaRemediationUnsupported(t *testing.T) { } func TestScaRemediationNotFound(t *testing.T) { + t.Parallel() args := []string{ utilsCommand, remediationCommand, @@ -83,6 +86,7 @@ func TestScaRemediationNotFound(t *testing.T) { } func TestKicsRemediation(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) abs, _ := filepath.Abs(kicsFileValue) executeCmdNilAssertion( @@ -99,6 +103,7 @@ func TestKicsRemediation(t *testing.T) { } func TestKicsRemediationSimilarityFilter(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) abs, _ := filepath.Abs(kicsFileValue) executeCmdNilAssertion( @@ -117,6 +122,7 @@ func TestKicsRemediationSimilarityFilter(t *testing.T) { } func TestKicsRemediationInvalidResults(t *testing.T) { + t.Parallel() abs, _ := filepath.Abs(kicsFileValue) args := []string{ utilsCommand, @@ -135,6 +141,7 @@ func TestKicsRemediationInvalidResults(t *testing.T) { } func TestKicsRemediationEngineFlag(t *testing.T) { + t.Parallel() _ = viper.BindEnv(pat) abs, _ := filepath.Abs(kicsFileValue) executeCmdNilAssertion( @@ -153,6 +160,7 @@ func TestKicsRemediationEngineFlag(t *testing.T) { } func TestKicsRemediationInvalidEngine(t *testing.T) { + t.Parallel() abs, _ := filepath.Abs(kicsFileValue) args := []string{ utilsCommand, diff --git a/test/integration/util_test.go b/test/integration/util_test.go index 3fcad3170..7d28ed4c0 100644 --- a/test/integration/util_test.go +++ b/test/integration/util_test.go @@ -15,6 +15,7 @@ const ( ) func TestMaskSecrets(t *testing.T) { + t.Parallel() executeCmdNilAssertion( t, "Remediating kics result", @@ -26,6 +27,7 @@ func TestMaskSecrets(t *testing.T) { } func TestFailedMaskSecrets(t *testing.T) { + t.Parallel() args := []string{ utilsCommand, maskCommand,