diff --git a/integration/client/snapshot_test.go b/integration/client/snapshot_test.go index 81505d722..c30cc6380 100644 --- a/integration/client/snapshot_test.go +++ b/integration/client/snapshot_test.go @@ -22,7 +22,6 @@ import ( . "github.com/containerd/containerd" "github.com/containerd/containerd/snapshots" - "github.com/containerd/containerd/snapshots/testsuite" ) func newSnapshotter(ctx context.Context, root string) (snapshots.Snapshotter, func() error, error) { @@ -40,8 +39,5 @@ func newSnapshotter(ctx context.Context, root string) (snapshots.Snapshotter, fu } func TestSnapshotterClient(t *testing.T) { - if testing.Short() { - t.Skip() - } - testsuite.SnapshotterSuite(t, "SnapshotterClient", newSnapshotter) + runTestSnapshotterClient(t) } diff --git a/integration/client/snapshot_unix_test.go b/integration/client/snapshot_unix_test.go new file mode 100644 index 000000000..61495e4bc --- /dev/null +++ b/integration/client/snapshot_unix_test.go @@ -0,0 +1,34 @@ +//go:build !windows +// +build !windows + +/* + Copyright The containerd 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 client + +import ( + "testing" + + "github.com/containerd/containerd/snapshots/testsuite" +) + +func runTestSnapshotterClient(t *testing.T) { + if testing.Short() { + t.Skip() + } + + testsuite.SnapshotterSuite(t, "SnapshotterClient", newSnapshotter) +} diff --git a/integration/client/snapshot_windows_test.go b/integration/client/snapshot_windows_test.go new file mode 100644 index 000000000..b8eaad7fd --- /dev/null +++ b/integration/client/snapshot_windows_test.go @@ -0,0 +1,39 @@ +//go:build windows +// +build windows + +/* +Copyright The containerd 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 client + +import ( + "testing" + + winio "github.com/Microsoft/go-winio" + "github.com/containerd/containerd/snapshots/testsuite" +) + +func runTestSnapshotterClient(t *testing.T) { + if testing.Short() { + t.Skip() + } + // The SeBackupPrivilege and SeRestorePrivilege gives us access to system files inside the container mount points + // (and everywhere on the system), without having to explicitly set DACLs on each location inside the mount point. + if err := winio.EnableProcessPrivileges([]string{winio.SeBackupPrivilege, winio.SeRestorePrivilege}); err != nil { + t.Error(err) + } + defer winio.DisableProcessPrivileges([]string{winio.SeBackupPrivilege, winio.SeRestorePrivilege}) + testsuite.SnapshotterSuite(t, "SnapshotterClient", newSnapshotter) +}