Blame internal/client/integration_test.go

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