shill: add NoRepliesReceived utility function to IcmpSession
Add a function that parses an IcmpSessionResult and returns true
iff the result indicates that no echo replies were received to
any ICMP echo request that was sent during that session.
BUG=chromium:216691
TEST=Compile shill and run unit tests.
Change-Id: I3df5861460695af0f5c1a9d2c3577cfe8029a289
Reviewed-on: https://chromium-review.googlesource.com/283503
Tested-by: Samuel Tan <samueltan@chromium.org>
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Queue: Samuel Tan <samueltan@chromium.org>
diff --git a/icmp_session_unittest.cc b/icmp_session_unittest.cc
index 98723f5..cd24cd2 100644
--- a/icmp_session_unittest.cc
+++ b/icmp_session_unittest.cc
@@ -394,4 +394,23 @@
VerifyIcmpSessionStopped();
}
+TEST_F(IcmpSessionTest, AnyRepliesReceived) {
+ IcmpSession::IcmpSessionResult none_sent;
+ EXPECT_FALSE(IcmpSession::AnyRepliesReceived(none_sent));
+
+ IcmpSession::IcmpSessionResult two_sent_none_received;
+ two_sent_none_received.push_back(base::TimeDelta());
+ two_sent_none_received.push_back(base::TimeDelta());
+ EXPECT_FALSE(IcmpSession::AnyRepliesReceived(two_sent_none_received));
+
+ IcmpSession::IcmpSessionResult one_sent_one_received;
+ one_sent_one_received.push_back(base::TimeDelta::FromSeconds(10));
+ EXPECT_TRUE(IcmpSession::AnyRepliesReceived(one_sent_one_received));
+
+ IcmpSession::IcmpSessionResult two_sent_one_received;
+ two_sent_one_received.push_back(base::TimeDelta::FromSeconds(20));
+ two_sent_one_received.push_back(base::TimeDelta());
+ EXPECT_TRUE(IcmpSession::AnyRepliesReceived(two_sent_one_received));
+}
+
} // namespace shill