Run snapshot test suite for metadata and client
The snapshot test suite is designed to run against the snapshotter interface, run the test suite for metadata and client implementations of the snapshotter interface. Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
42
metadata/snapshot_test.go
Normal file
42
metadata/snapshot_test.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package metadata
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"github.com/boltdb/bolt"
|
||||
"github.com/containerd/containerd/snapshot"
|
||||
"github.com/containerd/containerd/snapshot/naive"
|
||||
"github.com/containerd/containerd/snapshot/testsuite"
|
||||
"github.com/containerd/containerd/testutil"
|
||||
)
|
||||
|
||||
func newSnapshotter(ctx context.Context, root string) (snapshot.Snapshotter, func(), error) {
|
||||
naiveRoot := filepath.Join(root, "naive")
|
||||
if err := os.Mkdir(naiveRoot, 0770); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
snapshotter, err := naive.NewSnapshotter(naiveRoot)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
db, err := bolt.Open(filepath.Join(root, "metadata.db"), 0660, nil)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
sn := NewSnapshotter(db, "naive", snapshotter)
|
||||
|
||||
return sn, func() {
|
||||
db.Close()
|
||||
}, nil
|
||||
}
|
||||
|
||||
func TestMetadata(t *testing.T) {
|
||||
// Snapshot tests require mounting, still requires root
|
||||
testutil.RequiresRoot(t)
|
||||
testsuite.SnapshotterSuite(t, "Metadata", newSnapshotter)
|
||||
}
|
||||
Reference in New Issue
Block a user