Files
kata-containers/virtcontainers/virtcontainers_test.go
Graham whaley d6c3ec864b license: SPDX: update all vc files to use SPDX style
When imported, the vc files carried in the 'full style' apache
license text, but the standard for kata is to use SPDX style.
Update the relevant files to SPDX.

Fixes: #227

Signed-off-by: Graham whaley <graham.whaley@intel.com>
2018-04-18 13:43:15 +01:00

143 lines
3.6 KiB
Go

// Copyright (c) 2017 Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//
package virtcontainers
import (
"flag"
"fmt"
"io/ioutil"
"os"
"path/filepath"
"testing"
"github.com/sirupsen/logrus"
)
const testSandboxID = "7f49d00d-1995-4156-8c79-5f5ab24ce138"
const testContainerID = "containerID"
const testKernel = "kernel"
const testInitrd = "initrd"
const testImage = "image"
const testHypervisor = "hypervisor"
const testBundle = "bundle"
const testDisabledAsNonRoot = "Test disabled as requires root privileges"
// package variables set in TestMain
var testDir = ""
var sandboxDirConfig = ""
var sandboxFileConfig = ""
var sandboxDirState = ""
var sandboxDirLock = ""
var sandboxFileState = ""
var sandboxFileLock = ""
var testQemuKernelPath = ""
var testQemuInitrdPath = ""
var testQemuImagePath = ""
var testQemuPath = ""
var testHyperstartCtlSocket = ""
var testHyperstartTtySocket = ""
// cleanUp Removes any stale sandbox/container state that can affect
// the next test to run.
func cleanUp() {
globalSandboxList.removeSandbox(testSandboxID)
for _, dir := range []string{testDir, defaultSharedDir} {
os.RemoveAll(dir)
os.MkdirAll(dir, dirMode)
}
os.Mkdir(filepath.Join(testDir, testBundle), dirMode)
_, err := os.Create(filepath.Join(testDir, testImage))
if err != nil {
fmt.Println("Could not recreate test image:", err)
os.Exit(1)
}
}
// TestMain is the common main function used by ALL the test functions
// for this package.
func TestMain(m *testing.M) {
var err error
flag.Parse()
logger := logrus.New()
logger.Level = logrus.ErrorLevel
for _, arg := range flag.Args() {
if arg == "debug-logs" {
logger.Level = logrus.DebugLevel
}
}
SetLogger(logger)
testDir, err = ioutil.TempDir("", "virtcontainers-tmp-")
if err != nil {
panic(err)
}
err = os.MkdirAll(testDir, dirMode)
if err != nil {
fmt.Println("Could not create test directories:", err)
os.Exit(1)
}
_, err = os.Create(filepath.Join(testDir, testKernel))
if err != nil {
fmt.Println("Could not create test kernel:", err)
os.RemoveAll(testDir)
os.Exit(1)
}
_, err = os.Create(filepath.Join(testDir, testImage))
if err != nil {
fmt.Println("Could not create test image:", err)
os.RemoveAll(testDir)
os.Exit(1)
}
_, err = os.Create(filepath.Join(testDir, testHypervisor))
if err != nil {
fmt.Println("Could not create test hypervisor:", err)
os.RemoveAll(testDir)
os.Exit(1)
}
err = os.Mkdir(filepath.Join(testDir, testBundle), dirMode)
if err != nil {
fmt.Println("Could not create test bundle directory:", err)
os.RemoveAll(testDir)
os.Exit(1)
}
// allow the tests to run without affecting the host system.
configStoragePath = filepath.Join(testDir, storagePathSuffix, "config")
runStoragePath = filepath.Join(testDir, storagePathSuffix, "run")
// set now that configStoragePath has been overridden.
sandboxDirConfig = filepath.Join(configStoragePath, testSandboxID)
sandboxFileConfig = filepath.Join(configStoragePath, testSandboxID, configFile)
sandboxDirState = filepath.Join(runStoragePath, testSandboxID)
sandboxDirLock = filepath.Join(runStoragePath, testSandboxID)
sandboxFileState = filepath.Join(runStoragePath, testSandboxID, stateFile)
sandboxFileLock = filepath.Join(runStoragePath, testSandboxID, lockFileName)
testQemuKernelPath = filepath.Join(testDir, testKernel)
testQemuInitrdPath = filepath.Join(testDir, testInitrd)
testQemuImagePath = filepath.Join(testDir, testImage)
testQemuPath = filepath.Join(testDir, testHypervisor)
testHyperstartCtlSocket = filepath.Join(testDir, "test_hyper.sock")
testHyperstartTtySocket = filepath.Join(testDir, "test_tty.sock")
ret := m.Run()
os.RemoveAll(testDir)
os.Exit(ret)
}