From b524ace87f68f58132ab2630853ac44b7a810add Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Mon, 16 Nov 2020 01:01:13 +0100 Subject: [PATCH] fix usage of context --- acceptance.bats | 10 ++++++++-- cmd/kubeconform/main.go | 11 +++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/acceptance.bats b/acceptance.bats index 4b67b78..287f22e 100755 --- a/acceptance.bats +++ b/acceptance.bats @@ -85,7 +85,13 @@ @test "Fail when parsing a config that is missing a Kind" { run bin/kubeconform -summary fixtures/missing_kind.yaml [ "$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" { @@ -136,7 +142,7 @@ @test "Fail early when passing a non valid -schema-location template" { run bin/kubeconform -schema-location 'foo {{ .Foo }}' fixtures/valid.yaml - [[ "$output" = failed\ initialising* ]] + [[ "$output" == "failed initialising"* ]] [[ `echo "$output" | wc -l` -eq 1 ]] [ "$status" -eq 1 ] } diff --git a/cmd/kubeconform/main.go b/cmd/kubeconform/main.go index 713139b..4a6367f 100644 --- a/cmd/kubeconform/main.go +++ b/cmd/kubeconform/main.go @@ -12,7 +12,7 @@ import ( "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 result := make(chan bool) @@ -27,7 +27,7 @@ func processResults(ctx context.Context, o output.Output, validationResults <-ch } } if success == false && exitOnError { - ctx.Done() // early exit - signal to stop searching for resources + cancel() // early exit - signal to stop searching for resources break } } @@ -36,7 +36,6 @@ func processResults(ctx context.Context, o output.Output, validationResults <-ch } result <- success - close(result) }() return result @@ -79,8 +78,8 @@ func realMain() int { } validationResults := make(chan validator.Result) - ctx := context.Background() - successChan := processResults(ctx, o, validationResults, cfg.ExitOnError) + ctx, cancel := context.WithCancel(context.Background()) + successChan := processResults(cancel, o, validationResults, cfg.ExitOnError) var resourcesChan <-chan resource.Resource var errors <-chan error @@ -123,7 +122,7 @@ func realMain() int { Status: validator.Error, } } - ctx.Done() + cancel() } wg.Done() }()