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 00:08:49 UTC

mesos git commit: Added new qdisc tests for fq_codel and ingress queueing discipline.

Repository: mesos
Updated Branches:
  refs/heads/master 296bb188d -> 796f6a6a0


Added new qdisc tests for fq_codel and ingress queueing discipline.

Review: https://reviews.apache.org/r/34832


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/796f6a6a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/796f6a6a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/796f6a6a

Branch: refs/heads/master
Commit: 796f6a6a08ccbabe8a05e564cb5b542fc358468a
Parents: 296bb18
Author: Paul Brett <pa...@twopensource.com>
Authored: Wed Jun 3 15:08:28 2015 -0700
Committer: Jie Yu <yu...@gmail.com>
Committed: Wed Jun 3 15:08:29 2015 -0700

----------------------------------------------------------------------
 src/tests/routing_tests.cpp | 82 ++++++++++++++++++++++++++++++++++++++--
 1 file changed, 79 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/796f6a6a/src/tests/routing_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/routing_tests.cpp b/src/tests/routing_tests.cpp
index 2066a56..687c2fd 100644
--- a/src/tests/routing_tests.cpp
+++ b/src/tests/routing_tests.cpp
@@ -415,15 +415,91 @@ TEST_F(RoutingVethTest, ROOT_LinkMTU)
 }
 
 
-TEST_F(RoutingVethTest, ROOT_FqCodelCreate)
+TEST_F(RoutingVethTest, ROOT_IngressQdisc)
 {
-  ASSERT_SOME(link::create(TEST_VETH_LINK, TEST_PEER_LINK, None()));
+  // Test for a qdisc on a non-existant interface should fail.
+  EXPECT_SOME_FALSE(ingress::exists("noSuchInterface"));
+
+  EXPECT_SOME(link::create(TEST_VETH_LINK, TEST_PEER_LINK, None()));
 
   EXPECT_SOME_TRUE(link::exists(TEST_VETH_LINK));
   EXPECT_SOME_TRUE(link::exists(TEST_PEER_LINK));
 
-  ASSERT_SOME_TRUE(fq_codel::create(TEST_VETH_LINK));
+  // Interface exists but does not have an ingress filter.
+  EXPECT_SOME_FALSE(ingress::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+
+  // Try to create an ingress filter on an non-existant interface.
+  EXPECT_ERROR(ingress::create("noSuchInterface"));
+
+  // Create an ingress filter on an existing interface.
+  EXPECT_SOME_TRUE(ingress::create(TEST_VETH_LINK));
+
+  // Interface exists and has an ingress filter.
+  EXPECT_SOME_TRUE(ingress::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(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));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+
+  // Remove the ingress filter.
+  EXPECT_SOME_TRUE(ingress::remove(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+
+  // Try to remove it from the non-existant interface.
+  EXPECT_SOME_FALSE(ingress::remove("noSuchInterface"));
+
+  // Remove the ingress filter when it does not exist.
+  EXPECT_SOME_FALSE(ingress::remove(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(ingress::exists(TEST_PEER_LINK));
+}
+
+
+TEST_F(RoutingVethTest, ROOT_FqCodeQdisc)
+{
+  // Test for a qdisc on a non-existant interface should fail.
+  EXPECT_SOME_FALSE(fq_codel::exists("noSuchInterface"));
+
+  EXPECT_SOME(link::create(TEST_VETH_LINK, TEST_PEER_LINK, None()));
+
+  EXPECT_SOME_TRUE(link::exists(TEST_VETH_LINK));
+  EXPECT_SOME_TRUE(link::exists(TEST_PEER_LINK));
+
+  // Interface exists but does not have an fq_codel filter.
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
+
+  // Try to create an fq_codel filter on an non-existant interface.
+  EXPECT_ERROR(fq_codel::create("noSuchInterface"));
+
+  // Create an fq_codel filter on an existing interface.
+  EXPECT_SOME_TRUE(fq_codel::create(TEST_VETH_LINK));
+
+  // Interface exists and has an fq_codel filter.
+  EXPECT_SOME_TRUE(fq_codel::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(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));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
+
+  // Remove the fq_codel filter.
+  EXPECT_SOME_TRUE(fq_codel::remove(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
+
+  // Try to remove it from the non-existant interface.
+  EXPECT_SOME_FALSE(fq_codel::remove("noSuchInterface"));
+
+  // Remove the fq_codel filter when it does not exist.
+  EXPECT_SOME_FALSE(fq_codel::remove(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_VETH_LINK));
+  EXPECT_SOME_FALSE(fq_codel::exists(TEST_PEER_LINK));
 }