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  }