Skip to content

Commit c857a46

Browse files
Fix: incorrect total number of results (open-policy-agent#291)
1 parent ce5a2cc commit c857a46

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

acceptance.bats

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,3 +280,9 @@
280280
run ./conftest kubectl
281281
[ "$status" -eq 0 ]
282282
}
283+
284+
@test "The number of tests run is accurate" {
285+
run ./conftest test -p examples/kubernetes/policy examples/kubernetes/service.yaml --no-color
286+
[ "$status" -eq 0 ]
287+
[ "${lines[1]}" = "5 tests, 4 passed, 1 warning, 0 failures" ]
288+
}

internal/commands/test.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -298,12 +298,18 @@ func (t TestRun) runRules(ctx context.Context, namespace string, input interface
298298
var errors []Result
299299

300300
var rules []string
301+
var numberRules int = 0
301302
for _, module := range t.Compiler.Modules {
302-
for _, rule := range module.Rules {
303-
ruleName := rule.Head.Name.String()
304-
305-
if regex.MatchString(ruleName) && !stringInSlice(ruleName, rules) {
306-
rules = append(rules, ruleName)
303+
if strings.Split(module.Package.Path.String(), ".")[1] == namespace {
304+
for _, rule := range module.Rules {
305+
ruleName := rule.Head.Name.String()
306+
307+
if regex.MatchString(ruleName) {
308+
numberRules += 1
309+
if !stringInSlice(ruleName, rules) {
310+
rules = append(rules, ruleName)
311+
}
312+
}
307313
}
308314
}
309315
}
@@ -331,6 +337,10 @@ func (t TestRun) runRules(ctx context.Context, namespace string, input interface
331337
totalSuccesses = append(totalSuccesses, successes...)
332338
}
333339

340+
for i := len(totalErrors) + len(totalSuccesses); i < numberRules; i++ {
341+
totalSuccesses = append(totalSuccesses, Result{})
342+
}
343+
334344
return totalErrors, totalSuccesses, nil
335345
}
336346

0 commit comments

Comments
 (0)