mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Enable Checkpoint/Restore test with VFS2
Closes #3373 PiperOrigin-RevId: 366903991
This commit is contained in:
committed by
gVisor bot
parent
198e0dcde2
commit
661e5ae7ae
@@ -8,7 +8,6 @@ go_test(
|
||||
srcs = [
|
||||
"exec_test.go",
|
||||
"integration_test.go",
|
||||
"regression_test.go",
|
||||
],
|
||||
library = ":integration",
|
||||
tags = [
|
||||
|
||||
@@ -168,13 +168,6 @@ func TestCheckpointRestore(t *testing.T) {
|
||||
t.Skip("Pause/resume is not supported.")
|
||||
}
|
||||
|
||||
// TODO(gvisor.dev/issue/3373): Remove after implementing.
|
||||
if usingVFS2, err := dockerutil.UsingVFS2(); usingVFS2 {
|
||||
t.Skip("CheckpointRestore not implemented in VFS2.")
|
||||
} else if err != nil {
|
||||
t.Fatalf("failed to read config for runtime %s: %v", dockerutil.Runtime(), err)
|
||||
}
|
||||
|
||||
ctx := context.Background()
|
||||
d := dockerutil.MakeContainer(ctx, t)
|
||||
defer d.CleanUp(ctx)
|
||||
@@ -592,6 +585,30 @@ func runIntegrationTest(t *testing.T, capAdd []string, args ...string) {
|
||||
}
|
||||
}
|
||||
|
||||
// Test that UDS can be created using overlay when parent directory is in lower
|
||||
// layer only (b/134090485).
|
||||
//
|
||||
// Prerequisite: the directory where the socket file is created must not have
|
||||
// been open for write before bind(2) is called.
|
||||
func TestBindOverlay(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
d := dockerutil.MakeContainer(ctx, t)
|
||||
defer d.CleanUp(ctx)
|
||||
|
||||
// Run the container.
|
||||
got, err := d.Run(ctx, dockerutil.RunOpts{
|
||||
Image: "basic/ubuntu",
|
||||
}, "bash", "-c", "nc -q -1 -l -U /var/run/sock & p=$! && sleep 1 && echo foobar-asdf | nc -q 0 -U /var/run/sock && wait $p")
|
||||
if err != nil {
|
||||
t.Fatalf("docker run failed: %v", err)
|
||||
}
|
||||
|
||||
// Check the output contains what we want.
|
||||
if want := "foobar-asdf"; !strings.Contains(got, want) {
|
||||
t.Fatalf("docker run output is missing %q: %s", want, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
dockerutil.EnsureSupportedDockerVersion()
|
||||
flag.Parse()
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
// Copyright 2019 The gVisor Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package integration
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"gvisor.dev/gvisor/pkg/test/dockerutil"
|
||||
)
|
||||
|
||||
// Test that UDS can be created using overlay when parent directory is in lower
|
||||
// layer only (b/134090485).
|
||||
//
|
||||
// Prerequisite: the directory where the socket file is created must not have
|
||||
// been open for write before bind(2) is called.
|
||||
func TestBindOverlay(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
d := dockerutil.MakeContainer(ctx, t)
|
||||
defer d.CleanUp(ctx)
|
||||
|
||||
// Run the container.
|
||||
got, err := d.Run(ctx, dockerutil.RunOpts{
|
||||
Image: "basic/ubuntu",
|
||||
}, "bash", "-c", "nc -q -1 -l -U /var/run/sock & p=$! && sleep 1 && echo foobar-asdf | nc -q 0 -U /var/run/sock && wait $p")
|
||||
if err != nil {
|
||||
t.Fatalf("docker run failed: %v", err)
|
||||
}
|
||||
|
||||
// Check the output contains what we want.
|
||||
if want := "foobar-asdf"; !strings.Contains(got, want) {
|
||||
t.Fatalf("docker run output is missing %q: %s", want, got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user