Merge pull request #6681 from Juneezee/test/t.TempDir
This commit is contained in:
commit
79d7df70d6
@ -122,10 +122,7 @@ func TestCompressDecompressUncompressed(t *testing.T) {
|
|||||||
|
|
||||||
func TestDetectPigz(t *testing.T) {
|
func TestDetectPigz(t *testing.T) {
|
||||||
// Create fake PATH with unpigz executable, make sure detectPigz can find it
|
// Create fake PATH with unpigz executable, make sure detectPigz can find it
|
||||||
tempPath, err := os.MkdirTemp("", "containerd_temp_")
|
tempPath := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
filename := "unpigz"
|
filename := "unpigz"
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
@ -138,8 +135,6 @@ func TestDetectPigz(t *testing.T) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer os.RemoveAll(tempPath)
|
|
||||||
|
|
||||||
oldPath := os.Getenv("PATH")
|
oldPath := os.Getenv("PATH")
|
||||||
os.Setenv("PATH", tempPath)
|
os.Setenv("PATH", tempPath)
|
||||||
defer os.Setenv("PATH", oldPath)
|
defer os.Setenv("PATH", oldPath)
|
||||||
|
@ -36,11 +36,7 @@ func TestPrefixHeaderReadable(t *testing.T) {
|
|||||||
// https://gist.github.com/stevvooe/e2a790ad4e97425896206c0816e1a882#file-out-go
|
// https://gist.github.com/stevvooe/e2a790ad4e97425896206c0816e1a882#file-out-go
|
||||||
var testFile = []byte("\x1f\x8b\x08\x08\x44\x21\x68\x59\x00\x03\x74\x2e\x74\x61\x72\x00\x4b\xcb\xcf\x67\xa0\x35\x30\x80\x00\x86\x06\x10\x47\x01\xc1\x37\x40\x00\x54\xb6\xb1\xa1\xa9\x99\x09\x48\x25\x1d\x40\x69\x71\x49\x62\x91\x02\xe5\x76\xa1\x79\x84\x21\x91\xd6\x80\x72\xaf\x8f\x82\x51\x30\x0a\x46\x36\x00\x00\xf0\x1c\x1e\x95\x00\x06\x00\x00")
|
var testFile = []byte("\x1f\x8b\x08\x08\x44\x21\x68\x59\x00\x03\x74\x2e\x74\x61\x72\x00\x4b\xcb\xcf\x67\xa0\x35\x30\x80\x00\x86\x06\x10\x47\x01\xc1\x37\x40\x00\x54\xb6\xb1\xa1\xa9\x99\x09\x48\x25\x1d\x40\x69\x71\x49\x62\x91\x02\xe5\x76\xa1\x79\x84\x21\x91\xd6\x80\x72\xaf\x8f\x82\x51\x30\x0a\x46\x36\x00\x00\xf0\x1c\x1e\x95\x00\x06\x00\x00")
|
||||||
|
|
||||||
tmpDir, err := os.MkdirTemp("", "prefix-test")
|
tmpDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
r, err := compression.DecompressStream(bytes.NewReader(testFile))
|
r, err := compression.DecompressStream(bytes.NewReader(testFile))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -36,11 +36,7 @@ import (
|
|||||||
func TestOverlayApply(t *testing.T) {
|
func TestOverlayApply(t *testing.T) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
|
|
||||||
base, err := os.MkdirTemp("", "test-ovl-diff-apply-")
|
base := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unable to create temp dir: %+v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(base)
|
|
||||||
|
|
||||||
if err := overlayutils.Supported(base); err != nil {
|
if err := overlayutils.Supported(base); err != nil {
|
||||||
t.Skipf("skipping because overlay is not supported %v", err)
|
t.Skipf("skipping because overlay is not supported %v", err)
|
||||||
@ -55,11 +51,7 @@ func TestOverlayApply(t *testing.T) {
|
|||||||
func TestOverlayApplyNoParents(t *testing.T) {
|
func TestOverlayApplyNoParents(t *testing.T) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
|
|
||||||
base, err := os.MkdirTemp("", "test-ovl-diff-apply-")
|
base := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unable to create temp dir: %+v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(base)
|
|
||||||
|
|
||||||
if err := overlayutils.Supported(base); err != nil {
|
if err := overlayutils.Supported(base); err != nil {
|
||||||
t.Skipf("skipping because overlay is not supported %v", err)
|
t.Skipf("skipping because overlay is not supported %v", err)
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
"archive/tar"
|
"archive/tar"
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
_ "crypto/sha256"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
@ -31,8 +32,6 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
_ "crypto/sha256"
|
|
||||||
|
|
||||||
"github.com/containerd/containerd/archive/tartest"
|
"github.com/containerd/containerd/archive/tartest"
|
||||||
"github.com/containerd/containerd/pkg/testutil"
|
"github.com/containerd/containerd/pkg/testutil"
|
||||||
"github.com/containerd/continuity/fs"
|
"github.com/containerd/continuity/fs"
|
||||||
@ -58,7 +57,7 @@ var baseApplier = fstest.Apply(
|
|||||||
func TestUnpack(t *testing.T) {
|
func TestUnpack(t *testing.T) {
|
||||||
requireTar(t)
|
requireTar(t)
|
||||||
|
|
||||||
if err := testApply(baseApplier); err != nil {
|
if err := testApply(t, baseApplier); err != nil {
|
||||||
t.Fatalf("Test apply failed: %+v", err)
|
t.Fatalf("Test apply failed: %+v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,7 +65,7 @@ func TestUnpack(t *testing.T) {
|
|||||||
func TestBaseDiff(t *testing.T) {
|
func TestBaseDiff(t *testing.T) {
|
||||||
requireTar(t)
|
requireTar(t)
|
||||||
|
|
||||||
if err := testBaseDiff(baseApplier); err != nil {
|
if err := testBaseDiff(t, baseApplier); err != nil {
|
||||||
t.Fatalf("Test base diff failed: %+v", err)
|
t.Fatalf("Test base diff failed: %+v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +101,7 @@ func TestRelativeSymlinks(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, bo := range breakoutLinks {
|
for _, bo := range breakoutLinks {
|
||||||
if err := testDiffApply(bo); err != nil {
|
if err := testDiffApply(t, bo); err != nil {
|
||||||
t.Fatalf("Test apply failed: %+v", err)
|
t.Fatalf("Test apply failed: %+v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -179,7 +178,7 @@ func TestSymlinks(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i, l := range links {
|
for i, l := range links {
|
||||||
if err := testDiffApply(l[0], l[1]); err != nil {
|
if err := testDiffApply(t, l[0], l[1]); err != nil {
|
||||||
t.Fatalf("Test[%d] apply failed: %+v", i+1, err)
|
t.Fatalf("Test[%d] apply failed: %+v", i+1, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,11 +242,7 @@ func TestBreakouts(t *testing.T) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
errFileDiff := errors.New("files differ")
|
errFileDiff := errors.New("files differ")
|
||||||
td, err := os.MkdirTemp("", "test-breakouts-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(td)
|
|
||||||
|
|
||||||
isSymlinkFile := func(f string) func(string) error {
|
isSymlinkFile := func(f string) func(string) error {
|
||||||
return func(root string) error {
|
return func(root string) error {
|
||||||
@ -841,17 +836,9 @@ func TestApplyTar(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func testApply(a fstest.Applier) error {
|
func testApply(t *testing.T, a fstest.Applier) error {
|
||||||
td, err := os.MkdirTemp("", "test-apply-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
dest := t.TempDir()
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(td)
|
|
||||||
dest, err := os.MkdirTemp("", "test-apply-dest-")
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dest)
|
|
||||||
|
|
||||||
if err := a.Apply(td); err != nil {
|
if err := a.Apply(td); err != nil {
|
||||||
return fmt.Errorf("failed to apply filesystem changes: %w", err)
|
return fmt.Errorf("failed to apply filesystem changes: %w", err)
|
||||||
@ -882,17 +869,9 @@ func testApply(a fstest.Applier) error {
|
|||||||
return fstest.CheckDirectoryEqual(td, dest)
|
return fstest.CheckDirectoryEqual(td, dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testBaseDiff(a fstest.Applier) error {
|
func testBaseDiff(t *testing.T, a fstest.Applier) error {
|
||||||
td, err := os.MkdirTemp("", "test-base-diff-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
dest := t.TempDir()
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(td)
|
|
||||||
dest, err := os.MkdirTemp("", "test-base-diff-dest-")
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dest)
|
|
||||||
|
|
||||||
if err := a.Apply(td); err != nil {
|
if err := a.Apply(td); err != nil {
|
||||||
return fmt.Errorf("failed to apply filesystem changes: %w", err)
|
return fmt.Errorf("failed to apply filesystem changes: %w", err)
|
||||||
@ -909,17 +888,9 @@ func testBaseDiff(a fstest.Applier) error {
|
|||||||
return fstest.CheckDirectoryEqual(td, dest)
|
return fstest.CheckDirectoryEqual(td, dest)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testDiffApply(appliers ...fstest.Applier) error {
|
func testDiffApply(t *testing.T, appliers ...fstest.Applier) error {
|
||||||
td, err := os.MkdirTemp("", "test-diff-apply-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
dest := t.TempDir()
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(td)
|
|
||||||
dest, err := os.MkdirTemp("", "test-diff-apply-dest-")
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("failed to create temp dir: %w", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dest)
|
|
||||||
|
|
||||||
for _, a := range appliers {
|
for _, a := range appliers {
|
||||||
if err := a.Apply(td); err != nil {
|
if err := a.Apply(td); err != nil {
|
||||||
@ -950,11 +921,7 @@ func testDiffApply(appliers ...fstest.Applier) error {
|
|||||||
|
|
||||||
func makeWriterToTarTest(wt tartest.WriterToTar, a fstest.Applier, validate func(string) error, applyErr error) func(*testing.T) {
|
func makeWriterToTarTest(wt tartest.WriterToTar, a fstest.Applier, validate func(string) error, applyErr error) func(*testing.T) {
|
||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
td, err := os.MkdirTemp("", "test-writer-to-tar-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("Failed to create temp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(td)
|
|
||||||
|
|
||||||
if a != nil {
|
if a != nil {
|
||||||
if err := a.Apply(td); err != nil {
|
if err := a.Apply(td); err != nil {
|
||||||
@ -1254,20 +1221,12 @@ func whiteoutEntry(name string) tarEntryValidator {
|
|||||||
|
|
||||||
func makeDiffTarTest(validators []tarEntryValidator, a, b fstest.Applier) func(*testing.T) {
|
func makeDiffTarTest(validators []tarEntryValidator, a, b fstest.Applier) func(*testing.T) {
|
||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
ad, err := os.MkdirTemp("", "test-make-diff-tar-")
|
ad := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to create temp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(ad)
|
|
||||||
if err := a.Apply(ad); err != nil {
|
if err := a.Apply(ad); err != nil {
|
||||||
t.Fatalf("failed to apply a: %v", err)
|
t.Fatalf("failed to apply a: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
bd, err := os.MkdirTemp("", "test-make-diff-tar-")
|
bd := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to create temp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(bd)
|
|
||||||
if err := fs.CopyDir(bd, ad); err != nil {
|
if err := fs.CopyDir(bd, ad); err != nil {
|
||||||
t.Fatalf("failed to copy dir: %v", err)
|
t.Fatalf("failed to copy dir: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -49,9 +49,7 @@ func TestNewFIFOSetInDir(t *testing.T) {
|
|||||||
t.Skip("NewFIFOSetInDir has different behaviour on windows")
|
t.Skip("NewFIFOSetInDir has different behaviour on windows")
|
||||||
}
|
}
|
||||||
|
|
||||||
root, err := os.MkdirTemp("", "test-new-fifo-set")
|
root := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
|
|
||||||
fifos, err := NewFIFOSetInDir(root, "theid", true)
|
fifos, err := NewFIFOSetInDir(root, "theid", true)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
@ -21,8 +21,6 @@ package cio
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@ -65,11 +63,7 @@ func TestOpenFifosWithTerminal(t *testing.T) {
|
|||||||
var ctx, cancel = context.WithCancel(context.Background())
|
var ctx, cancel = context.WithCancel(context.Background())
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
||||||
ioFifoDir, err := os.MkdirTemp("", fmt.Sprintf("cio-%s", t.Name()))
|
ioFifoDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("unexpected error during creating temp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(ioFifoDir)
|
|
||||||
|
|
||||||
cfg := Config{
|
cfg := Config{
|
||||||
Stdout: filepath.Join(ioFifoDir, "test-stdout"),
|
Stdout: filepath.Join(ioFifoDir, "test-stdout"),
|
||||||
|
@ -291,28 +291,17 @@ func populateBlobStore(ctx context.Context, t checker, cs content.Store, nblobs,
|
|||||||
return blobs
|
return blobs
|
||||||
}
|
}
|
||||||
|
|
||||||
func contentStoreEnv(t checker) (context.Context, string, content.Store, func()) {
|
func contentStoreEnv(t testing.TB) (context.Context, string, content.Store, func()) {
|
||||||
pc, _, _, ok := runtime.Caller(1)
|
tmpdir := t.TempDir()
|
||||||
if !ok {
|
|
||||||
t.Fatal("failed to resolve caller")
|
|
||||||
}
|
|
||||||
fn := runtime.FuncForPC(pc)
|
|
||||||
|
|
||||||
tmpdir, err := os.MkdirTemp("", filepath.Base(fn.Name())+"-")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
cs, err := NewStore(tmpdir)
|
cs, err := NewStore(tmpdir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
os.RemoveAll(tmpdir)
|
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
return ctx, tmpdir, cs, func() {
|
return ctx, tmpdir, cs, func() {
|
||||||
cancel()
|
cancel()
|
||||||
os.RemoveAll(tmpdir)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -361,11 +350,7 @@ func checkWrite(ctx context.Context, t checker, cs content.Store, dgst digest.Di
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestWriterTruncateRecoversFromIncompleteWrite(t *testing.T) {
|
func TestWriterTruncateRecoversFromIncompleteWrite(t *testing.T) {
|
||||||
tmpdir, err := os.MkdirTemp("", "test-local-content-store-recover")
|
cs, err := NewStore(t.TempDir())
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tmpdir)
|
|
||||||
|
|
||||||
cs, err := NewStore(tmpdir)
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
@ -400,11 +385,7 @@ func setupIncompleteWrite(ctx context.Context, t *testing.T, cs content.Store, r
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestWriteReadEmptyFileTimestamp(t *testing.T) {
|
func TestWriteReadEmptyFileTimestamp(t *testing.T) {
|
||||||
root, err := os.MkdirTemp("", "test-write-read-file-timestamp")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Errorf("failed to create a tmp dir: %v", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
|
|
||||||
emptyFile := filepath.Join(root, "updatedat")
|
emptyFile := filepath.Join(root, "updatedat")
|
||||||
if err := writeTimestampFile(emptyFile, time.Time{}); err != nil {
|
if err := writeTimestampFile(emptyFile, time.Time{}); err != nil {
|
||||||
|
@ -31,9 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestAdditionalGids(t *testing.T) {
|
func TestAdditionalGids(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("", "additional-gids")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
t.Log("Create a sandbox with log directory")
|
t.Log("Create a sandbox with log directory")
|
||||||
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "additional-gids",
|
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "additional-gids",
|
||||||
|
@ -455,11 +455,7 @@ func TestCheckpointRestoreWithImagePath(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create image path store criu image files
|
// create image path store criu image files
|
||||||
crDir, err := os.MkdirTemp("", "test-cr")
|
crDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(crDir)
|
|
||||||
imagePath := filepath.Join(crDir, "cr")
|
imagePath := filepath.Join(crDir, "cr")
|
||||||
// checkpoint task
|
// checkpoint task
|
||||||
if _, err := task.Checkpoint(ctx, WithCheckpointImagePath(imagePath)); err != nil {
|
if _, err := task.Checkpoint(ctx, WithCheckpointImagePath(imagePath)); err != nil {
|
||||||
|
@ -35,15 +35,7 @@ import (
|
|||||||
|
|
||||||
// TestDaemonRuntimeRoot ensures plugin.linux.runtime_root is not ignored
|
// TestDaemonRuntimeRoot ensures plugin.linux.runtime_root is not ignored
|
||||||
func TestDaemonRuntimeRoot(t *testing.T) {
|
func TestDaemonRuntimeRoot(t *testing.T) {
|
||||||
runtimeRoot, err := os.MkdirTemp("", "containerd-test-runtime-root")
|
runtimeRoot := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if err != nil {
|
|
||||||
os.RemoveAll(runtimeRoot)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
configTOML := `
|
configTOML := `
|
||||||
version = 2
|
version = 2
|
||||||
[plugins]
|
[plugins]
|
||||||
|
@ -49,22 +49,14 @@ func newDaemonWithConfig(t *testing.T, configTOML string) (*Client, *daemon, fun
|
|||||||
buf = bytes.NewBuffer(nil)
|
buf = bytes.NewBuffer(nil)
|
||||||
)
|
)
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "containerd-test-new-daemon-with-config")
|
tempDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if err != nil {
|
|
||||||
os.RemoveAll(tempDir)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
configTOMLFile := filepath.Join(tempDir, "config.toml")
|
configTOMLFile := filepath.Join(tempDir, "config.toml")
|
||||||
if err = os.WriteFile(configTOMLFile, []byte(configTOML), 0600); err != nil {
|
if err := os.WriteFile(configTOMLFile, []byte(configTOML), 0600); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = srvconfig.LoadConfig(configTOMLFile, &configTOMLDecoded); err != nil {
|
if err := srvconfig.LoadConfig(configTOMLFile, &configTOMLDecoded); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,7 +75,7 @@ func newDaemonWithConfig(t *testing.T, configTOML string) (*Client, *daemon, fun
|
|||||||
if configTOMLDecoded.State == "" {
|
if configTOMLDecoded.State == "" {
|
||||||
args = append(args, "--state", filepath.Join(tempDir, "state"))
|
args = append(args, "--state", filepath.Join(tempDir, "state"))
|
||||||
}
|
}
|
||||||
if err = ctrd.start("containerd", address, args, buf, buf); err != nil {
|
if err := ctrd.start("containerd", address, args, buf, buf); err != nil {
|
||||||
t.Fatalf("%v: %s", err, buf.String())
|
t.Fatalf("%v: %s", err, buf.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,9 +30,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("", "container-log-without-tailing-newline")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
t.Log("Create a sandbox with log directory")
|
t.Log("Create a sandbox with log directory")
|
||||||
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "container-log-without-tailing-newline",
|
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "container-log-without-tailing-newline",
|
||||||
@ -80,9 +78,7 @@ func TestContainerLogWithoutTailingNewLine(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLongContainerLog(t *testing.T) {
|
func TestLongContainerLog(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("", "long-container-log")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
t.Log("Create a sandbox with log directory")
|
t.Log("Create a sandbox with log directory")
|
||||||
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "long-container-log",
|
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "long-container-log",
|
||||||
|
@ -83,13 +83,8 @@ func TestContainerSymlinkVolumes(t *testing.T) {
|
|||||||
} {
|
} {
|
||||||
testCase := testCase // capture range variable
|
testCase := testCase // capture range variable
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("", "symlink-test")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
testVolDir := t.TempDir()
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
testVolDir, err := os.MkdirTemp("", "symlink-test-vol")
|
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testVolDir)
|
|
||||||
|
|
||||||
content := "hello there\n"
|
content := "hello there\n"
|
||||||
regularFile, err := createRegularFile(testVolDir, content)
|
regularFile, err := createRegularFile(testVolDir, content)
|
||||||
|
@ -17,12 +17,10 @@
|
|||||||
package integration
|
package integration
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
exec "golang.org/x/sys/execabs"
|
exec "golang.org/x/sys/execabs"
|
||||||
runtime "k8s.io/cri-api/pkg/apis/runtime/v1"
|
runtime "k8s.io/cri-api/pkg/apis/runtime/v1"
|
||||||
@ -40,12 +38,9 @@ func TestImageLoad(t *testing.T) {
|
|||||||
output, err := exec.Command("docker", "pull", testImage).CombinedOutput()
|
output, err := exec.Command("docker", "pull", testImage).CombinedOutput()
|
||||||
require.NoError(t, err, "output: %q", output)
|
require.NoError(t, err, "output: %q", output)
|
||||||
// os.CreateTemp also opens a file, which might prevent us from overwriting that file with docker save.
|
// os.CreateTemp also opens a file, which might prevent us from overwriting that file with docker save.
|
||||||
tarDir, err := os.MkdirTemp("", "image-load")
|
tarDir := t.TempDir()
|
||||||
tar := filepath.Join(tarDir, "image.tar")
|
tar := filepath.Join(tarDir, "image.tar")
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
defer func() {
|
|
||||||
assert.NoError(t, os.RemoveAll(tarDir))
|
|
||||||
}()
|
|
||||||
output, err = exec.Command("docker", "save", testImage, "-o", tar).CombinedOutput()
|
output, err = exec.Command("docker", "save", testImage, "-o", tar).CombinedOutput()
|
||||||
require.NoError(t, err, "output: %q", output)
|
require.NoError(t, err, "output: %q", output)
|
||||||
|
|
||||||
|
@ -31,9 +31,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestPodDualStack(t *testing.T) {
|
func TestPodDualStack(t *testing.T) {
|
||||||
testPodLogDir, err := os.MkdirTemp("", "dualstack")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
t.Log("Create a sandbox")
|
t.Log("Create a sandbox")
|
||||||
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "dualstack", WithPodLogDirectory(testPodLogDir))
|
sb, sbConfig := PodSandboxConfigWithCleanup(t, "sandbox", "dualstack", WithPodLogDirectory(testPodLogDir))
|
||||||
|
@ -64,9 +64,7 @@ func TestPodHostname(t *testing.T) {
|
|||||||
if test.needsHostNetwork && goruntime.GOOS == "windows" {
|
if test.needsHostNetwork && goruntime.GOOS == "windows" {
|
||||||
t.Skip("Skipped on Windows.")
|
t.Skip("Skipped on Windows.")
|
||||||
}
|
}
|
||||||
testPodLogDir, err := os.MkdirTemp("", "hostname")
|
testPodLogDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testPodLogDir)
|
|
||||||
|
|
||||||
opts := append(test.opts, WithPodLogDirectory(testPodLogDir))
|
opts := append(test.opts, WithPodLogDirectory(testPodLogDir))
|
||||||
t.Log("Create a sandbox with hostname")
|
t.Log("Create a sandbox with hostname")
|
||||||
|
@ -150,10 +150,7 @@ func testFailFastWhenConnectShim(abstract bool, dialFn dialFunc) func(*testing.T
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newTestListener(t testing.TB, abstract bool) (string, net.Listener, func()) {
|
func newTestListener(t testing.TB, abstract bool) (string, net.Listener, func()) {
|
||||||
tmpDir, err := os.MkdirTemp("", "shim-ut-XX")
|
tmpDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to create tmp directory: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE(fuweid):
|
// NOTE(fuweid):
|
||||||
//
|
//
|
||||||
|
@ -20,10 +20,8 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -715,10 +713,7 @@ func testEnv(t *testing.T) (context.Context, *bolt.DB, func()) {
|
|||||||
ctx = namespaces.WithNamespace(ctx, "testing")
|
ctx = namespaces.WithNamespace(ctx, "testing")
|
||||||
ctx = logtest.WithT(ctx, t)
|
ctx = logtest.WithT(ctx, t)
|
||||||
|
|
||||||
dirname, err := os.MkdirTemp("", strings.Replace(t.Name(), "/", "_", -1)+"-")
|
dirname := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
db, err := bolt.Open(filepath.Join(dirname, "meta.db"), 0644, nil)
|
db, err := bolt.Open(filepath.Join(dirname, "meta.db"), 0644, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -727,9 +722,6 @@ func testEnv(t *testing.T) (context.Context, *bolt.DB, func()) {
|
|||||||
|
|
||||||
return ctx, db, func() {
|
return ctx, db, func() {
|
||||||
db.Close()
|
db.Close()
|
||||||
if err := os.RemoveAll(dirname); err != nil {
|
|
||||||
t.Log("failed removing temp dir", err)
|
|
||||||
}
|
|
||||||
cancel()
|
cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
"strings"
|
"strings"
|
||||||
@ -73,10 +72,7 @@ func testDB(t *testing.T, opt ...testOpt) (context.Context, *DB, func()) {
|
|||||||
o(&topts)
|
o(&topts)
|
||||||
}
|
}
|
||||||
|
|
||||||
dirname, err := os.MkdirTemp("", strings.Replace(t.Name(), "/", "_", -1)+"-")
|
dirname := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
snapshotter, err := native.NewSnapshotter(filepath.Join(dirname, "native"))
|
snapshotter, err := native.NewSnapshotter(filepath.Join(dirname, "native"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -112,9 +108,6 @@ func testDB(t *testing.T, opt ...testOpt) (context.Context, *DB, func()) {
|
|||||||
|
|
||||||
return ctx, db, func() {
|
return ctx, db, func() {
|
||||||
bdb.Close()
|
bdb.Close()
|
||||||
if err := os.RemoveAll(dirname); err != nil {
|
|
||||||
t.Log("failed removing temp dir", err)
|
|
||||||
}
|
|
||||||
cancel()
|
cancel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -764,10 +757,7 @@ type testLease struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newStores(t testing.TB) (*DB, content.Store, snapshots.Snapshotter, func()) {
|
func newStores(t testing.TB) (*DB, content.Store, snapshots.Snapshotter, func()) {
|
||||||
td, err := os.MkdirTemp("", "gc-test-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
db, err := bolt.Open(filepath.Join(td, "meta.db"), 0644, nil)
|
db, err := bolt.Open(filepath.Join(td, "meta.db"), 0644, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -786,6 +776,7 @@ func newStores(t testing.TB) (*DB, content.Store, snapshots.Snapshotter, func())
|
|||||||
mdb := NewDB(db, lcs, map[string]snapshots.Snapshotter{"native": nsn})
|
mdb := NewDB(db, lcs, map[string]snapshots.Snapshotter{"native": nsn})
|
||||||
|
|
||||||
return mdb, mdb.ContentStore(), mdb.Snapshotter("native"), func() {
|
return mdb, mdb.ContentStore(), mdb.Snapshotter("native"), func() {
|
||||||
os.RemoveAll(td)
|
nsn.Close()
|
||||||
|
db.Close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"io"
|
"io"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"sort"
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
@ -42,7 +41,7 @@ func TestResourceMax(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGCRoots(t *testing.T) {
|
func TestGCRoots(t *testing.T) {
|
||||||
db, cleanup, err := newDatabase()
|
db, cleanup, err := newDatabase(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -163,7 +162,7 @@ func TestGCRoots(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGCRemove(t *testing.T) {
|
func TestGCRemove(t *testing.T) {
|
||||||
db, cleanup, err := newDatabase()
|
db, cleanup, err := newDatabase(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -256,7 +255,7 @@ func TestGCRemove(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGCRefs(t *testing.T) {
|
func TestGCRefs(t *testing.T) {
|
||||||
db, cleanup, err := newDatabase()
|
db, cleanup, err := newDatabase(t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -387,21 +386,16 @@ func TestGCRefs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func newDatabase() (*bolt.DB, func(), error) {
|
func newDatabase(t testing.TB) (*bolt.DB, func(), error) {
|
||||||
td, err := os.MkdirTemp("", "gc-roots-")
|
td := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
return nil, nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
db, err := bolt.Open(filepath.Join(td, "test.db"), 0777, nil)
|
db, err := bolt.Open(filepath.Join(td, "test.db"), 0777, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
os.RemoveAll(td)
|
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return db, func() {
|
return db, func() {
|
||||||
db.Close()
|
db.Close()
|
||||||
os.RemoveAll(td)
|
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,11 +45,7 @@ func makeTestForFMountat(fn fMountatCaseFunc) func(t *testing.T) {
|
|||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
suiteDir, err := os.MkdirTemp("", "fmountat-test-")
|
suiteDir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(suiteDir)
|
|
||||||
|
|
||||||
fn(t, suiteDir)
|
fn(t, suiteDir)
|
||||||
}
|
}
|
||||||
|
@ -41,11 +41,7 @@ func checkLookup(t *testing.T, fsType, mntPoint, dir string) {
|
|||||||
|
|
||||||
func testLookup(t *testing.T, fsType string) {
|
func testLookup(t *testing.T, fsType string) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
mnt, err := os.MkdirTemp("", "containerd-mountinfo-test-lookup")
|
mnt := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(mnt)
|
|
||||||
|
|
||||||
loop, err := loopback.New(100 << 20) // 100 MB
|
loop, err := loopback.New(100 << 20) // 100 MB
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -68,11 +64,7 @@ func testLookup(t *testing.T, fsType string) {
|
|||||||
assert.Check(t, strings.HasPrefix(loop.Device, "/dev/loop"))
|
assert.Check(t, strings.HasPrefix(loop.Device, "/dev/loop"))
|
||||||
checkLookup(t, fsType, mnt, mnt)
|
checkLookup(t, fsType, mnt, mnt)
|
||||||
|
|
||||||
newMnt, err := os.MkdirTemp("", "containerd-mountinfo-test-newMnt")
|
newMnt := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(newMnt)
|
|
||||||
|
|
||||||
if out, err := exec.Command("mount", "--bind", mnt, newMnt).CombinedOutput(); err != nil {
|
if out, err := exec.Command("mount", "--bind", mnt, newMnt).CombinedOutput(); err != nil {
|
||||||
t.Fatalf("could not mount %s to %s: %v (out: %q)", mnt, newMnt, err, string(out))
|
t.Fatalf("could not mount %s to %s: %v (out: %q)", mnt, newMnt, err, string(out))
|
||||||
@ -99,21 +91,10 @@ func TestLookupWithXFS(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLookupWithOverlay(t *testing.T) {
|
func TestLookupWithOverlay(t *testing.T) {
|
||||||
lower, err := os.MkdirTemp("", "containerd-mountinfo-test-lower")
|
lower := t.TempDir()
|
||||||
assert.NilError(t, err)
|
upper := t.TempDir()
|
||||||
defer os.RemoveAll(lower)
|
work := t.TempDir()
|
||||||
|
overlay := t.TempDir()
|
||||||
upper, err := os.MkdirTemp("", "containerd-mountinfo-test-upper")
|
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(upper)
|
|
||||||
|
|
||||||
work, err := os.MkdirTemp("", "containerd-mountinfo-test-work")
|
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(work)
|
|
||||||
|
|
||||||
overlay, err := os.MkdirTemp("", "containerd-mountinfo-test-overlay")
|
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(overlay)
|
|
||||||
|
|
||||||
if out, err := exec.Command("mount", "-t", "overlay", "overlay", "-o", fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s",
|
if out, err := exec.Command("mount", "-t", "overlay", "overlay", "-o", fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s",
|
||||||
lower, upper, work), overlay).CombinedOutput(); err != nil {
|
lower, upper, work), overlay).CombinedOutput(); err != nil {
|
||||||
@ -123,7 +104,7 @@ func TestLookupWithOverlay(t *testing.T) {
|
|||||||
defer testutil.Unmount(t, overlay)
|
defer testutil.Unmount(t, overlay)
|
||||||
|
|
||||||
testdir := filepath.Join(overlay, "testdir")
|
testdir := filepath.Join(overlay, "testdir")
|
||||||
err = os.Mkdir(testdir, 0777)
|
err := os.Mkdir(testdir, 0777)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
testfile := filepath.Join(overlay, "testfile")
|
testfile := filepath.Join(overlay, "testfile")
|
||||||
|
@ -104,15 +104,7 @@ func TestFUSEHelper(t *testing.T) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
t.Skip("fuse-overlayfs not installed")
|
t.Skip("fuse-overlayfs not installed")
|
||||||
}
|
}
|
||||||
td, err := os.MkdirTemp("", "fuse")
|
td := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
if err := os.RemoveAll(td); err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
for _, dir := range []string{"lower1", "lower2", "upper", "work", "merged"} {
|
for _, dir := range []string{"lower1", "lower2", "upper", "work", "merged"} {
|
||||||
if err := os.Mkdir(filepath.Join(td, dir), 0755); err != nil {
|
if err := os.Mkdir(filepath.Join(td, dir), 0755); err != nil {
|
||||||
|
@ -65,15 +65,9 @@ func TestEnsureRemoveAllWithMount(t *testing.T) {
|
|||||||
t.Skip("skipping test that requires root")
|
t.Skip("skipping test that requires root")
|
||||||
}
|
}
|
||||||
|
|
||||||
dir1, err := os.MkdirTemp("", "test-ensure-removeall-with-dir1")
|
var err error
|
||||||
if err != nil {
|
dir1 := t.TempDir()
|
||||||
t.Fatal(err)
|
dir2 := t.TempDir()
|
||||||
}
|
|
||||||
dir2, err := os.MkdirTemp("", "test-ensure-removeall-with-dir2")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir2)
|
|
||||||
|
|
||||||
bindDir := filepath.Join(dir1, "bind")
|
bindDir := filepath.Join(dir1, "bind")
|
||||||
if err := os.MkdirAll(bindDir, 0755); err != nil {
|
if err := os.MkdirAll(bindDir, 0755); err != nil {
|
||||||
|
@ -492,10 +492,7 @@ func TestEnsureRemoveAllNotExist(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestEnsureRemoveAllWithDir(t *testing.T) {
|
func TestEnsureRemoveAllWithDir(t *testing.T) {
|
||||||
dir, err := os.MkdirTemp("", "test-ensure-removeall-with-dir")
|
dir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
if err := ensureRemoveAll(context.Background(), dir); err != nil {
|
if err := ensureRemoveAll(context.Background(), dir); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -93,11 +93,9 @@ func TestUpdateRuntimeConfig(t *testing.T) {
|
|||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
testDir, err := os.MkdirTemp(os.TempDir(), "test-runtime-config")
|
testDir := t.TempDir()
|
||||||
require.NoError(t, err)
|
|
||||||
defer os.RemoveAll(testDir)
|
|
||||||
templateName := filepath.Join(testDir, "template")
|
templateName := filepath.Join(testDir, "template")
|
||||||
err = os.WriteFile(templateName, []byte(testTemplate), 0666)
|
err := os.WriteFile(templateName, []byte(testTemplate), 0666)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
confDir := filepath.Join(testDir, "net.d")
|
confDir := filepath.Join(testDir, "net.d")
|
||||||
confName := filepath.Join(confDir, cniConfigFileName)
|
confName := filepath.Join(confDir, cniConfigFileName)
|
||||||
|
@ -114,9 +114,7 @@ func TestStatus(t *testing.T) {
|
|||||||
assert := assertlib.New(t)
|
assert := assertlib.New(t)
|
||||||
require := requirelib.New(t)
|
require := requirelib.New(t)
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp(os.TempDir(), "status-test")
|
tempDir := t.TempDir()
|
||||||
require.NoError(err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
statusFile := filepath.Join(tempDir, "status")
|
statusFile := filepath.Join(tempDir, "status")
|
||||||
|
|
||||||
t.Logf("simple store and get")
|
t.Logf("simple store and get")
|
||||||
|
@ -208,11 +208,7 @@ ca = "/etc/path/default"
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestLoadCertFiles(t *testing.T) {
|
func TestLoadCertFiles(t *testing.T) {
|
||||||
dir, err := os.MkdirTemp("", t.Name())
|
dir := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(dir)
|
|
||||||
|
|
||||||
type testCase struct {
|
type testCase struct {
|
||||||
input hostConfig
|
input hostConfig
|
||||||
|
@ -48,9 +48,7 @@ func TestNewBundle(t *testing.T) {
|
|||||||
|
|
||||||
for i, tc := range tests {
|
for i, tc := range tests {
|
||||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
dir, err := os.MkdirTemp("", "test-new-bundle")
|
dir := t.TempDir()
|
||||||
require.NoError(t, err, "failed to create test directory")
|
|
||||||
defer os.RemoveAll(dir)
|
|
||||||
work := filepath.Join(dir, "work")
|
work := filepath.Join(dir, "work")
|
||||||
state := filepath.Join(dir, "state")
|
state := filepath.Join(dir, "state")
|
||||||
id := fmt.Sprintf("new-bundle-%d", i)
|
id := fmt.Sprintf("new-bundle-%d", i)
|
||||||
|
@ -47,9 +47,7 @@ func TestNewBundle(t *testing.T) {
|
|||||||
|
|
||||||
for i, tc := range tests {
|
for i, tc := range tests {
|
||||||
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
t.Run(strconv.Itoa(i), func(t *testing.T) {
|
||||||
dir, err := os.MkdirTemp("", "test-new-bundle")
|
dir := t.TempDir()
|
||||||
require.NoError(t, err, "failed to create test directory")
|
|
||||||
defer os.RemoveAll(dir)
|
|
||||||
work := filepath.Join(dir, "work")
|
work := filepath.Join(dir, "work")
|
||||||
state := filepath.Join(dir, "state")
|
state := filepath.Join(dir, "state")
|
||||||
id := fmt.Sprintf("new-bundle-%d", i)
|
id := fmt.Sprintf("new-bundle-%d", i)
|
||||||
|
@ -61,12 +61,10 @@ func TestMergeConfigs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestResolveImports(t *testing.T) {
|
func TestResolveImports(t *testing.T) {
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
for _, filename := range []string{"config_1.toml", "config_2.toml", "test.toml"} {
|
for _, filename := range []string{"config_1.toml", "config_2.toml", "test.toml"} {
|
||||||
err = os.WriteFile(filepath.Join(tempDir, filename), []byte(""), 0600)
|
err := os.WriteFile(filepath.Join(tempDir, filename), []byte(""), 0600)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,12 +93,10 @@ root = "/var/lib/containerd"
|
|||||||
accepts = ["application/vnd.docker.image.rootfs.diff.tar.gzip"]
|
accepts = ["application/vnd.docker.image.rootfs.diff.tar.gzip"]
|
||||||
path = "unpigz"
|
path = "unpigz"
|
||||||
`
|
`
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
path := filepath.Join(tempDir, "config.toml")
|
path := filepath.Join(tempDir, "config.toml")
|
||||||
err = os.WriteFile(path, []byte(data), 0600)
|
err := os.WriteFile(path, []byte(data), 0600)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
var out Config
|
var out Config
|
||||||
@ -127,11 +123,9 @@ imports = ["data2.toml"]
|
|||||||
disabled_plugins = ["io.containerd.v1.xyz"]
|
disabled_plugins = ["io.containerd.v1.xyz"]
|
||||||
`
|
`
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
err = os.WriteFile(filepath.Join(tempDir, "data1.toml"), []byte(data1), 0600)
|
err := os.WriteFile(filepath.Join(tempDir, "data1.toml"), []byte(data1), 0600)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
err = os.WriteFile(filepath.Join(tempDir, "data2.toml"), []byte(data2), 0600)
|
err = os.WriteFile(filepath.Join(tempDir, "data2.toml"), []byte(data2), 0600)
|
||||||
@ -157,11 +151,9 @@ imports = ["data2.toml", "data1.toml"]
|
|||||||
disabled_plugins = ["io.containerd.v1.xyz"]
|
disabled_plugins = ["io.containerd.v1.xyz"]
|
||||||
imports = ["data1.toml", "data2.toml"]
|
imports = ["data1.toml", "data2.toml"]
|
||||||
`
|
`
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
err = os.WriteFile(filepath.Join(tempDir, "data1.toml"), []byte(data1), 0600)
|
err := os.WriteFile(filepath.Join(tempDir, "data1.toml"), []byte(data1), 0600)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
err = os.WriteFile(filepath.Join(tempDir, "data2.toml"), []byte(data2), 0600)
|
err = os.WriteFile(filepath.Join(tempDir, "data2.toml"), []byte(data2), 0600)
|
||||||
@ -189,12 +181,10 @@ version = 2
|
|||||||
shim_debug = true
|
shim_debug = true
|
||||||
`
|
`
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
path := filepath.Join(tempDir, "config.toml")
|
path := filepath.Join(tempDir, "config.toml")
|
||||||
err = os.WriteFile(path, []byte(data), 0600)
|
err := os.WriteFile(path, []byte(data), 0600)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
var out Config
|
var out Config
|
||||||
@ -215,12 +205,8 @@ func TestDecodePluginInV1Config(t *testing.T) {
|
|||||||
shim_debug = true
|
shim_debug = true
|
||||||
`
|
`
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "containerd_")
|
path := filepath.Join(t.TempDir(), "config.toml")
|
||||||
assert.NilError(t, err)
|
err := os.WriteFile(path, []byte(data), 0600)
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
path := filepath.Join(tempDir, "config.toml")
|
|
||||||
err = os.WriteFile(path, []byte(data), 0600)
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
var out Config
|
var out Config
|
||||||
|
@ -121,19 +121,7 @@ func TestBtrfsMounts(t *testing.T) {
|
|||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
// create temporary directory for mount point
|
root := t.TempDir()
|
||||||
mountPoint, err := os.MkdirTemp("", "containerd-btrfs-test")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal("could not create mount point for btrfs test", err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(mountPoint)
|
|
||||||
t.Log("temporary mount point created", mountPoint)
|
|
||||||
|
|
||||||
root, err := os.MkdirTemp(mountPoint, "TestBtrfsPrepare-")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
|
|
||||||
b, c, err := boltSnapshotter(t)(ctx, root)
|
b, c, err := boltSnapshotter(t)(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -43,19 +43,13 @@ const (
|
|||||||
func TestDMSetup(t *testing.T) {
|
func TestDMSetup(t *testing.T) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "dmsetup-tests-")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err, "failed to make temp dir for tests")
|
|
||||||
|
|
||||||
defer func() {
|
|
||||||
err := os.RemoveAll(tempDir)
|
|
||||||
assert.NilError(t, err)
|
|
||||||
}()
|
|
||||||
|
|
||||||
dataImage, loopDataDevice := createLoopbackDevice(t, tempDir)
|
dataImage, loopDataDevice := createLoopbackDevice(t, tempDir)
|
||||||
metaImage, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
metaImage, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
err = mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
err := mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
||||||
assert.NilError(t, err, "failed to detach loop devices for data image: %s and meta image: %s", dataImage, metaImage)
|
assert.NilError(t, err, "failed to detach loop devices for data image: %s and meta image: %s", dataImage, metaImage)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -87,7 +81,7 @@ func TestDMSetup(t *testing.T) {
|
|||||||
t.Run("RemoveDevice", testRemoveDevice)
|
t.Run("RemoveDevice", testRemoveDevice)
|
||||||
|
|
||||||
t.Run("RemovePool", func(t *testing.T) {
|
t.Run("RemovePool", func(t *testing.T) {
|
||||||
err = RemoveDevice(testPoolName, RemoveWithForce, RemoveWithRetries)
|
err := RemoveDevice(testPoolName, RemoveWithForce, RemoveWithRetries)
|
||||||
assert.NilError(t, err, "failed to remove thin-pool")
|
assert.NilError(t, err, "failed to remove thin-pool")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@ package devmapper
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"testing"
|
"testing"
|
||||||
@ -37,8 +36,8 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestPoolMetadata_AddDevice(t *testing.T) {
|
func TestPoolMetadata_AddDevice(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
expected := &DeviceInfo{
|
expected := &DeviceInfo{
|
||||||
Name: "test2",
|
Name: "test2",
|
||||||
@ -62,8 +61,8 @@ func TestPoolMetadata_AddDevice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_AddDeviceRollback(t *testing.T) {
|
func TestPoolMetadata_AddDeviceRollback(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: ""})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: ""})
|
||||||
assert.Assert(t, err != nil)
|
assert.Assert(t, err != nil)
|
||||||
@ -73,8 +72,8 @@ func TestPoolMetadata_AddDeviceRollback(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_AddDeviceDuplicate(t *testing.T) {
|
func TestPoolMetadata_AddDeviceDuplicate(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
@ -84,8 +83,8 @@ func TestPoolMetadata_AddDeviceDuplicate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_ReuseDeviceID(t *testing.T) {
|
func TestPoolMetadata_ReuseDeviceID(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
info1 := &DeviceInfo{Name: "test1"}
|
info1 := &DeviceInfo{Name: "test1"}
|
||||||
err := store.AddDevice(testCtx, info1)
|
err := store.AddDevice(testCtx, info1)
|
||||||
@ -109,8 +108,8 @@ func TestPoolMetadata_ReuseDeviceID(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_RemoveDevice(t *testing.T) {
|
func TestPoolMetadata_RemoveDevice(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test"})
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
@ -123,8 +122,8 @@ func TestPoolMetadata_RemoveDevice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_UpdateDevice(t *testing.T) {
|
func TestPoolMetadata_UpdateDevice(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
oldInfo := &DeviceInfo{
|
oldInfo := &DeviceInfo{
|
||||||
Name: "test1",
|
Name: "test1",
|
||||||
@ -155,8 +154,8 @@ func TestPoolMetadata_UpdateDevice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_MarkFaulty(t *testing.T) {
|
func TestPoolMetadata_MarkFaulty(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
info := &DeviceInfo{Name: "test"}
|
info := &DeviceInfo{Name: "test"}
|
||||||
err := store.AddDevice(testCtx, info)
|
err := store.AddDevice(testCtx, info)
|
||||||
@ -182,8 +181,8 @@ func TestPoolMetadata_MarkFaulty(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_WalkDevices(t *testing.T) {
|
func TestPoolMetadata_WalkDevices(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "device1", DeviceID: 1, State: Created})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: "device1", DeviceID: 1, State: Created})
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
@ -214,8 +213,8 @@ func TestPoolMetadata_WalkDevices(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolMetadata_GetDeviceNames(t *testing.T) {
|
func TestPoolMetadata_GetDeviceNames(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test1"})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: "test1"})
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
@ -231,21 +230,15 @@ func TestPoolMetadata_GetDeviceNames(t *testing.T) {
|
|||||||
assert.Equal(t, "test2", names[1])
|
assert.Equal(t, "test2", names[1])
|
||||||
}
|
}
|
||||||
|
|
||||||
func createStore(t *testing.T) (tempDir string, store *PoolMetadata) {
|
func createStore(t *testing.T) (store *PoolMetadata) {
|
||||||
tempDir, err := os.MkdirTemp("", "pool-metadata-")
|
path := filepath.Join(t.TempDir(), "test.db")
|
||||||
assert.NilError(t, err, "couldn't create temp directory for metadata tests")
|
|
||||||
|
|
||||||
path := filepath.Join(tempDir, "test.db")
|
|
||||||
metadata, err := NewPoolMetadata(path)
|
metadata, err := NewPoolMetadata(path)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
return tempDir, metadata
|
return metadata
|
||||||
}
|
}
|
||||||
|
|
||||||
func cleanupStore(t *testing.T, tempDir string, store *PoolMetadata) {
|
func cleanupStore(t *testing.T, store *PoolMetadata) {
|
||||||
err := store.Close()
|
err := store.Close()
|
||||||
assert.NilError(t, err, "failed to close metadata store")
|
assert.NilError(t, err, "failed to close metadata store")
|
||||||
|
|
||||||
err = os.RemoveAll(tempDir)
|
|
||||||
assert.NilError(t, err, "failed to cleanup temp directory")
|
|
||||||
}
|
}
|
||||||
|
@ -61,23 +61,19 @@ func TestPoolDevice(t *testing.T) {
|
|||||||
logrus.SetLevel(logrus.DebugLevel)
|
logrus.SetLevel(logrus.DebugLevel)
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
tempDir, err := os.MkdirTemp("", "pool-device-test-")
|
tempDir := t.TempDir()
|
||||||
assert.NilError(t, err, "couldn't get temp directory for testing")
|
|
||||||
|
|
||||||
_, loopDataDevice := createLoopbackDevice(t, tempDir)
|
_, loopDataDevice := createLoopbackDevice(t, tempDir)
|
||||||
_, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
_, loopMetaDevice := createLoopbackDevice(t, tempDir)
|
||||||
|
|
||||||
poolName := fmt.Sprintf("test-pool-device-%d", time.Now().Nanosecond())
|
poolName := fmt.Sprintf("test-pool-device-%d", time.Now().Nanosecond())
|
||||||
err = dmsetup.CreatePool(poolName, loopDataDevice, loopMetaDevice, 64*1024/dmsetup.SectorSize)
|
err := dmsetup.CreatePool(poolName, loopDataDevice, loopMetaDevice, 64*1024/dmsetup.SectorSize)
|
||||||
assert.NilError(t, err, "failed to create pool %q", poolName)
|
assert.NilError(t, err, "failed to create pool %q", poolName)
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
// Detach loop devices and remove images
|
// Detach loop devices and remove images
|
||||||
err := mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
err := mount.DetachLoopDevice(loopDataDevice, loopMetaDevice)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
err = os.RemoveAll(tempDir)
|
|
||||||
assert.NilError(t, err, "couldn't cleanup temp directory")
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
config := &Config{
|
config := &Config{
|
||||||
@ -176,8 +172,8 @@ func TestPoolDevice(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestPoolDeviceMarkFaulty(t *testing.T) {
|
func TestPoolDeviceMarkFaulty(t *testing.T) {
|
||||||
tempDir, store := createStore(t)
|
store := createStore(t)
|
||||||
defer cleanupStore(t, tempDir, store)
|
defer cleanupStore(t, store)
|
||||||
|
|
||||||
err := store.AddDevice(testCtx, &DeviceInfo{Name: "1", State: Unknown})
|
err := store.AddDevice(testCtx, &DeviceInfo{Name: "1", State: Unknown})
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
_ "crypto/sha256"
|
_ "crypto/sha256"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -61,11 +60,7 @@ func TestSnapshotterSuite(t *testing.T) {
|
|||||||
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
||||||
|
|
||||||
t.Run("DevMapperUsage", func(t *testing.T) {
|
t.Run("DevMapperUsage", func(t *testing.T) {
|
||||||
tempDir, err := os.MkdirTemp("", "snapshot-suite-usage")
|
snapshotter, closer, err := snapshotterFn(ctx, t.TempDir())
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
snapshotter, closer, err := snapshotterFn(ctx, tempDir)
|
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
defer closer()
|
defer closer()
|
||||||
|
|
||||||
@ -148,13 +143,10 @@ func TestMultipleXfsMounts(t *testing.T) {
|
|||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
ctx = namespaces.WithNamespace(ctx, "testsuite")
|
||||||
tempDir, err := os.MkdirTemp("", "snapshot-suite-usage")
|
|
||||||
assert.NilError(t, err)
|
|
||||||
defer os.RemoveAll(tempDir)
|
|
||||||
|
|
||||||
poolName := fmt.Sprintf("containerd-snapshotter-suite-pool-%d", time.Now().Nanosecond())
|
poolName := fmt.Sprintf("containerd-snapshotter-suite-pool-%d", time.Now().Nanosecond())
|
||||||
config := &Config{
|
config := &Config{
|
||||||
RootPath: tempDir,
|
RootPath: t.TempDir(),
|
||||||
PoolName: poolName,
|
PoolName: poolName,
|
||||||
BaseImageSize: "16Mb",
|
BaseImageSize: "16Mb",
|
||||||
FileSystemType: "xfs",
|
FileSystemType: "xfs",
|
||||||
@ -172,10 +164,9 @@ func TestMultipleXfsMounts(t *testing.T) {
|
|||||||
mounts, err := snapshotter.Prepare(ctx, "prepare-1", "")
|
mounts, err := snapshotter.Prepare(ctx, "prepare-1", "")
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
root1, _ := os.MkdirTemp(os.TempDir(), "containerd-mount")
|
root1 := t.TempDir()
|
||||||
defer func() {
|
defer func() {
|
||||||
mount.UnmountAll(root1, 0)
|
mount.UnmountAll(root1, 0)
|
||||||
os.Remove(root1)
|
|
||||||
}()
|
}()
|
||||||
err = mount.All(mounts, root1)
|
err = mount.All(mounts, root1)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
@ -186,10 +177,9 @@ func TestMultipleXfsMounts(t *testing.T) {
|
|||||||
mounts, err = snapshotter.Prepare(ctx, "prepare-2", "layer-1")
|
mounts, err = snapshotter.Prepare(ctx, "prepare-2", "layer-1")
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
|
||||||
root2, _ := os.MkdirTemp(os.TempDir(), "containerd-mount")
|
root2 := t.TempDir()
|
||||||
defer func() {
|
defer func() {
|
||||||
mount.UnmountAll(root2, 0)
|
mount.UnmountAll(root2, 0)
|
||||||
os.Remove(root2)
|
|
||||||
}()
|
}()
|
||||||
err = mount.All(mounts, root2)
|
err = mount.All(mounts, root2)
|
||||||
assert.NilError(t, err)
|
assert.NilError(t, err)
|
||||||
|
@ -79,11 +79,7 @@ func TestOverlay(t *testing.T) {
|
|||||||
|
|
||||||
func testOverlayMounts(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
func testOverlayMounts(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
root, err := os.MkdirTemp("", "overlay")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
o, _, err := newSnapshotter(ctx, root)
|
o, _, err := newSnapshotter(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -113,11 +109,7 @@ func testOverlayMounts(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
|||||||
|
|
||||||
func testOverlayCommit(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
func testOverlayCommit(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
root, err := os.MkdirTemp("", "overlay")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
o, _, err := newSnapshotter(ctx, root)
|
o, _, err := newSnapshotter(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -138,11 +130,7 @@ func testOverlayCommit(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
|||||||
|
|
||||||
func testOverlayOverlayMount(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
func testOverlayOverlayMount(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
root, err := os.MkdirTemp("", "overlay")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
o, _, err := newSnapshotter(ctx, root)
|
o, _, err := newSnapshotter(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -235,11 +223,7 @@ func getParents(ctx context.Context, sn snapshots.Snapshotter, root, key string)
|
|||||||
func testOverlayOverlayRead(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
func testOverlayOverlayRead(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
root, err := os.MkdirTemp("", "overlay")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
o, _, err := newSnapshotter(ctx, root)
|
o, _, err := newSnapshotter(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -278,11 +262,7 @@ func testOverlayOverlayRead(t *testing.T, newSnapshotter testsuite.SnapshotterFu
|
|||||||
|
|
||||||
func testOverlayView(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
func testOverlayView(t *testing.T, newSnapshotter testsuite.SnapshotterFunc) {
|
||||||
ctx := context.TODO()
|
ctx := context.TODO()
|
||||||
root, err := os.MkdirTemp("", "overlay")
|
root := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(root)
|
|
||||||
o, _, err := newSnapshotter(ctx, root)
|
o, _, err := newSnapshotter(ctx, root)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
package overlayutils
|
package overlayutils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/containerd/pkg/testutil"
|
"github.com/containerd/containerd/pkg/testutil"
|
||||||
@ -30,11 +29,7 @@ import (
|
|||||||
|
|
||||||
func testOverlaySupported(t testing.TB, expected bool, mkfs ...string) {
|
func testOverlaySupported(t testing.TB, expected bool, mkfs ...string) {
|
||||||
testutil.RequiresRoot(t)
|
testutil.RequiresRoot(t)
|
||||||
mnt, err := os.MkdirTemp("", "containerd-fs-test-supports-overlay")
|
mnt := t.TempDir()
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(mnt)
|
|
||||||
|
|
||||||
loop, err := loopback.New(100 << 20) // 100 MB
|
loop, err := loopback.New(100 << 20) // 100 MB
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -19,7 +19,6 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/containerd/containerd/snapshots"
|
"github.com/containerd/containerd/snapshots"
|
||||||
@ -42,17 +41,16 @@ func Benchmarks(b *testing.B, name string, metaFn metaFactory) {
|
|||||||
func makeBench(b *testing.B, name string, metaFn metaFactory, fn func(context.Context, *testing.B, *MetaStore)) func(b *testing.B) {
|
func makeBench(b *testing.B, name string, metaFn metaFactory, fn func(context.Context, *testing.B, *MetaStore)) func(b *testing.B) {
|
||||||
return func(b *testing.B) {
|
return func(b *testing.B) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
|
||||||
if err != nil {
|
|
||||||
b.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
ms, err := metaFn(tmpDir)
|
ms, err := metaFn(b.TempDir())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
b.Cleanup(func() {
|
||||||
|
ms.Close()
|
||||||
|
})
|
||||||
|
|
||||||
ctx, t, err := ms.TransactionContext(ctx, true)
|
ctx, t, err := ms.TransactionContext(ctx, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
@ -67,13 +65,8 @@ func makeBench(b *testing.B, name string, metaFn metaFactory, fn func(context.Co
|
|||||||
func openCloseWritable(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
func openCloseWritable(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
||||||
return func(b *testing.B) {
|
return func(b *testing.B) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
|
||||||
if err != nil {
|
|
||||||
b.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
ms, err := metaFn(tmpDir)
|
ms, err := metaFn(b.TempDir())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
@ -95,13 +88,8 @@ func openCloseWritable(b *testing.B, name string, metaFn metaFactory) func(b *te
|
|||||||
func openCloseReadonly(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
func openCloseReadonly(b *testing.B, name string, metaFn metaFactory) func(b *testing.B) {
|
||||||
return func(b *testing.B) {
|
return func(b *testing.B) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
tmpDir, err := os.MkdirTemp("", "metastore-bench-"+name+"-")
|
|
||||||
if err != nil {
|
|
||||||
b.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
ms, err := metaFn(tmpDir)
|
ms, err := metaFn(b.TempDir())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -66,17 +65,16 @@ func MetaStoreSuite(t *testing.T, name string, meta func(root string) (*MetaStor
|
|||||||
func makeTest(t *testing.T, name string, metaFn metaFactory, fn testFunc) func(t *testing.T) {
|
func makeTest(t *testing.T, name string, metaFn metaFactory, fn testFunc) func(t *testing.T) {
|
||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
tmpDir, err := os.MkdirTemp("", "metastore-test-"+name+"-")
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
defer os.RemoveAll(tmpDir)
|
|
||||||
|
|
||||||
ms, err := metaFn(tmpDir)
|
ms, err := metaFn(t.TempDir())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
t.Cleanup(func() {
|
||||||
|
ms.Close()
|
||||||
|
})
|
||||||
|
|
||||||
fn(ctx, t, ms)
|
fn(ctx, t, ms)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user