fix usage of context

This commit is contained in:
Yann Hamon 2020-11-16 01:01:13 +01:00
parent f63d329742
commit b524ace87f
2 changed files with 13 additions and 8 deletions

View file

@ -85,7 +85,13 @@
@test "Fail when parsing a config that is missing a Kind" { @test "Fail when parsing a config that is missing a Kind" {
run bin/kubeconform -summary fixtures/missing_kind.yaml run bin/kubeconform -summary fixtures/missing_kind.yaml
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
[[ "$output" = *resource\ missing\ a\ Kind* ]] [[ "$output" == *"resource missing a Kind"* ]]
}
@test "Fail when parsing a config that is missing a Kind value" {
run bin/kubeconform -summary fixtures/missing_kind_value.yaml
[ "$status" -eq 1 ]
[[ "$output" == *"resource missing a Kind"* ]]
} }
@test "Fail when parsing a config with CRD" { @test "Fail when parsing a config with CRD" {
@ -136,7 +142,7 @@
@test "Fail early when passing a non valid -schema-location template" { @test "Fail early when passing a non valid -schema-location template" {
run bin/kubeconform -schema-location 'foo {{ .Foo }}' fixtures/valid.yaml run bin/kubeconform -schema-location 'foo {{ .Foo }}' fixtures/valid.yaml
[[ "$output" = failed\ initialising* ]] [[ "$output" == "failed initialising"* ]]
[[ `echo "$output" | wc -l` -eq 1 ]] [[ `echo "$output" | wc -l` -eq 1 ]]
[ "$status" -eq 1 ] [ "$status" -eq 1 ]
} }

View file

@ -12,7 +12,7 @@ import (
"github.com/yannh/kubeconform/pkg/validator" "github.com/yannh/kubeconform/pkg/validator"
) )
func processResults(ctx context.Context, o output.Output, validationResults <-chan validator.Result, exitOnError bool) <-chan bool { func processResults(cancel context.CancelFunc, o output.Output, validationResults <-chan validator.Result, exitOnError bool) <-chan bool {
success := true success := true
result := make(chan bool) result := make(chan bool)
@ -27,7 +27,7 @@ func processResults(ctx context.Context, o output.Output, validationResults <-ch
} }
} }
if success == false && exitOnError { if success == false && exitOnError {
ctx.Done() // early exit - signal to stop searching for resources cancel() // early exit - signal to stop searching for resources
break break
} }
} }
@ -36,7 +36,6 @@ func processResults(ctx context.Context, o output.Output, validationResults <-ch
} }
result <- success result <- success
close(result)
}() }()
return result return result
@ -79,8 +78,8 @@ func realMain() int {
} }
validationResults := make(chan validator.Result) validationResults := make(chan validator.Result)
ctx := context.Background() ctx, cancel := context.WithCancel(context.Background())
successChan := processResults(ctx, o, validationResults, cfg.ExitOnError) successChan := processResults(cancel, o, validationResults, cfg.ExitOnError)
var resourcesChan <-chan resource.Resource var resourcesChan <-chan resource.Resource
var errors <-chan error var errors <-chan error
@ -123,7 +122,7 @@ func realMain() int {
Status: validator.Error, Status: validator.Error,
} }
} }
ctx.Done() cancel()
} }
wg.Done() wg.Done()
}() }()