summaryrefslogtreecommitdiffhomepage
path: root/test/runner/setup_container
diff options
context:
space:
mode:
Diffstat (limited to 'test/runner/setup_container')
-rw-r--r--test/runner/setup_container/BUILD19
-rw-r--r--test/runner/setup_container/setup_container.cc79
2 files changed, 0 insertions, 98 deletions
diff --git a/test/runner/setup_container/BUILD b/test/runner/setup_container/BUILD
deleted file mode 100644
index f879ef649..000000000
--- a/test/runner/setup_container/BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# setup_container contains a shim binary that runs within the test container
-# for syscall tests with container=True.
-
-load("//tools:defs.bzl", "cc_binary")
-
-package(licenses = ["notice"])
-
-cc_binary(
- name = "setup_container",
- testonly = 1,
- srcs = ["setup_container.cc"],
- visibility = ["//test/runner:__subpackages__"],
- deps = [
- "//test/syscalls/linux:socket_netlink_util",
- "//test/util:capability_util",
- "//test/util:posix_error",
- "//test/util:socket_util",
- ],
-)
diff --git a/test/runner/setup_container/setup_container.cc b/test/runner/setup_container/setup_container.cc
deleted file mode 100644
index e6fae37e1..000000000
--- a/test/runner/setup_container/setup_container.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2021 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.
-
-#include <linux/capability.h>
-#include <sys/ioctl.h>
-#include <unistd.h>
-
-#include "test/syscalls/linux/socket_netlink_util.h"
-#include "test/util/capability_util.h"
-#include "test/util/posix_error.h"
-#include "test/util/socket_util.h"
-
-namespace gvisor {
-namespace testing {
-
-// SetupContainer sets up the networking settings in the current container.
-PosixError SetupContainer() {
- const PosixErrorOr<bool> have_net_admin = HaveCapability(CAP_NET_ADMIN);
- if (!have_net_admin.ok()) {
- std::cerr << "Cannot determine if we have CAP_NET_ADMIN." << std::endl;
- return have_net_admin.error();
- }
- if (have_net_admin.ValueOrDie() && !IsRunningOnGvisor()) {
- PosixErrorOr<FileDescriptor> sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
- if (!sockfd.ok()) {
- std::cerr << "Cannot open socket." << std::endl;
- return sockfd.error();
- }
- int sock = sockfd.ValueOrDie().get();
- struct ifreq ifr = {};
- strncpy(ifr.ifr_name, "lo", IFNAMSIZ);
- if (ioctl(sock, SIOCGIFFLAGS, &ifr) == -1) {
- std::cerr << "Cannot get 'lo' flags: " << strerror(errno) << std::endl;
- return PosixError(errno);
- }
- if ((ifr.ifr_flags & IFF_UP) == 0) {
- ifr.ifr_flags |= IFF_UP;
- if (ioctl(sock, SIOCSIFFLAGS, &ifr) == -1) {
- std::cerr << "Cannot set 'lo' as UP: " << strerror(errno) << std::endl;
- return PosixError(errno);
- }
- }
- }
- return NoError();
-}
-
-} // namespace testing
-} // namespace gvisor
-
-using ::gvisor::testing::SetupContainer;
-
-// Binary setup_container initializes the container environment in which tests
-// with container=True will run, then execs the actual test binary.
-// Usage:
-// ./setup_container test_binary [arguments forwarded to test_binary...]
-int main(int argc, char *argv[], char *envp[]) {
- if (!SetupContainer().ok()) {
- return 1;
- }
- if (argc < 2) {
- std::cerr << "Must provide arguments to exec." << std::endl;
- return 2;
- }
- if (execve(argv[1], &argv[1], envp) == -1) {
- std::cerr << "execv returned errno " << errno << std::endl;
- return 1;
- }
-}