Return-Path: X-Original-To: apmail-mesos-commits-archive@www.apache.org Delivered-To: apmail-mesos-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 515E7192FD for ; Tue, 1 Mar 2016 22:28:30 +0000 (UTC) Received: (qmail 6349 invoked by uid 500); 1 Mar 2016 22:28:30 -0000 Delivered-To: apmail-mesos-commits-archive@mesos.apache.org Received: (qmail 6250 invoked by uid 500); 1 Mar 2016 22:28:30 -0000 Mailing-List: contact commits-help@mesos.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@mesos.apache.org Delivered-To: mailing list commits@mesos.apache.org Received: (qmail 6081 invoked by uid 99); 1 Mar 2016 22:28:30 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Mar 2016 22:28:30 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id F41B8DFCF2; Tue, 1 Mar 2016 22:28:29 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jieyu@apache.org To: commits@mesos.apache.org Date: Tue, 01 Mar 2016 22:28:32 -0000 Message-Id: <35f5b31a34794aea8e6b9de0051919e2@git.apache.org> In-Reply-To: <0abdbf22c1c24e11b8e7e001c6d40f4d@git.apache.org> References: <0abdbf22c1c24e11b8e7e001c6d40f4d@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [4/4] mesos git commit: Modified testcase to test `--cgroups_net_cls_secondary_handles` flag. Modified testcase to test `--cgroups_net_cls_secondary_handles` flag. Review: https://reviews.apache.org/r/43916/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/4f59f980 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/4f59f980 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/4f59f980 Branch: refs/heads/master Commit: 4f59f9804961b16a747471f65660fe4084cee0bc Parents: db26aef Author: Avinash sridharan Authored: Tue Mar 1 14:28:16 2016 -0800 Committer: Jie Yu Committed: Tue Mar 1 14:28:16 2016 -0800 ---------------------------------------------------------------------- src/tests/containerizer/isolator_tests.cpp | 59 ++++++++++++++++++++----- 1 file changed, 47 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/4f59f980/src/tests/containerizer/isolator_tests.cpp ---------------------------------------------------------------------- diff --git a/src/tests/containerizer/isolator_tests.cpp b/src/tests/containerizer/isolator_tests.cpp index 7b257de..342037c 100644 --- a/src/tests/containerizer/isolator_tests.cpp +++ b/src/tests/containerizer/isolator_tests.cpp @@ -382,9 +382,9 @@ class NetClsHandleManagerTest : public testing::Test {}; // and free secondary handles from a range of primary handles. TEST_F(NetClsHandleManagerTest, AllocateFreeHandles) { - NetClsHandleManager manager(IntervalSet( - (Bound::closed(0x0002), - Bound::closed(0x0003)))); + NetClsHandleManager manager(IntervalSet( + (Bound::closed(0x0002), + Bound::closed(0x0003)))); Try handle = manager.alloc(0x0003); ASSERT_SOME(handle); @@ -401,9 +401,9 @@ TEST_F(NetClsHandleManagerTest, AllocateFreeHandles) // handles results in an error. TEST_F(NetClsHandleManagerTest, AllocateInvalidPrimary) { - NetClsHandleManager manager(IntervalSet( - (Bound::closed(0x0002), - Bound::closed(0x0003)))); + NetClsHandleManager manager(IntervalSet( + (Bound::closed(0x0002), + Bound::closed(0x0003)))); ASSERT_ERROR(manager.alloc(0x0001)); } @@ -413,9 +413,9 @@ TEST_F(NetClsHandleManagerTest, AllocateInvalidPrimary) // handle so that they won't be allocated out later. TEST_F(NetClsHandleManagerTest, ReserveHandles) { - NetClsHandleManager manager(IntervalSet( - (Bound::closed(0x0002), - Bound::closed(0x0003)))); + NetClsHandleManager manager(IntervalSet( + (Bound::closed(0x0002), + Bound::closed(0x0003)))); NetClsHandle handle(0x0003, 0xffff); @@ -423,6 +423,39 @@ TEST_F(NetClsHandleManagerTest, ReserveHandles) EXPECT_SOME_TRUE(manager.isUsed(handle)); } + + +// Tests that secondary handles are allocated only from a given range, +// when the range is specified. +TEST_F(NetClsHandleManagerTest, SecondaryHandleRange) +{ + NetClsHandleManager manager( + IntervalSet( + (Bound::closed(0x0002), + Bound::closed(0x0003))), + IntervalSet( + (Bound::closed(0xffff), + Bound::closed(0xffff)))); + + Try handle = manager.alloc(0x0003); + ASSERT_SOME(handle); + + EXPECT_SOME_TRUE(manager.isUsed(handle.get())); + + // Try allocating another handle. This should fail, since we don't + // have any more secondary handles left. + EXPECT_ERROR(manager.alloc(0x0003)); + + ASSERT_SOME(manager.free(handle.get())); + + ASSERT_SOME(manager.reserve(handle.get())); + + EXPECT_SOME_TRUE(manager.isUsed(handle.get())); + + // Make sure you cannot reserve a secondary handle that is out of + // range. + EXPECT_ERROR(manager.reserve(NetClsHandle(0x0003, 0x0001))); +} #endif // __linux__ @@ -944,6 +977,7 @@ TEST_F(NetClsIsolatorTest, ROOT_CGROUPS_NetClsIsolate) slave::Flags flags = CreateSlaveFlags(); flags.isolation = "cgroups/net_cls"; flags.cgroups_net_cls_primary_handle = stringify(primary); + flags.cgroups_net_cls_secondary_handles = "0xffff,0xffff"; Fetcher fetcher; @@ -1021,8 +1055,8 @@ TEST_F(NetClsIsolatorTest, ROOT_CGROUPS_NetClsIsolate) // `--cgroup_net_cls_primary_handle`. EXPECT_EQ(primary, (classid.get() & 0xffff0000) >> 16); - // Make sure the secondary handle is non-zero. - EXPECT_NE(0u, classid.get() & 0xffff); + // Make sure the secondary handle is 0xffff. + EXPECT_EQ(0xffffu, classid.get() & 0xffff); } // Isolator cleanup test: Killing the task should cleanup the cgroup @@ -1063,6 +1097,7 @@ TEST_F(NetClsIsolatorTest, ROOT_CGROUPS_ContainerStatus) slave::Flags flags = CreateSlaveFlags(); flags.isolation = "cgroups/net_cls"; flags.cgroups_net_cls_primary_handle = stringify(0x0012); + flags.cgroups_net_cls_secondary_handles = "0x0011,0x0012"; Fetcher fetcher; @@ -1126,7 +1161,7 @@ TEST_F(NetClsIsolatorTest, ROOT_CGROUPS_ContainerStatus) // Check the primary and the secondary handle. EXPECT_EQ(0x0012u, classid >> 16); - EXPECT_NE(0u, classid & 0xffff); + EXPECT_EQ(0x0011u, classid & 0xffff); driver.stop(); driver.join();