You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2016/09/27 05:41:54 UTC
[4/8] mesos git commit: Updated Mesos tests to use WEXITSTATUS and
WTERMSIG gtest helpers.
Updated Mesos tests to use WEXITSTATUS and WTERMSIG gtest helpers.
Review: https://reviews.apache.org/r/52247
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/6b5e99d7
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/6b5e99d7
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/6b5e99d7
Branch: refs/heads/master
Commit: 6b5e99d7e6055f7f2f28a9a21ecd621351542a18
Parents: 0920b92
Author: Benjamin Hindman <be...@gmail.com>
Authored: Wed Sep 7 13:42:35 2016 -0700
Committer: Benjamin Hindman <be...@gmail.com>
Committed: Mon Sep 26 22:41:21 2016 -0700
----------------------------------------------------------------------
src/tests/containerizer/capabilities_tests.cpp | 21 ++-------
src/tests/containerizer/cgroups_tests.cpp | 21 +++------
.../docker_containerizer_tests.cpp | 10 +----
src/tests/containerizer/docker_tests.cpp | 45 ++++----------------
src/tests/containerizer/launch_tests.cpp | 7 +--
src/tests/containerizer/ns_tests.cpp | 23 ++++------
src/tests/containerizer/routing_tests.cpp | 6 +--
src/tests/containerizer/sched_tests.cpp | 7 +--
8 files changed, 31 insertions(+), 109 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/capabilities_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/capabilities_tests.cpp b/src/tests/containerizer/capabilities_tests.cpp
index 6fe5d54..15a85ca 100644
--- a/src/tests/containerizer/capabilities_tests.cpp
+++ b/src/tests/containerizer/capabilities_tests.cpp
@@ -95,12 +95,7 @@ TEST_F(CapabilitiesTest, ROOT_PingWithNoNetRawCaps)
Try<Subprocess> s = ping(capabilities->get(capabilities::PERMITTED));
ASSERT_SOME(s);
- Future<Option<int>> status = s->status();
- AWAIT_READY(status);
-
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get()));
- EXPECT_NE(0, WEXITSTATUS(status->get()));
+ AWAIT_EXPECT_WEXITSTATUS_NE(0, s->status());
}
@@ -124,12 +119,7 @@ TEST_F(CapabilitiesTest, ROOT_PingWithNoNetRawCapsChangeUser)
ASSERT_SOME(s);
- Future<Option<int>> status = s->status();
- AWAIT_READY(status);
-
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get()));
- EXPECT_NE(0, WEXITSTATUS(status->get()));
+ AWAIT_EXPECT_WEXITSTATUS_NE(0, s->status());
}
@@ -158,12 +148,7 @@ TEST_F(CapabilitiesTest, ROOT_PingWithJustNetRawSysAdminCap)
Try<Subprocess> s = ping(capabilities, CAPS_TEST_UNPRIVILEGED_USER);
ASSERT_SOME(s);
- Future<Option<int>> status = s->status();
- AWAIT_READY(status);
-
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get()));
- EXPECT_EQ(0, WEXITSTATUS(status->get()));
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, s->status());
}
} // namespace tests {
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/cgroups_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/cgroups_tests.cpp b/src/tests/containerizer/cgroups_tests.cpp
index 92e0bc9..0afaec6 100644
--- a/src/tests/containerizer/cgroups_tests.cpp
+++ b/src/tests/containerizer/cgroups_tests.cpp
@@ -37,6 +37,7 @@
#include <process/gtest.hpp>
#include <process/latch.hpp>
#include <process/owned.hpp>
+#include <process/reap.hpp>
#include <stout/gtest.hpp>
#include <stout/hashmap.hpp>
@@ -502,10 +503,7 @@ TEST_F(CgroupsAnyHierarchyTest, ROOT_CGROUPS_Write)
ASSERT_NE(-1, ::kill(pid, SIGKILL));
// Wait for the child process.
- int status;
- EXPECT_NE(-1, ::waitpid(pid, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
}
@@ -671,10 +669,7 @@ TEST_F(CgroupsAnyHierarchyWithFreezerTest, ROOT_CGROUPS_Freeze)
ASSERT_NE(-1, ::kill(pid, SIGKILL));
// Wait for the child process.
- int status;
- EXPECT_NE(-1, ::waitpid((pid_t) -1, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
}
@@ -717,10 +712,7 @@ TEST_F(CgroupsAnyHierarchyWithFreezerTest, ROOT_CGROUPS_Kill)
Try<Nothing> kill = cgroups::kill(hierarchy, TEST_CGROUPS_ROOT, SIGKILL);
EXPECT_SOME(kill);
- int status;
- EXPECT_NE(-1, ::waitpid((pid_t) -1, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
} else {
// In child process.
@@ -1042,10 +1034,7 @@ TEST_F(CgroupsAnyHierarchyWithPerfEventTest, ROOT_CGROUPS_PERF_PerfTest)
ASSERT_NE(-1, ::kill(pid, SIGKILL));
// Wait for the child process.
- int status;
- EXPECT_NE(-1, ::waitpid((pid_t) -1, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
// Destroy the cgroup.
Future<Nothing> destroy = cgroups::destroy(hierarchy, TEST_CGROUPS_ROOT);
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/docker_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_containerizer_tests.cpp b/src/tests/containerizer/docker_containerizer_tests.cpp
index d026142..6d26797 100644
--- a/src/tests/containerizer/docker_containerizer_tests.cpp
+++ b/src/tests/containerizer/docker_containerizer_tests.cpp
@@ -1251,10 +1251,7 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_Recover)
EXPECT_NONE(termination2.get());
// Expect the orphan to be stopped!
- AWAIT_READY(orphanRun);
- ASSERT_SOME(orphanRun.get());
- EXPECT_TRUE(WIFEXITED(orphanRun->get())) << orphanRun->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(orphanRun->get())) << orphanRun->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, orphanRun);
}
@@ -1387,10 +1384,7 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_KillOrphanContainers)
EXPECT_NONE(termination2.get());
ASSERT_FALSE(exists(docker, oldSlaveId, orphanContainerId));
- AWAIT_READY(orphanRun);
- ASSERT_SOME(orphanRun.get());
- EXPECT_TRUE(WIFEXITED(orphanRun->get())) << orphanRun->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(orphanRun->get())) << orphanRun->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, orphanRun);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_tests.cpp b/src/tests/containerizer/docker_tests.cpp
index e9a214a..2f4e84a 100644
--- a/src/tests/containerizer/docker_tests.cpp
+++ b/src/tests/containerizer/docker_tests.cpp
@@ -156,10 +156,7 @@ TEST_F(DockerTest, ROOT_DOCKER_interface)
Future<Nothing> stop = docker->stop(containerName);
AWAIT_READY(stop);
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get())) << status->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(status->get())) << status->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, status);
// Now, the container should not appear in the result of ps().
// But it should appear in the result of ps(true).
@@ -235,10 +232,7 @@ TEST_F(DockerTest, ROOT_DOCKER_interface)
rm = docker->rm(containerName, true);
AWAIT_READY(rm);
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get())) << status->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(status->get())) << status->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, status);
// Verify that the container is totally removed, that is we can't
// find it by ps() or ps(true).
@@ -302,10 +296,7 @@ TEST_F(DockerTest, ROOT_DOCKER_kill)
AWAIT_READY(kill);
- AWAIT_READY(run);
- ASSERT_SOME(run.get());
- EXPECT_TRUE(WIFEXITED(run->get())) << run->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(run->get())) << run->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, run);
}
@@ -425,10 +416,7 @@ TEST_F(DockerTest, ROOT_DOCKER_CheckPortResource)
"/mnt/mesos/sandbox",
resources);
- AWAIT_READY(run);
- ASSERT_SOME(run.get());
- EXPECT_TRUE(WIFEXITED(run->get())) << run->get();
- EXPECT_EQ(0, WEXITSTATUS(run->get())) << run->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, run);
}
@@ -505,10 +493,7 @@ TEST_F(DockerTest, ROOT_DOCKER_MountRelativeHostPath)
directory.get(),
"/mnt/mesos/sandbox");
- AWAIT_READY(run);
- ASSERT_SOME(run.get());
- EXPECT_TRUE(WIFEXITED(run->get())) << run->get();
- EXPECT_EQ(0, WEXITSTATUS(run->get())) << run->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, run);
}
@@ -551,10 +536,7 @@ TEST_F(DockerTest, ROOT_DOCKER_MountAbsoluteHostPath)
directory.get(),
"/mnt/mesos/sandbox");
- AWAIT_READY(run);
- ASSERT_SOME(run.get());
- EXPECT_TRUE(WIFEXITED(run->get())) << run->get();
- EXPECT_EQ(0, WEXITSTATUS(run->get())) << run->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, run);
}
@@ -598,10 +580,7 @@ TEST_F(DockerTest, ROOT_DOCKER_MountRelativeContainerPath)
directory.get(),
"/mnt/mesos/sandbox");
- AWAIT_READY(run);
- ASSERT_SOME(run.get());
- EXPECT_TRUE(WIFEXITED(run->get())) << run->get();
- EXPECT_EQ(0, WEXITSTATUS(run->get())) << run->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, run);
}
@@ -816,10 +795,7 @@ TEST_F(DockerTest, ROOT_DOCKER_NVIDIA_GPU_DeviceAllow)
None(),
devices);
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get())) << status->get();
- EXPECT_EQ(0, WEXITSTATUS(status->get())) << status->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, status);
}
@@ -887,10 +863,7 @@ TEST_F(DockerTest, ROOT_DOCKER_NVIDIA_GPU_InspectDevices)
AWAIT_READY(docker->kill(containerName, SIGKILL));
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status->get())) << status->get();
- EXPECT_EQ(128 + SIGKILL, WEXITSTATUS(status->get())) << status->get();
+ AWAIT_EXPECT_WEXITSTATUS_EQ(128 + SIGKILL, status);
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/launch_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/launch_tests.cpp b/src/tests/containerizer/launch_tests.cpp
index 81790a1..6eedc7e 100644
--- a/src/tests/containerizer/launch_tests.cpp
+++ b/src/tests/containerizer/launch_tests.cpp
@@ -114,12 +114,7 @@ TEST_F(MesosContainerizerLaunchTest, ROOT_ChangeRootfs)
Clock::settle();
}
- AWAIT_ASSERT_READY(s.get().status());
- ASSERT_SOME(s.get().status().get());
-
- int status = s.get().status().get().get();
- ASSERT_TRUE(WIFEXITED(status));
- ASSERT_EQ(0, WEXITSTATUS(status));
+ AWAIT_ASSERT_WEXITSTATUS_EQ(0, s.get().status());
// Check the rootfs has a different root by comparing the inodes.
Try<ino_t> self = os::stat::inode("/");
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/ns_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/ns_tests.cpp b/src/tests/containerizer/ns_tests.cpp
index 6aa5ade..97fb70c 100644
--- a/src/tests/containerizer/ns_tests.cpp
+++ b/src/tests/containerizer/ns_tests.cpp
@@ -31,6 +31,7 @@
#include <process/gtest.hpp>
#include <process/latch.hpp>
+#include <process/reap.hpp>
#include <process/subprocess.hpp>
#include "linux/ns.hpp"
@@ -95,12 +96,7 @@ TEST(NsTest, ROOT_setns)
ASSERT_SOME(s);
// The child should exit 0.
- Future<Option<int>> status = s.get().status();
- AWAIT_READY(status);
-
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFEXITED(status.get().get()));
- EXPECT_EQ(0, status.get().get());
+ AWAIT_EXPECT_WEXITSTATUS_EQ(0, s.get().status());
}
@@ -176,10 +172,7 @@ TEST(NsTest, ROOT_getns)
ASSERT_NE(-1, ::kill(pid, SIGKILL));
// Wait for the child process.
- int status;
- EXPECT_NE(-1, ::waitpid((pid_t) -1, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
}
@@ -214,7 +207,10 @@ TEST(NsTest, ROOT_destroy)
ASSERT_NE(-1, pid);
- Future<Option<int>> status = process::reap(pid);
+ // NOTE: need to call `reap` here because the `ns::pid::destroy`
+ // also calls `reap` and so we won't get the right status if we call
+ // `reap` after calling `ns::pid::destroy`.
+ Future<Option<int>> status = reap(pid);
// Ensure the child is in a different pid namespace.
Try<ino_t> childNs = ns::getns(pid, "pid");
@@ -228,10 +224,7 @@ TEST(NsTest, ROOT_destroy)
// Kill the child.
AWAIT_READY(ns::pid::destroy(childNs.get()));
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- ASSERT_TRUE(WIFSIGNALED(status.get().get()));
- EXPECT_EQ(SIGKILL, WTERMSIG(status.get().get()));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, status);
// Finally, verify that no processes are in the child's pid
// namespace, i.e., destroy() also killed all descendants.
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/routing_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/routing_tests.cpp b/src/tests/containerizer/routing_tests.cpp
index ee21d6c..e6b7ead 100644
--- a/src/tests/containerizer/routing_tests.cpp
+++ b/src/tests/containerizer/routing_tests.cpp
@@ -26,6 +26,7 @@
#include <process/clock.hpp>
#include <process/gtest.hpp>
+#include <process/reap.hpp>
#include <stout/foreach.hpp>
#include <stout/gtest.hpp>
@@ -325,10 +326,7 @@ TEST_F(RoutingVethTest, ROOT_LinkCreatePid)
ASSERT_NE(-1, kill(pid, SIGKILL));
// Wait for the child process.
- int status;
- EXPECT_NE(-1, waitpid((pid_t) -1, &status, 0));
- ASSERT_TRUE(WIFSIGNALED(status));
- EXPECT_EQ(SIGKILL, WTERMSIG(status));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, reap(pid));
}
http://git-wip-us.apache.org/repos/asf/mesos/blob/6b5e99d7/src/tests/containerizer/sched_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/sched_tests.cpp b/src/tests/containerizer/sched_tests.cpp
index f38ef97..9ca487d 100644
--- a/src/tests/containerizer/sched_tests.cpp
+++ b/src/tests/containerizer/sched_tests.cpp
@@ -77,16 +77,11 @@ TEST(SchedTest, ROOT_PolicyChild)
EXPECT_SOME(sched::policy::set(different, pid));
EXPECT_SOME_EQ(different, sched::policy::get(pid));
- process::Future<Option<int>> status = process::reap(pid);
-
// Kill the child process.
ASSERT_NE(-1, ::kill(pid, SIGKILL));
// Wait for the child process.
- AWAIT_READY(status);
- ASSERT_SOME(status.get());
- EXPECT_TRUE(WIFSIGNALED(status.get().get()));
- EXPECT_EQ(SIGKILL, WTERMSIG(status.get().get()));
+ AWAIT_EXPECT_WTERMSIG_EQ(SIGKILL, process::reap(pid));
}
} // namespace tests {