From 6dd331b21d39b70058ee05fed6cdf510bf32df84 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Thu, 6 Aug 2020 20:44:14 -0500 Subject: [PATCH] Use Go's `-short` flag as a way to avoid running integration tests. Signed-off-by: Matt Moyer --- hack/module.sh | 10 ++++++++++ hack/test-unit.sh | 2 +- test/go.sum | 6 ++++++ test/integration/api_discovery_test.go | 2 ++ test/integration/client_test.go | 1 + test/integration/deployment_test.go | 1 + test/integration/kubectl_test.go | 3 +++ test/integration/logindiscoveryconfig_test.go | 2 ++ test/integration/loginrequest_test.go | 3 +++ test/library/skip.go | 16 ++++++++++++++++ 10 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 test/library/skip.go diff --git a/hack/module.sh b/hack/module.sh index ef9edde4..596137ce 100755 --- a/hack/module.sh +++ b/hack/module.sh @@ -25,6 +25,15 @@ function test_cmd() { echo "${cmd} -race ./..." } +function unittest_cmd() { + if [ -x "$(command -v gotest)" ]; then + cmd='gotest' + else + cmd='go test' + fi + echo "${cmd} -short -race ./..." +} + function with_modules() { local cmd_function="${1}" cmd="$(${cmd_function})" @@ -52,6 +61,7 @@ function main() { 'tidy') with_modules 'tidy_cmd' ;; 'lint') with_modules 'lint_cmd' ;; 'test') with_modules 'test_cmd' ;; + 'unittest') with_modules 'unittest_cmd' ;; *) usage ;; esac } diff --git a/hack/test-unit.sh b/hack/test-unit.sh index a9fd6e44..5d987d46 100755 --- a/hack/test-unit.sh +++ b/hack/test-unit.sh @@ -5,4 +5,4 @@ set -euo pipefail ROOT="$(realpath "$(dirname "${BASH_SOURCE[0]}")/..")" -"$ROOT/hack/module.sh" test \ No newline at end of file +"$ROOT/hack/module.sh" unittest \ No newline at end of file diff --git a/test/go.sum b/test/go.sum index 0ea9340c..8d31b19d 100644 --- a/test/go.sum +++ b/test/go.sum @@ -22,6 +22,7 @@ github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxB github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= @@ -48,6 +49,7 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v0.0.0-20190815234213-e83c0a1c26c8/go.mod h1:pmLOTb3x90VhIKxsA9yeQG5yfOkkKnkk1h+Ql8NDYDw= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -122,6 +124,7 @@ github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= @@ -156,16 +159,19 @@ github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7J github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= diff --git a/test/integration/api_discovery_test.go b/test/integration/api_discovery_test.go index d35b7abe..33ee9a1f 100644 --- a/test/integration/api_discovery_test.go +++ b/test/integration/api_discovery_test.go @@ -15,6 +15,8 @@ import ( ) func TestGetAPIResourceList(t *testing.T) { + library.SkipUnlessIntegration(t) + client := library.NewPlaceholderNameClientset(t) groups, resources, err := client.Discovery().ServerGroupsAndResources() diff --git a/test/integration/client_test.go b/test/integration/client_test.go index 0b161917..1e303495 100644 --- a/test/integration/client_test.go +++ b/test/integration/client_test.go @@ -53,6 +53,7 @@ O2D8LtWhMbrYy755Fgq4H9s3vCgfvHY1AQ== ) func TestClient(t *testing.T) { + library.SkipUnlessIntegration(t) tmcClusterToken := library.Getenv(t, "PLACEHOLDER_NAME_TMC_CLUSTER_TOKEN") ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) diff --git a/test/integration/deployment_test.go b/test/integration/deployment_test.go index b1c2de89..74c37371 100644 --- a/test/integration/deployment_test.go +++ b/test/integration/deployment_test.go @@ -19,6 +19,7 @@ import ( ) func TestGetDeployment(t *testing.T) { + library.SkipUnlessIntegration(t) namespaceName := library.Getenv(t, "PLACEHOLDER_NAME_NAMESPACE") deploymentName := library.Getenv(t, "PLACEHOLDER_NAME_DEPLOYMENT") diff --git a/test/integration/kubectl_test.go b/test/integration/kubectl_test.go index f090647c..b0056981 100644 --- a/test/integration/kubectl_test.go +++ b/test/integration/kubectl_test.go @@ -11,9 +11,12 @@ import ( "testing" "github.com/stretchr/testify/require" + + "github.com/suzerain-io/placeholder-name/test/library" ) func TestGetNodes(t *testing.T) { + library.SkipUnlessIntegration(t) cmd := exec.Command("kubectl", "get", "nodes") cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr diff --git a/test/integration/logindiscoveryconfig_test.go b/test/integration/logindiscoveryconfig_test.go index 9b7593a7..d7fe896c 100644 --- a/test/integration/logindiscoveryconfig_test.go +++ b/test/integration/logindiscoveryconfig_test.go @@ -20,6 +20,7 @@ import ( ) func TestSuccessfulLoginDiscoveryConfig(t *testing.T) { + library.SkipUnlessIntegration(t) namespaceName := library.Getenv(t, "PLACEHOLDER_NAME_NAMESPACE") client := library.NewPlaceholderNameClientset(t) @@ -39,6 +40,7 @@ func TestSuccessfulLoginDiscoveryConfig(t *testing.T) { } func TestReconcilingLoginDiscoveryConfig(t *testing.T) { + library.SkipUnlessIntegration(t) namespaceName := library.Getenv(t, "PLACEHOLDER_NAME_NAMESPACE") client := library.NewPlaceholderNameClientset(t) diff --git a/test/integration/loginrequest_test.go b/test/integration/loginrequest_test.go index 05a0194f..e3c27c24 100644 --- a/test/integration/loginrequest_test.go +++ b/test/integration/loginrequest_test.go @@ -57,6 +57,7 @@ func addTestClusterRoleBinding(ctx context.Context, t *testing.T, adminClient ku } func TestSuccessfulLoginRequest(t *testing.T) { + library.SkipUnlessIntegration(t) tmcClusterToken := library.Getenv(t, "PLACEHOLDER_NAME_TMC_CLUSTER_TOKEN") response, err := makeRequest(t, v1alpha1.LoginRequestSpec{ @@ -146,6 +147,7 @@ func TestSuccessfulLoginRequest(t *testing.T) { } func TestFailedLoginRequestWhenTheRequestIsValidButTheTokenDoesNotAuthenticateTheUser(t *testing.T) { + library.SkipUnlessIntegration(t) response, err := makeRequest(t, v1alpha1.LoginRequestSpec{ Type: v1alpha1.TokenLoginCredentialType, Token: &v1alpha1.LoginRequestTokenCredential{Value: "not a good token"}, @@ -160,6 +162,7 @@ func TestFailedLoginRequestWhenTheRequestIsValidButTheTokenDoesNotAuthenticateTh } func TestLoginRequest_ShouldFailWhenRequestDoesNotIncludeToken(t *testing.T) { + library.SkipUnlessIntegration(t) response, err := makeRequest(t, v1alpha1.LoginRequestSpec{ Type: v1alpha1.TokenLoginCredentialType, Token: nil, diff --git a/test/library/skip.go b/test/library/skip.go new file mode 100644 index 00000000..a033905c --- /dev/null +++ b/test/library/skip.go @@ -0,0 +1,16 @@ +/* +Copyright 2020 VMware, Inc. +SPDX-License-Identifier: Apache-2.0 +*/ + +package library + +import "testing" + +// SkipUnlessIntegration skips the current test if `-short` has been passed to `go test`. +func SkipUnlessIntegration(t *testing.T) { + t.Helper() + if testing.Short() { + t.Skip("skipping integration test because of '-short' flag") + } +}