You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2015/06/04 18:45:26 UTC
[2/2] mesos git commit: Added tests for the new qdisc statistics
functions.
Added tests for the new qdisc statistics functions.
Review: https://reviews.apache.org/r/34863
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9d977730
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9d977730
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9d977730
Branch: refs/heads/master
Commit: 9d977730705feb15bcfbbaa14506db97ff91d9bb
Parents: d431f04
Author: Paul Brett <pa...@twopensource.com>
Authored: Thu Jun 4 09:39:34 2015 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Thu Jun 4 09:39:35 2015 -0700
----------------------------------------------------------------------
src/tests/routing_tests.cpp | 42 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/9d977730/src/tests/routing_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/routing_tests.cpp b/src/tests/routing_tests.cpp
index 687c2fd..96be25f 100644
--- a/src/tests/routing_tests.cpp
+++ b/src/tests/routing_tests.cpp
@@ -52,6 +52,7 @@
#include "linux/routing/queueing/fq_codel.hpp"
#include "linux/routing/queueing/ingress.hpp"
+#include "linux/routing/queueing/statistics.hpp"
using namespace process;
@@ -429,6 +430,10 @@ TEST_F(RoutingVethTest, ROOT_IngressQdisc)
EXPECT_SOME_FALSE(ingress::exists(TEST_VETH_LINK));
EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+ // Interfaces without qdisc established no data.
+ EXPECT_NONE(ingress::statistics(TEST_VETH_LINK));
+ EXPECT_NONE(ingress::statistics(TEST_PEER_LINK));
+
// Try to create an ingress filter on an non-existant interface.
EXPECT_ERROR(ingress::create("noSuchInterface"));
@@ -439,6 +444,22 @@ TEST_F(RoutingVethTest, ROOT_IngressQdisc)
EXPECT_SOME_TRUE(ingress::exists(TEST_VETH_LINK));
EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+ // Interfaces which exist return at least the core statisitcs.
+ Result<hashmap<string, uint64_t>> stats = ingress::statistics(TEST_VETH_LINK);
+ ASSERT_SOME(stats);
+ EXPECT_TRUE(stats.get().contains(statistics::PACKETS));
+ EXPECT_TRUE(stats.get().contains(statistics::BYTES));
+ EXPECT_TRUE(stats.get().contains(statistics::RATE_BPS));
+ EXPECT_TRUE(stats.get().contains(statistics::RATE_PPS));
+ EXPECT_TRUE(stats.get().contains(statistics::QLEN));
+ EXPECT_TRUE(stats.get().contains(statistics::BACKLOG));
+ EXPECT_TRUE(stats.get().contains(statistics::DROPS));
+ EXPECT_TRUE(stats.get().contains(statistics::REQUEUES));
+ EXPECT_TRUE(stats.get().contains(statistics::OVERLIMITS));
+
+ // Interface without qdisc returns no data.
+ EXPECT_NONE(ingress::statistics(TEST_PEER_LINK));
+
// Try to create a second ingress filter on an existing interface.
EXPECT_SOME_FALSE(ingress::create(TEST_VETH_LINK));
EXPECT_SOME_TRUE(ingress::exists(TEST_VETH_LINK));
@@ -473,6 +494,10 @@ TEST_F(RoutingVethTest, ROOT_FqCodeQdisc)
EXPECT_SOME_FALSE(fq_codel::exists(TEST_VETH_LINK));
EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
+ // Interfaces without qdisc established no data.
+ EXPECT_NONE(fq_codel::statistics(TEST_VETH_LINK));
+ EXPECT_NONE(fq_codel::statistics(TEST_PEER_LINK));
+
// Try to create an fq_codel filter on an non-existant interface.
EXPECT_ERROR(fq_codel::create("noSuchInterface"));
@@ -483,6 +508,23 @@ TEST_F(RoutingVethTest, ROOT_FqCodeQdisc)
EXPECT_SOME_TRUE(fq_codel::exists(TEST_VETH_LINK));
EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
+ // Interfaces which exist return at least the core statisitcs.
+ Result<hashmap<string, uint64_t>> stats =
+ fq_codel::statistics(TEST_VETH_LINK);
+ ASSERT_SOME(stats);
+ EXPECT_TRUE(stats.get().contains(statistics::PACKETS));
+ EXPECT_TRUE(stats.get().contains(statistics::BYTES));
+ EXPECT_TRUE(stats.get().contains(statistics::RATE_BPS));
+ EXPECT_TRUE(stats.get().contains(statistics::RATE_PPS));
+ EXPECT_TRUE(stats.get().contains(statistics::QLEN));
+ EXPECT_TRUE(stats.get().contains(statistics::BACKLOG));
+ EXPECT_TRUE(stats.get().contains(statistics::DROPS));
+ EXPECT_TRUE(stats.get().contains(statistics::REQUEUES));
+ EXPECT_TRUE(stats.get().contains(statistics::OVERLIMITS));
+
+ // Interface without qdisc returns no data.
+ EXPECT_NONE(fq_codel::statistics(TEST_PEER_LINK));
+
// Try to create a second fq_codel filter on an existing interface.
EXPECT_SOME_FALSE(fq_codel::create(TEST_VETH_LINK));
EXPECT_SOME_TRUE(fq_codel::exists(TEST_VETH_LINK));