You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2014/08/07 03:52:23 UTC
git commit: Added 'process::inject::exited()' to simulate exited
events in tests.
Repository: mesos
Updated Branches:
refs/heads/master c41f62d7f -> 62086313d
Added 'process::inject::exited()' to simulate exited events in tests.
Review: https://reviews.apache.org/r/20504
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/62086313
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/62086313
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/62086313
Branch: refs/heads/master
Commit: 62086313d49c081afeb89dc3e289317dd9ccc11c
Parents: c41f62d
Author: Vinod Kone <vi...@twitter.com>
Authored: Fri Apr 18 15:31:20 2014 -0700
Committer: Vinod Kone <vi...@gmail.com>
Committed: Wed Aug 6 18:30:33 2014 -0700
----------------------------------------------------------------------
3rdparty/libprocess/include/process/process.hpp | 8 +++++++
3rdparty/libprocess/src/process.cpp | 14 ++++++++++++
3rdparty/libprocess/src/tests/process_tests.cpp | 24 ++++++++++++++++++++
3 files changed, 46 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/62086313/3rdparty/libprocess/include/process/process.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/process.hpp b/3rdparty/libprocess/include/process/process.hpp
index 3c31dfb..270ca28 100644
--- a/3rdparty/libprocess/include/process/process.hpp
+++ b/3rdparty/libprocess/include/process/process.hpp
@@ -396,6 +396,14 @@ extern ThreadLocal<ProcessBase>* _process_;
#define __process__ (*_process_)
+// NOTE: Methods in this namespace should only be used in tests to
+// inject arbitrary events.
+namespace inject {
+// Simulates disconnection of the link between 'from' and 'to' by
+// sending an 'ExitedEvent' to 'to'.
+bool exited(const UPID& from, const UPID& to);
+} // namespace inject {
+
} // namespace process {
#endif // __PROCESS_PROCESS_HPP__
http://git-wip-us.apache.org/repos/asf/mesos/blob/62086313/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index d981551..14cf317 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -4186,6 +4186,20 @@ Future<Nothing> redirect(int from, Option<int> to, size_t chunk)
} // namespace io {
+
+namespace inject {
+
+bool exited(const UPID& from, const UPID& to)
+{
+ process::initialize();
+
+ ExitedEvent* event = new ExitedEvent(from);
+ return process_manager->deliver(to, event, __process__);
+}
+
+} // namespace inject {
+
+
namespace internal {
void dispatch(
http://git-wip-us.apache.org/repos/asf/mesos/blob/62086313/3rdparty/libprocess/src/tests/process_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/process_tests.cpp b/3rdparty/libprocess/src/tests/process_tests.cpp
index ebce48c..b985fb7 100644
--- a/3rdparty/libprocess/src/tests/process_tests.cpp
+++ b/3rdparty/libprocess/src/tests/process_tests.cpp
@@ -1052,6 +1052,30 @@ TEST(Process, exited)
}
+TEST(Process, injectExited)
+{
+ ASSERT_TRUE(GTEST_IS_THREADSAFE);
+
+ UPID pid = spawn(new ProcessBase(), true);
+
+ ExitedProcess process(pid);
+
+ volatile bool exitedCalled = false;
+
+ EXPECT_CALL(process, exited(pid))
+ .WillOnce(Assign(&exitedCalled, true));
+
+ spawn(process);
+
+ inject::exited(pid, process.self());
+
+ while (!exitedCalled);
+
+ terminate(process);
+ wait(process);
+}
+
+
TEST(Process, select)
{
ASSERT_TRUE(GTEST_IS_THREADSAFE);