automation-tests/common/libimage/runtime_test.go

48 lines
1.2 KiB
Go

package libimage
import (
"io/ioutil"
"os"
"testing"
"github.com/containers/image/v5/types"
"github.com/containers/storage"
"github.com/containers/storage/pkg/reexec"
"github.com/stretchr/testify/require"
)
func TestMain(m *testing.M) {
if reexec.Init() {
return
}
os.Exit(m.Run())
}
// Create a new Runtime that can be used for testing. The second return value
// is a clean-up function that should be called by users to make sure all
// temporary test data gets removed.
func testNewRuntime(t *testing.T) (runtime *Runtime, cleanup func()) {
workdir, err := ioutil.TempDir("", "testStorageRuntime")
require.NoError(t, err)
storeOptions := &storage.StoreOptions{
RunRoot: workdir,
GraphRoot: workdir,
GraphDriverName: "vfs",
}
// Make sure that the tests do not use the host's registries.conf.
systemContext := &types.SystemContext{
SystemRegistriesConfPath: "testdata/registries.conf",
SystemRegistriesConfDirPath: "/dev/null",
}
runtime, err = RuntimeFromStoreOptions(&RuntimeOptions{SystemContext: systemContext}, storeOptions)
require.NoError(t, err)
cleanup = func() {
runtime.Shutdown(true)
_ = os.RemoveAll(workdir)
}
return runtime, cleanup
}