diff --git a/internal/sarif/sarif_test.go b/internal/sarif/sarif_test.go index 9164df1f..a5e9810b 100644 --- a/internal/sarif/sarif_test.go +++ b/internal/sarif/sarif_test.go @@ -59,56 +59,57 @@ func TestCreateWithResults(t *testing.T) { []kubeaudit.Auditable{limitsAuditable}, limits.LimitsNotSet, "warning", - "Resource limits not set.", + "Resource limits not set", "https://github.com/Shopify/kubeaudit/blob/main/docs/auditors/limits.md", }, } for _, tc := range cases { - fixture := filepath.Join("fixtures", tc.file) - auditor, err := kubeaudit.New(tc.auditors) - require.NoError(t, err) - - manifest, openErr := os.Open(fixture) - require.NoError(t, openErr) - - defer manifest.Close() - - kubeAuditReport, err := auditor.AuditManifest(fixture, manifest) - require.NoError(t, err) - - sarifReport, err := Create(kubeAuditReport) - require.NoError(t, err) - - assert.Equal(t, "https://github.com/Shopify/kubeaudit", - *sarifReport.Runs[0].Tool.Driver.InformationURI) - - // verify that the rules have been added as per report findings - assert.Equal(t, tc.expectedRule, sarifReport.Runs[0].Tool.Driver.Rules[0].ID) - - var ruleNames []string - - // check for rules occurrences - for _, sarifRule := range sarifReport.Runs[0].Tool.Driver.Rules { - assert.Equal(t, []string{ - "security", - "kubernetes", - "infrastructure", - }, - sarifRule.Properties["tags"], - ) - - ruleNames = append(ruleNames, sarifRule.ID) - - assert.Contains(t, *sarifRule.Help.Text, tc.expectedURI) - } - - for _, sarifResult := range sarifReport.Runs[0].Results { - assert.Contains(t, ruleNames, *sarifResult.RuleID) - assert.Equal(t, tc.expectedErrorLevel, *sarifResult.Level) - assert.Contains(t, *sarifResult.Message.Text, tc.expectedMessage) - assert.Contains(t, "sarif/fixtures/"+tc.file, *sarifResult.Locations[0].PhysicalLocation.ArtifactLocation.URI) - } + t.Run(tc.file, func(t *testing.T) { + fixture := filepath.Join("fixtures", tc.file) + auditor, err := kubeaudit.New(tc.auditors) + require.NoError(t, err) + + manifest, openErr := os.Open(fixture) + require.NoError(t, openErr) + + defer manifest.Close() + + kubeAuditReport, err := auditor.AuditManifest(fixture, manifest) + require.NoError(t, err) + + sarifReport, err := Create(kubeAuditReport) + require.NoError(t, err) + + assert.Equal(t, "https://github.com/Shopify/kubeaudit", + *sarifReport.Runs[0].Tool.Driver.InformationURI) + + // verify that the rules have been added as per report findings + assert.Equal(t, tc.expectedRule, sarifReport.Runs[0].Tool.Driver.Rules[0].ID) + + var ruleNames []string + + // check for rules occurrences + for _, sarifRule := range sarifReport.Runs[0].Tool.Driver.Rules { + assert.Equal(t, []string{ + "security", + "kubernetes", + "infrastructure", + }, + sarifRule.Properties["tags"], + ) + + ruleNames = append(ruleNames, sarifRule.ID) + + assert.Contains(t, *sarifRule.Help.Text, tc.expectedURI) + } + for _, sarifResult := range sarifReport.Runs[0].Results { + assert.Contains(t, ruleNames, *sarifResult.RuleID) + assert.Equal(t, tc.expectedErrorLevel, *sarifResult.Level) + assert.Contains(t, *sarifResult.Message.Text, tc.expectedMessage) + assert.Contains(t, "sarif/fixtures/"+tc.file, *sarifResult.Locations[0].PhysicalLocation.ArtifactLocation.URI) + } + }) } } @@ -129,21 +130,23 @@ func TestValidate(t *testing.T) { } for _, tc := range cases { - var reportBytes bytes.Buffer + t.Run(tc.file, func(t *testing.T) { + var reportBytes bytes.Buffer - testSarif, err := ioutil.ReadFile("fixtures/" + tc.file) - require.NoError(t, err) + testSarif, err := ioutil.ReadFile("fixtures/" + tc.file) + require.NoError(t, err) - reportBytes.Write(testSarif) + reportBytes.Write(testSarif) - err, errs := validate(&reportBytes) - require.NoError(t, err) + err, errs := validate(&reportBytes) + require.NoError(t, err) - if !tc.shouldBeValid { - assert.True(t, len(errs) > 0) - } else { - assert.Len(t, errs, 0) - } + if !tc.shouldBeValid { + assert.True(t, len(errs) > 0) + } else { + assert.Len(t, errs, 0) + } + }) } } diff --git a/profile.out b/profile.out new file mode 100644 index 00000000..67503b3a --- /dev/null +++ b/profile.out @@ -0,0 +1,25 @@ +mode: atomic +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:15.71,18.16 2 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:23.2,29.57 4 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:34.2,34.33 1 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:85.2,88.16 3 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:92.2,93.16 2 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:97.2,97.19 1 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:101.2,101.20 1 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:18.16,20.3 1 0 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:29.57,32.3 2 4 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:34.33,43.9 5 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:47.3,68.41 4 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:72.3,82.24 4 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:43.9,45.4 1 5 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:68.41,70.4 1 1 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:88.16,90.3 1 0 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:93.16,95.3 1 0 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:97.19,99.3 1 0 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:106.69,111.8 4 7 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:115.2,117.16 2 7 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:121.2,121.20 1 7 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:125.2,125.29 1 1 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:111.8,113.3 1 7 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:117.16,119.3 1 0 +github.com/Shopify/kubeaudit/internal/sarif/sarif.go:121.20,123.3 1 6