github.com/verrazzano/verrazzano-monitoring-operator@v0.0.30/test/integ/main_test.go (about) 1 // Copyright (C) 2020, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package integ 5 6 import ( 7 "os" 8 "testing" 9 10 "github.com/verrazzano/verrazzano-monitoring-operator/test/integ/framework" 11 testutil "github.com/verrazzano/verrazzano-monitoring-operator/test/integ/util" 12 "go.uber.org/zap" 13 ) 14 15 var ( 16 nsCreated = false 17 ) 18 19 func TestMain(m *testing.M) { 20 // Global setup 21 if err := framework.Setup(); err != nil { 22 zap.S().Errorf("Failed to setup framework: %v", err) 23 os.Exit(1) 24 } 25 // Create the namespace if it does not exist as part of global setup (and delete it if we created it in teardown) 26 if !testutil.NamespaceExists(framework.Global.Namespace, framework.Global.KubeClient) { 27 if err := testutil.CreateNamespace(framework.Global.Namespace, framework.Global.KubeClient); err != nil { 28 zap.S().Errorf("Failed to create namespace %s for test: %v", framework.Global.Namespace, err) 29 os.Exit(1) 30 } else { 31 nsCreated = true 32 } 33 } 34 35 code := m.Run() 36 37 if nsCreated && !framework.Global.SkipTeardown { 38 if err := testutil.DeleteNamespace(framework.Global.Namespace, framework.Global.KubeClient); err != nil { 39 zap.S().Errorf("Failed to clean up integ test namespace: %v", err) 40 } 41 } 42 // Global tear-down 43 if err := framework.Teardown(); err != nil { 44 zap.S().Errorf("Failed to teardown framework: %v", err) 45 os.Exit(1) 46 } 47 os.Exit(code) 48 }