raven/base/docker/docker-20.10.7-Add-test-skip-helpers-to-cli.patch
2024-02-21 17:40:51 +06:00

97 lines
2.8 KiB
Diff

From f8f7e0d380488665cb77d8213d816bfdeeb7a252 Mon Sep 17 00:00:00 2001
From: Jamie Anderson <jamieand@amazon.com>
Date: Wed, 18 Aug 2021 22:33:15 +0000
Subject: [PATCH] Add test skip helpers to cli/testutil
Signed-off-by: Jamie Anderson <jamieand@amazon.com>
---
testutil/helpers.go | 14 ++++++++++++++
testutil/helpers_unix.go | 34 ++++++++++++++++++++++++++++++++++
testutil/helpers_windows.go | 12 ++++++++++++
3 files changed, 60 insertions(+)
create mode 100644 testutil/helpers.go
create mode 100644 testutil/helpers_unix.go
create mode 100644 testutil/helpers_windows.go
diff --git a/testutil/helpers.go b/testutil/helpers.go
new file mode 100644
index 0000000..0eeff25
--- /dev/null
+++ b/testutil/helpers.go
@@ -0,0 +1,14 @@
+package testutil // import "github.com/docker/cli/testutil"
+
+import (
+ "flag"
+)
+
+// This variable and the init() function copied from
+// https://github.com/containerd/containerd/blob/master/pkg/testutil/helpers.go
+// Original Copyright The Containerd Authors. Licensed under the Apache License, Version 2.0.
+var rootEnabled bool
+
+func init() {
+ flag.BoolVar(&rootEnabled, "test.root", false, "enable tests that require root")
+}
diff --git a/testutil/helpers_unix.go b/testutil/helpers_unix.go
new file mode 100644
index 0000000..c846775
--- /dev/null
+++ b/testutil/helpers_unix.go
@@ -0,0 +1,34 @@
+// +build !windows
+
+package testutil
+
+import (
+ "os"
+ "testing"
+
+ "gotest.tools/v3/assert"
+)
+
+// This function was copied from
+// https://github.com/containerd/containerd/blob/master/pkg/testutil/helpers_unix.go
+// Original Copyright The Containerd Authors. Licensed under the Apache License, Version 2.0.
+// RequiresRoot skips tests that require root, unless the test.root flag has
+// been set
+func RequiresRoot(t testing.TB) {
+ if !rootEnabled {
+ t.Skip("skipping test that requires root")
+ }
+ assert.Equal(t, 0, os.Getuid(), "This test must be run as root.")
+}
+
+// This function is adapted from a previous patch applied by Amazon
+// The existence of /.initialized or /builddir is a marker that we're in a build chroot
+// Tests that perform filesystem operations, generate non-localhost network traffic,
+// and possibly other things, are likely to not work correctly
+func SkipIfBuildroot(t testing.TB) {
+ if _, err := os.Stat("/.initialized"); err == nil {
+ t.Skip("not appropriate for a buildroot environment")
+ } else if _, err := os.Stat("/builddir"); err == nil {
+ t.Skip("not appropriate for a buildroot environment")
+ }
+}
diff --git a/testutil/helpers_windows.go b/testutil/helpers_windows.go
new file mode 100644
index 0000000..aefeca0
--- /dev/null
+++ b/testutil/helpers_windows.go
@@ -0,0 +1,12 @@
+// +build windows
+
+package testutil
+
+import "testing"
+
+func RequiresRoot(t testing.TB) {
+}
+
+func SkipIfBuildroot(t testing.TB) {
+}
+
--
2.31.0.rc2