summaryrefslogtreecommitdiffhomepage
path: root/test/util/capability_util.h
diff options
context:
space:
mode:
authorFabricio Voznika <fvoznika@google.com>2021-01-29 13:54:34 -0800
committergVisor bot <gvisor-bot@google.com>2021-01-29 13:56:17 -0800
commitfdbfd447a02e52296f48a5cb1020030756ed8da6 (patch)
tree47735f8082f17e98118a268502a5fc7b72b99c11 /test/util/capability_util.h
parent5e2edfb8726ddb255a02352e2f68ea028f543e4b (diff)
Remove side effect from test cases
Individual test cases must not rely on being executed in a clean environment. PiperOrigin-RevId: 354604389
Diffstat (limited to 'test/util/capability_util.h')
-rw-r--r--test/util/capability_util.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/util/capability_util.h b/test/util/capability_util.h
index bb9ea1fe5..a03bc7e05 100644
--- a/test/util/capability_util.h
+++ b/test/util/capability_util.h
@@ -96,6 +96,19 @@ inline PosixError DropPermittedCapability(int cap) {
PosixErrorOr<bool> CanCreateUserNamespace();
+class AutoCapability {
+ public:
+ AutoCapability(int cap, bool set) : cap_(cap), set_(set) {
+ EXPECT_NO_ERRNO(SetCapability(cap_, set_));
+ }
+
+ ~AutoCapability() { EXPECT_NO_ERRNO(SetCapability(cap_, !set_)); }
+
+ private:
+ int cap_;
+ bool set_;
+};
+
} // namespace testing
} // namespace gvisor
#endif // GVISOR_TEST_UTIL_CAPABILITY_UTIL_H_