mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
test: use T.TempDir to create temporary test directory (#12853)
* test: use `T.TempDir` to create temporary test directory
This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.
Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
defer func() {
if err := os.RemoveAll(dir); err != nil {
t.Fatal(err)
}
}
is also tedious, but `t.TempDir` handles this for us nicely.
Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* test: fix TestLogmon_Start_restart on Windows
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
* test: fix failing TestConsul_Integration
t.TempDir fails to perform the cleanup properly because the folder is
still in use
testing.go:967: TempDir RemoveAll cleanup: unlinkat /tmp/TestConsul_Integration2837567823/002/191a6f1a-5371-cf7c-da38-220fe85d10e5/web/secrets: device or resource busy
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
This commit is contained in:
@@ -7,7 +7,6 @@ import (
|
||||
"io"
|
||||
"io/fs"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
@@ -51,11 +50,7 @@ var (
|
||||
func TestAllocDir_BuildAlloc(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -103,11 +98,7 @@ func TestAllocDir_MountSharedAlloc(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
MountCompatible(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -150,11 +141,7 @@ func TestAllocDir_MountSharedAlloc(t *testing.T) {
|
||||
func TestAllocDir_Snapshot(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -232,17 +219,8 @@ func TestAllocDir_Snapshot(t *testing.T) {
|
||||
func TestAllocDir_Move(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp1, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp1)
|
||||
|
||||
tmp2, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp2)
|
||||
tmp1 := t.TempDir()
|
||||
tmp2 := t.TempDir()
|
||||
|
||||
// Create two alloc dirs
|
||||
d1 := NewAllocDir(testlog.HCLogger(t), tmp1, "test")
|
||||
@@ -302,11 +280,7 @@ func TestAllocDir_Move(t *testing.T) {
|
||||
func TestAllocDir_EscapeChecking(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
if err := d.Build(); err != nil {
|
||||
@@ -373,11 +347,7 @@ func TestAllocDir_ReadAt_SecretDir(t *testing.T) {
|
||||
func TestAllocDir_SplitPath(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
dir, err := ioutil.TempDir("", "tmpdirtest")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
dest := filepath.Join(dir, "/foo/bar/baz")
|
||||
if err := os.MkdirAll(dest, os.ModePerm); err != nil {
|
||||
@@ -401,11 +371,7 @@ func TestAllocDir_CreateDir(t *testing.T) {
|
||||
t.Skip("Must be root to run test")
|
||||
}
|
||||
|
||||
dir, err := ioutil.TempDir("", "tmpdirtest")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
// create a subdir and a file
|
||||
subdir := filepath.Join(dir, "subdir")
|
||||
@@ -418,10 +384,7 @@ func TestAllocDir_CreateDir(t *testing.T) {
|
||||
}
|
||||
|
||||
// Create the above hierarchy under another destination
|
||||
dir1, err := ioutil.TempDir("/tmp", "tempdirdest")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
dir1 := t.TempDir()
|
||||
|
||||
if err := createDir(dir1, subdir); err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
@@ -440,11 +403,7 @@ func TestAllocDir_CreateDir(t *testing.T) {
|
||||
func TestPathFuncs(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest-pathfuncs")
|
||||
if err != nil {
|
||||
t.Fatalf("error creating temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
missingDir := filepath.Join(dir, "does-not-exist")
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -55,13 +54,7 @@ func TestLinuxRootSecretDir(t *testing.T) {
|
||||
t.Skip("Must be run as root")
|
||||
}
|
||||
|
||||
tmpdir, err := ioutil.TempDir("", "nomadtest-rootsecretdir")
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create tempdir for test: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmpdir)
|
||||
|
||||
secretsDir := filepath.Join(tmpdir, TaskSecrets)
|
||||
secretsDir := filepath.Join(t.TempDir(), TaskSecrets)
|
||||
|
||||
// removing a nonexistent secrets dir should NOT error
|
||||
if err := removeSecretDir(secretsDir); err != nil {
|
||||
@@ -117,13 +110,7 @@ func TestLinuxUnprivilegedSecretDir(t *testing.T) {
|
||||
t.Skip("Must not be run as root")
|
||||
}
|
||||
|
||||
tmpdir, err := ioutil.TempDir("", "nomadtest-secretdir")
|
||||
if err != nil {
|
||||
t.Fatalf("unable to create tempdir for test: %s", err)
|
||||
}
|
||||
defer os.RemoveAll(tmpdir)
|
||||
|
||||
secretsDir := filepath.Join(tmpdir, TaskSecrets)
|
||||
secretsDir := filepath.Join(t.TempDir(), TaskSecrets)
|
||||
|
||||
// removing a nonexistent secrets dir should NOT error
|
||||
if err := removeSecretDir(secretsDir); err != nil {
|
||||
|
||||
@@ -14,11 +14,7 @@ import (
|
||||
func TestTaskDir_EmbedNonexistent(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -38,11 +34,7 @@ func TestTaskDir_EmbedNonexistent(t *testing.T) {
|
||||
func TestTaskDir_EmbedDirs(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -53,11 +45,7 @@ func TestTaskDir_EmbedDirs(t *testing.T) {
|
||||
|
||||
// Create a fake host directory, with a file, and a subfolder that contains
|
||||
// a file.
|
||||
host, err := ioutil.TempDir("", "AllocDirHost")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(host)
|
||||
host := t.TempDir()
|
||||
|
||||
subDirName := "subdir"
|
||||
subDir := filepath.Join(host, subDirName)
|
||||
@@ -96,11 +84,7 @@ func TestTaskDir_NonRoot_Image(t *testing.T) {
|
||||
if os.Geteuid() == 0 {
|
||||
t.Skip("test should be run as non-root user")
|
||||
}
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -121,11 +105,7 @@ func TestTaskDir_NonRoot(t *testing.T) {
|
||||
t.Skip("test should be run as non-root user")
|
||||
}
|
||||
|
||||
tmp, err := ioutil.TempDir("", "AllocDir")
|
||||
if err != nil {
|
||||
t.Fatalf("Couldn't create temp dir: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(tmp)
|
||||
tmp := t.TempDir()
|
||||
|
||||
d := NewAllocDir(testlog.HCLogger(t), tmp, "test")
|
||||
defer d.Destroy()
|
||||
@@ -139,7 +119,7 @@ func TestTaskDir_NonRoot(t *testing.T) {
|
||||
}
|
||||
|
||||
// ${TASK_DIR}/alloc should not exist!
|
||||
if _, err = os.Stat(td.SharedTaskDir); !os.IsNotExist(err) {
|
||||
if _, err := os.Stat(td.SharedTaskDir); !os.IsNotExist(err) {
|
||||
t.Fatalf("Expected a NotExist error for shared alloc dir in task dir: %q", td.SharedTaskDir)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sync"
|
||||
"testing"
|
||||
@@ -156,11 +154,7 @@ func TestConsulGRPCSocketHook_Prerun_Error(t *testing.T) {
|
||||
func TestConsulGRPCSocketHook_proxy_Unix(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest_proxy_Unix")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(dir))
|
||||
}()
|
||||
dir := t.TempDir()
|
||||
|
||||
// Setup fake listener that would be inside the netns (normally a unix
|
||||
// socket, but it doesn't matter for this test).
|
||||
|
||||
@@ -85,11 +85,7 @@ func TestTaskRunner_ArtifactHook_PartialDone(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create the target directory.
|
||||
destdir, err := ioutil.TempDir("", "nomadtest-dest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(destdir))
|
||||
}()
|
||||
destdir := t.TempDir()
|
||||
|
||||
req := &interfaces.TaskPrestartRequest{
|
||||
TaskEnv: taskenv.NewTaskEnv(nil, nil, nil, nil, destdir, ""),
|
||||
@@ -112,7 +108,7 @@ func TestTaskRunner_ArtifactHook_PartialDone(t *testing.T) {
|
||||
|
||||
// On first run file1 (foo) should download but file2 (bar) should
|
||||
// fail.
|
||||
err = artifactHook.Prestart(context.Background(), req, &resp)
|
||||
err := artifactHook.Prestart(context.Background(), req, &resp)
|
||||
|
||||
require.NotNil(t, err)
|
||||
require.True(t, structs.IsRecoverable(err))
|
||||
@@ -179,11 +175,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadSuccess(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create the target directory.
|
||||
destdir, err := ioutil.TempDir("", "nomadtest-dest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(destdir))
|
||||
}()
|
||||
destdir := t.TempDir()
|
||||
|
||||
req := &interfaces.TaskPrestartRequest{
|
||||
TaskEnv: taskenv.NewTaskEnv(nil, nil, nil, nil, destdir, ""),
|
||||
@@ -225,7 +217,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadSuccess(t *testing.T) {
|
||||
resp := interfaces.TaskPrestartResponse{}
|
||||
|
||||
// start the hook
|
||||
err = artifactHook.Prestart(context.Background(), req, &resp)
|
||||
err := artifactHook.Prestart(context.Background(), req, &resp)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.True(t, resp.Done)
|
||||
@@ -273,11 +265,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadFailure(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create the target directory.
|
||||
destdir, err := ioutil.TempDir("", "nomadtest-dest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(destdir))
|
||||
}()
|
||||
destdir := t.TempDir()
|
||||
|
||||
req := &interfaces.TaskPrestartRequest{
|
||||
TaskEnv: taskenv.NewTaskEnv(nil, nil, nil, nil, destdir, ""),
|
||||
@@ -307,7 +295,7 @@ func TestTaskRunner_ArtifactHook_ConcurrentDownloadFailure(t *testing.T) {
|
||||
resp := interfaces.TaskPrestartResponse{}
|
||||
|
||||
// On first run all files will be downloaded except file0.txt
|
||||
err = artifactHook.Prestart(context.Background(), req, &resp)
|
||||
err := artifactHook.Prestart(context.Background(), req, &resp)
|
||||
|
||||
require.Error(t, err)
|
||||
require.True(t, structs.IsRecoverable(err))
|
||||
|
||||
@@ -3,7 +3,6 @@ package taskrunner
|
||||
import (
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -42,30 +41,20 @@ func TestConnectNativeHook_Name(t *testing.T) {
|
||||
}
|
||||
|
||||
func setupCertDirs(t *testing.T) (string, string) {
|
||||
fd, err := ioutil.TempFile("", "connect_native_testcert")
|
||||
fd, err := ioutil.TempFile(t.TempDir(), "connect_native_testcert")
|
||||
require.NoError(t, err)
|
||||
_, err = fd.WriteString("ABCDEF")
|
||||
require.NoError(t, err)
|
||||
err = fd.Close()
|
||||
require.NoError(t, err)
|
||||
|
||||
d, err := ioutil.TempDir("", "connect_native_testsecrets")
|
||||
require.NoError(t, err)
|
||||
return fd.Name(), d
|
||||
}
|
||||
|
||||
func cleanupCertDirs(t *testing.T, original, secrets string) {
|
||||
err := os.Remove(original)
|
||||
require.NoError(t, err)
|
||||
err = os.RemoveAll(secrets)
|
||||
require.NoError(t, err)
|
||||
return fd.Name(), t.TempDir()
|
||||
}
|
||||
|
||||
func TestConnectNativeHook_copyCertificate(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
f, d := setupCertDirs(t)
|
||||
defer cleanupCertDirs(t, f, d)
|
||||
|
||||
t.Run("no source", func(t *testing.T) {
|
||||
err := new(connectNativeHook).copyCertificate("", d, "out.pem")
|
||||
@@ -85,7 +74,6 @@ func TestConnectNativeHook_copyCertificates(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
f, d := setupCertDirs(t)
|
||||
defer cleanupCertDirs(t, f, d)
|
||||
|
||||
t.Run("normal", func(t *testing.T) {
|
||||
err := new(connectNativeHook).copyCertificates(consulTransportConfig{
|
||||
@@ -450,8 +438,7 @@ func TestTaskRunner_ConnectNativeHook_shareTLS(t *testing.T) {
|
||||
testutil.RequireConsul(t)
|
||||
|
||||
try := func(t *testing.T, shareSSL *bool) {
|
||||
fakeCert, fakeCertDir := setupCertDirs(t)
|
||||
defer cleanupCertDirs(t, fakeCert, fakeCertDir)
|
||||
fakeCert, _ := setupCertDirs(t)
|
||||
|
||||
testConsul := getTestConsul(t)
|
||||
defer testConsul.Stop()
|
||||
@@ -570,8 +557,7 @@ func TestTaskRunner_ConnectNativeHook_shareTLS_override(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
testutil.RequireConsul(t)
|
||||
|
||||
fakeCert, fakeCertDir := setupCertDirs(t)
|
||||
defer cleanupCertDirs(t, fakeCert, fakeCertDir)
|
||||
fakeCert, _ := setupCertDirs(t)
|
||||
|
||||
testConsul := getTestConsul(t)
|
||||
defer testConsul.Stop()
|
||||
|
||||
@@ -43,11 +43,10 @@ const (
|
||||
)
|
||||
|
||||
func writeTmp(t *testing.T, s string, fm os.FileMode) string {
|
||||
dir, err := ioutil.TempDir("", "envoy-")
|
||||
require.NoError(t, err)
|
||||
dir := t.TempDir()
|
||||
|
||||
fPath := filepath.Join(dir, sidsTokenFile)
|
||||
err = ioutil.WriteFile(fPath, []byte(s), fm)
|
||||
err := ioutil.WriteFile(fPath, []byte(s), fm)
|
||||
require.NoError(t, err)
|
||||
|
||||
return dir
|
||||
@@ -73,7 +72,6 @@ func TestEnvoyBootstrapHook_maybeLoadSIToken(t *testing.T) {
|
||||
t.Run("load token from file", func(t *testing.T) {
|
||||
token := uuid.Generate()
|
||||
f := writeTmp(t, token, 0440)
|
||||
defer cleanupDir(t, f)
|
||||
|
||||
h := newEnvoyBootstrapHook(&envoyBootstrapHookConfig{logger: testlog.HCLogger(t)})
|
||||
cfg, err := h.maybeLoadSIToken("task1", f)
|
||||
@@ -84,7 +82,6 @@ func TestEnvoyBootstrapHook_maybeLoadSIToken(t *testing.T) {
|
||||
t.Run("file is unreadable", func(t *testing.T) {
|
||||
token := uuid.Generate()
|
||||
f := writeTmp(t, token, 0200)
|
||||
defer cleanupDir(t, f)
|
||||
|
||||
h := newEnvoyBootstrapHook(&envoyBootstrapHookConfig{logger: testlog.HCLogger(t)})
|
||||
cfg, err := h.maybeLoadSIToken("task1", f)
|
||||
|
||||
@@ -67,10 +67,6 @@ func (u upperReplacer) ClientPath(p string, join bool) (string, bool) {
|
||||
return path, escapes
|
||||
}
|
||||
|
||||
func removeAllT(t *testing.T, path string) {
|
||||
require.NoError(t, os.RemoveAll(path))
|
||||
}
|
||||
|
||||
func TestGetArtifact_getHeaders(t *testing.T) {
|
||||
t.Run("nil", func(t *testing.T) {
|
||||
require.Nil(t, getHeaders(noopTaskEnv(""), nil))
|
||||
@@ -109,9 +105,7 @@ func TestGetArtifact_Headers(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create a temp directory to download into.
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
require.NoError(t, err)
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
// Create the artifact.
|
||||
artifact := &structs.TaskArtifact{
|
||||
@@ -127,7 +121,7 @@ func TestGetArtifact_Headers(t *testing.T) {
|
||||
taskEnv := upperReplacer{
|
||||
taskDir: taskDir,
|
||||
}
|
||||
err = GetArtifact(taskEnv, artifact)
|
||||
err := GetArtifact(taskEnv, artifact)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Verify artifact exists.
|
||||
@@ -145,11 +139,7 @@ func TestGetArtifact_FileAndChecksum(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create a temp directory to download into
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to make temp directory: %v", err)
|
||||
}
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
// Create the artifact
|
||||
file := "test.sh"
|
||||
@@ -177,11 +167,7 @@ func TestGetArtifact_File_RelativeDest(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create a temp directory to download into
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to make temp directory: %v", err)
|
||||
}
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
// Create the artifact
|
||||
file := "test.sh"
|
||||
@@ -211,11 +197,7 @@ func TestGetArtifact_File_EscapeDest(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create a temp directory to download into
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to make temp directory: %v", err)
|
||||
}
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
// Create the artifact
|
||||
file := "test.sh"
|
||||
@@ -229,7 +211,7 @@ func TestGetArtifact_File_EscapeDest(t *testing.T) {
|
||||
}
|
||||
|
||||
// attempt to download the artifact
|
||||
err = GetArtifact(noopTaskEnv(taskDir), artifact)
|
||||
err := GetArtifact(noopTaskEnv(taskDir), artifact)
|
||||
if err == nil || !strings.Contains(err.Error(), "escapes") {
|
||||
t.Fatalf("expected GetArtifact to disallow sandbox escape: %v", err)
|
||||
}
|
||||
@@ -263,11 +245,7 @@ func TestGetArtifact_InvalidChecksum(t *testing.T) {
|
||||
defer ts.Close()
|
||||
|
||||
// Create a temp directory to download into
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to make temp directory: %v", err)
|
||||
}
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
// Create the artifact with an incorrect checksum
|
||||
file := "test.sh"
|
||||
@@ -324,11 +302,7 @@ func TestGetArtifact_Archive(t *testing.T) {
|
||||
|
||||
// Create a temp directory to download into and create some of the same
|
||||
// files that exist in the artifact to ensure they are overridden
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
if err != nil {
|
||||
t.Fatalf("failed to make temp directory: %v", err)
|
||||
}
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
create := map[string]string{
|
||||
"exist/my.config": "to be replaced",
|
||||
@@ -365,9 +339,7 @@ func TestGetArtifact_Setuid(t *testing.T) {
|
||||
|
||||
// Create a temp directory to download into and create some of the same
|
||||
// files that exist in the artifact to ensure they are overridden
|
||||
taskDir, err := ioutil.TempDir("", "nomad-test")
|
||||
require.NoError(t, err)
|
||||
defer removeAllT(t, taskDir)
|
||||
taskDir := t.TempDir()
|
||||
|
||||
file := "setuid.tgz"
|
||||
artifact := &structs.TaskArtifact{
|
||||
|
||||
@@ -3,9 +3,7 @@ package taskrunner
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
plugin "github.com/hashicorp/go-plugin"
|
||||
@@ -66,11 +64,7 @@ func TestTaskRunner_LogmonHook_StartStop(t *testing.T) {
|
||||
alloc := mock.BatchAlloc()
|
||||
task := alloc.Job.TaskGroups[0].Tasks[0]
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(dir))
|
||||
}()
|
||||
dir := t.TempDir()
|
||||
|
||||
hookConf := newLogMonHookConfig(task.Name, dir)
|
||||
runner := &TaskRunner{logmonHookConfig: hookConf}
|
||||
|
||||
@@ -7,7 +7,6 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"syscall"
|
||||
"testing"
|
||||
@@ -31,11 +30,7 @@ func TestTaskRunner_LogmonHook_StartCrashStop(t *testing.T) {
|
||||
alloc := mock.BatchAlloc()
|
||||
task := alloc.Job.TaskGroups[0].Tasks[0]
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(dir))
|
||||
}()
|
||||
dir := t.TempDir()
|
||||
|
||||
hookConf := newLogMonHookConfig(task.Name, dir)
|
||||
runner := &TaskRunner{logmonHookConfig: hookConf}
|
||||
@@ -84,7 +79,7 @@ func TestTaskRunner_LogmonHook_StartCrashStop(t *testing.T) {
|
||||
logmonReattachKey: origHookData,
|
||||
}
|
||||
resp = interfaces.TaskPrestartResponse{}
|
||||
err = hook.Prestart(context.Background(), &req, &resp)
|
||||
err := hook.Prestart(context.Background(), &req, &resp)
|
||||
require.NoError(t, err)
|
||||
require.NotEqual(t, origState, resp.State)
|
||||
|
||||
@@ -100,11 +95,7 @@ func TestTaskRunner_LogmonHook_ShutdownMidStart(t *testing.T) {
|
||||
alloc := mock.BatchAlloc()
|
||||
task := alloc.Job.TaskGroups[0].Tasks[0]
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
defer func() {
|
||||
require.NoError(t, os.RemoveAll(dir))
|
||||
}()
|
||||
dir := t.TempDir()
|
||||
|
||||
hookConf := newLogMonHookConfig(task.Name, dir)
|
||||
runner := &TaskRunner{logmonHookConfig: hookConf}
|
||||
|
||||
@@ -29,17 +29,6 @@ import (
|
||||
|
||||
var _ interfaces.TaskPrestartHook = (*sidsHook)(nil)
|
||||
|
||||
func tmpDir(t *testing.T) string {
|
||||
dir, err := ioutil.TempDir("", "sids-")
|
||||
require.NoError(t, err)
|
||||
return dir
|
||||
}
|
||||
|
||||
func cleanupDir(t *testing.T, dir string) {
|
||||
err := os.RemoveAll(dir)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func sidecar(task string) (string, structs.TaskKind) {
|
||||
name := structs.ConnectProxyPrefix + "-" + task
|
||||
kind := structs.TaskKind(structs.ConnectProxyPrefix + ":" + task)
|
||||
@@ -50,8 +39,7 @@ func TestSIDSHook_recoverToken(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
r := require.New(t)
|
||||
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
|
||||
taskName, taskKind := sidecar("foo")
|
||||
h := newSIDSHook(sidsHookConfig{
|
||||
@@ -75,8 +63,7 @@ func TestSIDSHook_recoverToken_empty(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
r := require.New(t)
|
||||
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
|
||||
taskName, taskKind := sidecar("foo")
|
||||
h := newSIDSHook(sidsHookConfig{
|
||||
@@ -103,8 +90,7 @@ func TestSIDSHook_recoverToken_unReadable(t *testing.T) {
|
||||
|
||||
r := require.New(t)
|
||||
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
|
||||
err := os.Chmod(secrets, 0000)
|
||||
r.NoError(err)
|
||||
@@ -126,8 +112,7 @@ func TestSIDSHook_writeToken(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
r := require.New(t)
|
||||
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
|
||||
id := uuid.Generate()
|
||||
h := new(sidsHook)
|
||||
@@ -150,8 +135,7 @@ func TestSIDSHook_writeToken_unWritable(t *testing.T) {
|
||||
|
||||
r := require.New(t)
|
||||
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
|
||||
err := os.Chmod(secrets, 0000)
|
||||
r.NoError(err)
|
||||
@@ -166,8 +150,7 @@ func Test_SIDSHook_writeToken_nonExistent(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
r := require.New(t)
|
||||
|
||||
base := tmpDir(t)
|
||||
defer cleanupDir(t, base)
|
||||
base := t.TempDir()
|
||||
secrets := filepath.Join(base, "does/not/exist")
|
||||
|
||||
id := uuid.Generate()
|
||||
@@ -289,8 +272,7 @@ func TestTaskRunner_DeriveSIToken_UnWritableTokenFile(t *testing.T) {
|
||||
|
||||
// make the si_token file un-writable, triggering a failure after a
|
||||
// successful token derivation
|
||||
secrets := tmpDir(t)
|
||||
defer cleanupDir(t, secrets)
|
||||
secrets := t.TempDir()
|
||||
trConfig.TaskDir.SecretsDir = secrets
|
||||
err := ioutil.WriteFile(filepath.Join(secrets, sidsTokenFile), nil, 0400)
|
||||
r.NoError(err)
|
||||
|
||||
@@ -167,14 +167,11 @@ func newTestHarness(t *testing.T, templates []*structs.Template, consul, vault b
|
||||
harness.nomadNamespace = a.Namespace
|
||||
|
||||
// Make a tempdir
|
||||
d, err := ioutil.TempDir("", "ct_test")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to make tmpdir: %v", err)
|
||||
}
|
||||
harness.taskDir = d
|
||||
harness.taskDir = t.TempDir()
|
||||
harness.envBuilder.SetClientTaskRoot(harness.taskDir)
|
||||
|
||||
if consul {
|
||||
var err error
|
||||
harness.consul, err = ctestutil.NewTestServerConfigT(t, func(c *ctestutil.TestServerConfig) {
|
||||
// defaults
|
||||
})
|
||||
@@ -1286,14 +1283,10 @@ ANYTHING_goes=Spaces are=ok!
|
||||
// template processing function returns errors when files don't exist
|
||||
func TestTaskTemplateManager_Env_Missing(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
d, err := ioutil.TempDir("", "ct_env_missing")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(d)
|
||||
d := t.TempDir()
|
||||
|
||||
// Fake writing the file so we don't have to run the whole template manager
|
||||
err = ioutil.WriteFile(filepath.Join(d, "exists.env"), []byte("FOO=bar\n"), 0644)
|
||||
err := ioutil.WriteFile(filepath.Join(d, "exists.env"), []byte("FOO=bar\n"), 0644)
|
||||
if err != nil {
|
||||
t.Fatalf("error writing template file: %v", err)
|
||||
}
|
||||
@@ -1323,14 +1316,10 @@ func TestTaskTemplateManager_Env_InterpolatedDest(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
require := require.New(t)
|
||||
|
||||
d, err := ioutil.TempDir("", "ct_env_interpolated")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(d)
|
||||
d := t.TempDir()
|
||||
|
||||
// Fake writing the file so we don't have to run the whole template manager
|
||||
err = ioutil.WriteFile(filepath.Join(d, "exists.env"), []byte("FOO=bar\n"), 0644)
|
||||
err := ioutil.WriteFile(filepath.Join(d, "exists.env"), []byte("FOO=bar\n"), 0644)
|
||||
if err != nil {
|
||||
t.Fatalf("error writing template file: %v", err)
|
||||
}
|
||||
@@ -1362,14 +1351,10 @@ func TestTaskTemplateManager_Env_InterpolatedDest(t *testing.T) {
|
||||
// templates correctly.
|
||||
func TestTaskTemplateManager_Env_Multi(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
d, err := ioutil.TempDir("", "ct_env_missing")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(d)
|
||||
d := t.TempDir()
|
||||
|
||||
// Fake writing the files so we don't have to run the whole template manager
|
||||
err = ioutil.WriteFile(filepath.Join(d, "zzz.env"), []byte("FOO=bar\nSHARED=nope\n"), 0644)
|
||||
err := ioutil.WriteFile(filepath.Join(d, "zzz.env"), []byte("FOO=bar\nSHARED=nope\n"), 0644)
|
||||
if err != nil {
|
||||
t.Fatalf("error writing template file 1: %v", err)
|
||||
}
|
||||
|
||||
@@ -208,11 +208,7 @@ func TestPrevAlloc_LocalPrevAlloc_Terminated(t *testing.T) {
|
||||
func TestPrevAlloc_StreamAllocDir_Error(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
dest, err := ioutil.TempDir("", "nomadtest-")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dest)
|
||||
dest := t.TempDir()
|
||||
|
||||
// This test only unit tests streamAllocDir so we only need a partially
|
||||
// complete remotePrevAlloc
|
||||
@@ -232,7 +228,7 @@ func TestPrevAlloc_StreamAllocDir_Error(t *testing.T) {
|
||||
ModTime: time.Now(),
|
||||
Typeflag: tar.TypeReg,
|
||||
}
|
||||
err = tw.WriteHeader(&fooHdr)
|
||||
err := tw.WriteHeader(&fooHdr)
|
||||
if err != nil {
|
||||
t.Fatalf("error writing file header: %v", err)
|
||||
}
|
||||
|
||||
@@ -26,11 +26,7 @@ func TestPrevAlloc_StreamAllocDir_Ok(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
ctestutil.RequireRoot(t)
|
||||
|
||||
dir, err := ioutil.TempDir("", "")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
// Create foo/
|
||||
fooDir := filepath.Join(dir, "foo")
|
||||
@@ -124,11 +120,7 @@ func TestPrevAlloc_StreamAllocDir_Ok(t *testing.T) {
|
||||
}
|
||||
tw.Close()
|
||||
|
||||
dir1, err := ioutil.TempDir("", "nomadtest-")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %v", err)
|
||||
}
|
||||
defer os.RemoveAll(dir1)
|
||||
dir1 := t.TempDir()
|
||||
|
||||
rc := ioutil.NopCloser(buf)
|
||||
prevAlloc := &remotePrevAlloc{logger: testlog.HCLogger(t)}
|
||||
|
||||
@@ -2,7 +2,6 @@ package client
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"os"
|
||||
"path/filepath"
|
||||
@@ -734,11 +733,7 @@ func TestClient_AddAllocError(t *testing.T) {
|
||||
func TestClient_Init(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomad")
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
allocDir := filepath.Join(dir, "alloc")
|
||||
|
||||
config := config.DefaultConfig()
|
||||
|
||||
@@ -3,8 +3,6 @@ package fifo
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"sync"
|
||||
@@ -24,11 +22,7 @@ func TestFIFO(t *testing.T) {
|
||||
if runtime.GOOS == "windows" {
|
||||
path = "//./pipe/fifo"
|
||||
} else {
|
||||
dir, err := ioutil.TempDir("", "")
|
||||
require.NoError(err)
|
||||
defer os.RemoveAll(dir)
|
||||
|
||||
path = filepath.Join(dir, "fifo")
|
||||
path = filepath.Join(t.TempDir(), "fifo")
|
||||
}
|
||||
|
||||
readerOpenFn, err := CreateAndRead(path)
|
||||
@@ -88,11 +82,7 @@ func TestWriteClose(t *testing.T) {
|
||||
if runtime.GOOS == "windows" {
|
||||
path = "//./pipe/" + uuid.Generate()[:4]
|
||||
} else {
|
||||
dir, err := ioutil.TempDir("", "")
|
||||
require.NoError(err)
|
||||
defer os.RemoveAll(dir)
|
||||
|
||||
path = filepath.Join(dir, "fifo")
|
||||
path = filepath.Join(t.TempDir(), "fifo")
|
||||
}
|
||||
|
||||
readerOpenFn, err := CreateAndRead(path)
|
||||
|
||||
@@ -15,7 +15,6 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
pathPrefix = "logrotator"
|
||||
baseFileName = "redis.stdout"
|
||||
)
|
||||
|
||||
@@ -30,9 +29,7 @@ func TestFileRotator_IncorrectPath(t *testing.T) {
|
||||
func TestFileRotator_CreateNewFile(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 10, 10, testlog.HCLogger(t))
|
||||
require.NoError(t, err)
|
||||
@@ -45,9 +42,7 @@ func TestFileRotator_CreateNewFile(t *testing.T) {
|
||||
func TestFileRotator_OpenLastFile(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fname1 := filepath.Join(path, "redis.stdout.0")
|
||||
fname2 := filepath.Join(path, "redis.stdout.2")
|
||||
@@ -70,9 +65,7 @@ func TestFileRotator_OpenLastFile(t *testing.T) {
|
||||
func TestFileRotator_WriteToCurrentFile(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fname1 := filepath.Join(path, "redis.stdout.0")
|
||||
f1, err := os.Create(fname1)
|
||||
@@ -104,9 +97,7 @@ func TestFileRotator_WriteToCurrentFile(t *testing.T) {
|
||||
func TestFileRotator_RotateFiles(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 10, 5, testlog.HCLogger(t))
|
||||
require.NoError(t, err)
|
||||
@@ -149,9 +140,7 @@ func TestFileRotator_RotateFiles(t *testing.T) {
|
||||
func TestFileRotator_RotateFiles_Boundary(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 10, 5, testlog.HCLogger(t))
|
||||
require.NoError(t, err)
|
||||
@@ -197,12 +186,10 @@ func TestFileRotator_RotateFiles_Boundary(t *testing.T) {
|
||||
func TestFileRotator_WriteRemaining(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fname1 := filepath.Join(path, "redis.stdout.0")
|
||||
err = ioutil.WriteFile(fname1, []byte("abcd"), 0600)
|
||||
err := ioutil.WriteFile(fname1, []byte("abcd"), 0600)
|
||||
require.NoError(t, err)
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 10, 5, testlog.HCLogger(t))
|
||||
@@ -259,9 +246,7 @@ func TestFileRotator_WriteRemaining(t *testing.T) {
|
||||
func TestFileRotator_PurgeOldFiles(t *testing.T) {
|
||||
defer goleak.VerifyNone(t)
|
||||
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := t.TempDir()
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 2, 2, testlog.HCLogger(t))
|
||||
require.NoError(t, err)
|
||||
@@ -298,9 +283,7 @@ func BenchmarkRotator(b *testing.B) {
|
||||
}
|
||||
|
||||
func benchmarkRotatorWithInputSize(size int, b *testing.B) {
|
||||
path, err := ioutil.TempDir("", pathPrefix)
|
||||
require.NoError(b, err)
|
||||
defer os.RemoveAll(path)
|
||||
path := b.TempDir()
|
||||
|
||||
fr, err := NewFileRotator(path, baseFileName, 5, 1024*1024, testlog.HCLogger(b))
|
||||
require.NoError(b, err)
|
||||
|
||||
@@ -23,9 +23,7 @@ func TestLogmon_Start_rotate(t *testing.T) {
|
||||
require := require.New(t)
|
||||
var stdoutFifoPath, stderrFifoPath string
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(err)
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
stdoutFifoPath = "//./pipe/test-rotate.stdout"
|
||||
@@ -89,9 +87,7 @@ func TestLogmon_Start_restart_flusheslogs(t *testing.T) {
|
||||
require := require.New(t)
|
||||
var stdoutFifoPath, stderrFifoPath string
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(err)
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
stdoutFifoPath = "//./pipe/test-restart.stdout"
|
||||
@@ -194,9 +190,7 @@ func TestLogmon_Start_restart(t *testing.T) {
|
||||
require := require.New(t)
|
||||
var stdoutFifoPath, stderrFifoPath string
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(err)
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
if runtime.GOOS == "windows" {
|
||||
stdoutFifoPath = "//./pipe/test-restart.stdout"
|
||||
@@ -220,6 +214,9 @@ func TestLogmon_Start_restart(t *testing.T) {
|
||||
impl, ok := lm.(*logmonImpl)
|
||||
require.True(ok)
|
||||
require.NoError(lm.Start(cfg))
|
||||
t.Cleanup(func() {
|
||||
require.NoError(lm.Stop())
|
||||
})
|
||||
|
||||
stdout, err := fifo.OpenWriter(stdoutFifoPath)
|
||||
require.NoError(err)
|
||||
@@ -256,8 +253,15 @@ func TestLogmon_Start_restart(t *testing.T) {
|
||||
|
||||
stdout, err = fifo.OpenWriter(stdoutFifoPath)
|
||||
require.NoError(err)
|
||||
t.Cleanup(func() {
|
||||
require.NoError(stdout.Close())
|
||||
})
|
||||
|
||||
stderr, err = fifo.OpenWriter(stderrFifoPath)
|
||||
require.NoError(err)
|
||||
t.Cleanup(func() {
|
||||
require.NoError(stderr.Close())
|
||||
})
|
||||
|
||||
_, err = stdout.Write([]byte("test\n"))
|
||||
require.NoError(err)
|
||||
|
||||
@@ -3,7 +3,6 @@ package csimanager
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"runtime"
|
||||
"testing"
|
||||
@@ -18,13 +17,6 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func tmpDir(t testing.TB) string {
|
||||
t.Helper()
|
||||
dir, err := ioutil.TempDir("", "nomad")
|
||||
require.NoError(t, err)
|
||||
return dir
|
||||
}
|
||||
|
||||
func checkMountSupport() bool {
|
||||
path, err := os.Getwd()
|
||||
if err != nil {
|
||||
@@ -93,8 +85,7 @@ func TestVolumeManager_ensureStagingDir(t *testing.T) {
|
||||
}
|
||||
|
||||
// Step 2: Test Setup
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
eventer := func(e *structs.NodeEvent) {}
|
||||
@@ -193,8 +184,7 @@ func TestVolumeManager_stageVolume(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.Name, func(t *testing.T) {
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
csiFake.NextNodeStageVolumeErr = tc.PluginErr
|
||||
@@ -252,8 +242,7 @@ func TestVolumeManager_unstageVolume(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.Name, func(t *testing.T) {
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
csiFake.NextNodeUnstageVolumeErr = tc.PluginErr
|
||||
@@ -376,8 +365,7 @@ func TestVolumeManager_publishVolume(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.Name, func(t *testing.T) {
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
csiFake.NextNodePublishVolumeErr = tc.PluginErr
|
||||
@@ -444,8 +432,7 @@ func TestVolumeManager_unpublishVolume(t *testing.T) {
|
||||
|
||||
for _, tc := range cases {
|
||||
t.Run(tc.Name, func(t *testing.T) {
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
csiFake.NextNodeUnpublishVolumeErr = tc.PluginErr
|
||||
@@ -474,8 +461,7 @@ func TestVolumeManager_MountVolumeEvents(t *testing.T) {
|
||||
}
|
||||
ci.Parallel(t)
|
||||
|
||||
tmpPath := tmpDir(t)
|
||||
defer os.RemoveAll(tmpPath)
|
||||
tmpPath := t.TempDir()
|
||||
|
||||
csiFake := &csifake.Client{}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package state
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"reflect"
|
||||
"sync"
|
||||
@@ -20,9 +19,8 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func setupBoltStateDB(t *testing.T) (*BoltStateDB, func()) {
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
func setupBoltStateDB(t *testing.T) *BoltStateDB {
|
||||
dir := t.TempDir()
|
||||
|
||||
db, err := NewBoltStateDB(testlog.HCLogger(t), dir)
|
||||
if err != nil {
|
||||
@@ -32,21 +30,17 @@ func setupBoltStateDB(t *testing.T) (*BoltStateDB, func()) {
|
||||
t.Fatalf("error creating boltdb: %v", err)
|
||||
}
|
||||
|
||||
cleanup := func() {
|
||||
t.Cleanup(func() {
|
||||
if err := db.Close(); err != nil {
|
||||
t.Errorf("error closing boltdb: %v", err)
|
||||
}
|
||||
if err := os.RemoveAll(dir); err != nil {
|
||||
t.Logf("error removing boltdb dir: %v", err)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return db.(*BoltStateDB), cleanup
|
||||
return db.(*BoltStateDB)
|
||||
}
|
||||
|
||||
func testDB(t *testing.T, f func(*testing.T, StateDB)) {
|
||||
boltdb, cleanup := setupBoltStateDB(t)
|
||||
defer cleanup()
|
||||
boltdb := setupBoltStateDB(t)
|
||||
|
||||
memdb := NewMemDB(testlog.HCLogger(t))
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"compress/gzip"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -72,9 +71,7 @@ func TestBoltStateDB_UpgradeOld_Ok(t *testing.T) {
|
||||
for _, fn := range pre09files {
|
||||
t.Run(fn, func(t *testing.T) {
|
||||
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
db := dbFromTestFile(t, dir, fn)
|
||||
defer db.Close()
|
||||
@@ -133,9 +130,7 @@ func TestBoltStateDB_UpgradeOld_Ok(t *testing.T) {
|
||||
|
||||
t.Run("testdata/state-1.2.6.db.gz", func(t *testing.T) {
|
||||
fn := "testdata/state-1.2.6.db.gz"
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
defer os.RemoveAll(dir)
|
||||
dir := t.TempDir()
|
||||
|
||||
db := dbFromTestFile(t, dir, fn)
|
||||
defer db.Close()
|
||||
|
||||
@@ -2,8 +2,6 @@ package state
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
@@ -15,20 +13,17 @@ import (
|
||||
"go.etcd.io/bbolt"
|
||||
)
|
||||
|
||||
func setupBoltDB(t *testing.T) (*bbolt.DB, func()) {
|
||||
dir, err := ioutil.TempDir("", "nomadtest")
|
||||
require.NoError(t, err)
|
||||
func setupBoltDB(t *testing.T) *bbolt.DB {
|
||||
dir := t.TempDir()
|
||||
|
||||
db, err := bbolt.Open(filepath.Join(dir, "state.db"), 0666, nil)
|
||||
if err != nil {
|
||||
os.RemoveAll(dir)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
|
||||
return db, func() {
|
||||
t.Cleanup(func() {
|
||||
require.NoError(t, db.Close())
|
||||
require.NoError(t, os.RemoveAll(dir))
|
||||
}
|
||||
})
|
||||
|
||||
return db
|
||||
}
|
||||
|
||||
// TestUpgrade_NeedsUpgrade_New asserts new state dbs do not need upgrading.
|
||||
@@ -36,8 +31,7 @@ func TestUpgrade_NeedsUpgrade_New(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
// Setting up a new StateDB should initialize it at the latest version.
|
||||
db, cleanup := setupBoltStateDB(t)
|
||||
defer cleanup()
|
||||
db := setupBoltStateDB(t)
|
||||
|
||||
to09, to12, err := NeedsUpgrade(db.DB().BoltDB())
|
||||
require.NoError(t, err)
|
||||
@@ -50,8 +44,7 @@ func TestUpgrade_NeedsUpgrade_New(t *testing.T) {
|
||||
func TestUpgrade_NeedsUpgrade_Old(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
db, cleanup := setupBoltDB(t)
|
||||
defer cleanup()
|
||||
db := setupBoltDB(t)
|
||||
|
||||
// Create the allocations bucket which exists in both the old and 0.9
|
||||
// schemas
|
||||
@@ -89,8 +82,7 @@ func TestUpgrade_NeedsUpgrade_Error(t *testing.T) {
|
||||
for _, tc := range cases {
|
||||
tc := tc
|
||||
t.Run(fmt.Sprintf("%v", tc), func(t *testing.T) {
|
||||
db, cleanup := setupBoltDB(t)
|
||||
defer cleanup()
|
||||
db := setupBoltDB(t)
|
||||
|
||||
require.NoError(t, db.Update(func(tx *bbolt.Tx) error {
|
||||
bkt, err := tx.CreateBucketIfNotExists(metaBucketName)
|
||||
@@ -110,8 +102,7 @@ func TestUpgrade_NeedsUpgrade_Error(t *testing.T) {
|
||||
func TestUpgrade_DeleteInvalidAllocs_NoAlloc(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
bdb, cleanup := setupBoltDB(t)
|
||||
defer cleanup()
|
||||
bdb := setupBoltDB(t)
|
||||
|
||||
db := boltdd.New(bdb)
|
||||
|
||||
@@ -155,8 +146,7 @@ func TestUpgrade_DeleteInvalidAllocs_NoAlloc(t *testing.T) {
|
||||
func TestUpgrade_upgradeTaskBucket_InvalidEntries(t *testing.T) {
|
||||
ci.Parallel(t)
|
||||
|
||||
db, cleanup := setupBoltDB(t)
|
||||
defer cleanup()
|
||||
db := setupBoltDB(t)
|
||||
|
||||
taskName := []byte("fake-task")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user