Merge pull request #524 from mattmoyer/allow-prebuilt-cli-binaries-for-testing

Allow running CLI-related integration tests with pre-built binary.
This commit is contained in:
Matt Moyer 2021-03-23 16:19:50 -07:00 committed by GitHub
commit 454348b2fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,10 +1,11 @@
// Copyright 2020 the Pinniped contributors. All Rights Reserved. // Copyright 2020-2021 the Pinniped contributors. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0 // SPDX-License-Identifier: Apache-2.0
package library package library
import ( import (
"io/ioutil" "io/ioutil"
"os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"sync" "sync"
@ -24,6 +25,13 @@ var pinnipedCLIBinaryCache struct {
// PinnipedCLIPath returns the path to the Pinniped CLI binary, built on demand and cached between tests. // PinnipedCLIPath returns the path to the Pinniped CLI binary, built on demand and cached between tests.
func PinnipedCLIPath(t *testing.T) string { func PinnipedCLIPath(t *testing.T) string {
t.Helper() t.Helper()
// Allow a pre-built binary passed in via $PINNIPED_TEST_CLI. This is how our tests run in CI for efficiency.
if ext, ok := os.LookupEnv("PINNIPED_TEST_CLI"); ok {
t.Log("using externally provided pinniped CLI binary")
return ext
}
pinnipedCLIBinaryCache.mutex.Lock() pinnipedCLIBinaryCache.mutex.Lock()
defer pinnipedCLIBinaryCache.mutex.Unlock() defer pinnipedCLIBinaryCache.mutex.Unlock()
path := filepath.Join(testutil.TempDir(t), "pinniped") path := filepath.Join(testutil.TempDir(t), "pinniped")