Re-enable CRIU tests by not using overlayfs snapshotter

While the issue hasn't been fixed in the kernel yet, we can workaround
the issue by not using overlayfs snapshotter.

The newly added step runs all tests that match /TestCheckpoint/.
So, TestCRWithImagePath has been renamed to match the regexp.

Fixes #3930.

Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
This commit is contained in:
Kazuyoshi Kato
2020-11-09 13:47:53 -08:00
parent b520428b5a
commit 8731888ec0
3 changed files with 41 additions and 5 deletions

View File

@@ -50,6 +50,7 @@ var (
noCriu bool
supportsCriu bool
testNamespace = "testing"
testSnapshotter = DefaultSnapshotter
ctrdStdioFilePath string
ctrd = &daemon{}
@@ -132,11 +133,30 @@ func TestMain(m *testing.M) {
// allow comparison with containerd under test
log.G(ctx).WithFields(logrus.Fields{
"version": version.Version,
"revision": version.Revision,
"runtime": os.Getenv("TEST_RUNTIME"),
"version": version.Version,
"revision": version.Revision,
"runtime": os.Getenv("TEST_RUNTIME"),
"snapshotter": os.Getenv("TEST_SNAPSHOTTER"),
}).Info("running tests against containerd")
snapshotter := DefaultSnapshotter
if ss := os.Getenv("TEST_SNAPSHOTTER"); ss != "" {
snapshotter = ss
}
ns, ok := namespaces.Namespace(ctx)
if !ok {
fmt.Fprintln(os.Stderr, "error getting namespace")
os.Exit(1)
}
err = client.NamespaceService().SetLabel(ctx, ns, defaults.DefaultSnapshotterNSLabel, snapshotter)
if err != nil {
fmt.Fprintf(os.Stderr, "error setting %s's default snapshotter as %s: %s\n", ns, snapshotter, err)
os.Exit(1)
}
testSnapshotter = snapshotter
// pull a seed image
log.G(ctx).WithField("image", testImage).Info("start to pull seed image")
if _, err = client.Pull(ctx, testImage, WithPullUnpack); err != nil {
@@ -285,7 +305,7 @@ func TestImagePullWithDiscardContent(t *testing.T) {
t.Fatalf("there is no layers in the target image(parent: %v)", img.Target())
}
var (
sn = client.SnapshotService("")
sn = client.SnapshotService(testSnapshotter)
chain []digest.Digest
)
for i, dgst := range layers {