client: Add integration test setup code

This commit is contained in:
Brian C. Lane 2020-03-25 16:59:09 -07:00 committed by Tom Gundersen
parent b5b5bd96df
commit 816a09fd9d

View file

@ -0,0 +1,47 @@
// Package client - integration_test contains functions to setup integration tests
// Copyright (C) 2020 by Red Hat, Inc.
// +build integration
package client
import (
"fmt"
"os"
"testing"
"time"
"github.com/osbuild/osbuild-composer/internal/test"
)
// Hold test state to share between tests
var testState *TestState
// Setup the socket to use for running the tests
// Also makes sure there is a running server to test against
func TestMain(m *testing.M) {
var err error
testState, err = setUpTestState("/run/weldr/api.socket", 60*time.Second)
if err != nil {
fmt.Printf("ERROR: Test setup failed: %s\n", err)
os.Exit(1)
}
// Setup the test repo
dir, err := test.SetUpTemporaryRepository()
if err != nil {
fmt.Printf("ERROR: Test repo setup failed: %s\n", err)
os.Exit(1)
}
testState.repoDir = dir
// Run the tests
rc := m.Run()
// Cleanup after the tests
err = test.TearDownTemporaryRepository(dir)
if err != nil {
fmt.Printf("ERROR: Failed to clean up temporary repository: %s\n", err)
}
os.Exit(rc)
}