You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2017/06/19 03:12:58 UTC

mesos git commit: Added test for endpoint resource format.

Repository: mesos
Updated Branches:
  refs/heads/master cf96042ec -> ff5dce24e


Added test for endpoint resource format.

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


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

Branch: refs/heads/master
Commit: ff5dce24ec20a27d1eaee30f084081861231982c
Parents: cf96042
Author: Neil Conway <ne...@gmail.com>
Authored: Sun Jun 18 20:12:43 2017 -0700
Committer: Michael Park <mp...@apache.org>
Committed: Sun Jun 18 20:12:43 2017 -0700

----------------------------------------------------------------------
 src/tests/master_validation_tests.cpp | 55 ++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/ff5dce24/src/tests/master_validation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_validation_tests.cpp b/src/tests/master_validation_tests.cpp
index 83370fa..e3c75ab 100644
--- a/src/tests/master_validation_tests.cpp
+++ b/src/tests/master_validation_tests.cpp
@@ -269,6 +269,61 @@ TEST_F(ResourceValidationTest, SharedPersistentVolume)
 }
 
 
+// This test checks that the master considers resources in the "endpoint"
+// format to be valid. In the "endpoint" format, both the fields for both
+// pre-refinement and post-refinement reservations are set, but they must be
+// set to mutually equivalent values.
+TEST_F(ResourceValidationTest, ReservationEndpointFormat)
+{
+  Resource resource;
+  resource.set_name("cpus");
+  resource.set_type(Value::SCALAR);
+  resource.mutable_scalar()->set_value(555.5);
+  resource.set_role("r1");
+
+  // Dynamically reserved, pre-refinement format.
+  Resource::ReservationInfo* unrefinedReservation =
+    resource.mutable_reservation();
+  unrefinedReservation->set_principal("principal1");
+
+  // Set `reservations` field as well (post-refinement format).
+  Resource::ReservationInfo* refinedReservation = resource.add_reservations();
+  refinedReservation->set_type(Resource::ReservationInfo::DYNAMIC);
+  refinedReservation->set_role("r1");
+  refinedReservation->set_principal("principal1");
+
+  // Should validate now that all fields are set to equivalent values.
+  EXPECT_NONE(resource::validate(CreateResources(resource)));
+
+  // Should not validate if pre- and post-refinement fields are inconsistent.
+  {
+    refinedReservation->set_role("r2");
+    EXPECT_SOME(resource::validate(CreateResources(resource)));
+    refinedReservation->set_role("r1");
+
+    refinedReservation->set_type(Resource::ReservationInfo::STATIC);
+    EXPECT_SOME(resource::validate(CreateResources(resource)));
+    refinedReservation->set_type(Resource::ReservationInfo::DYNAMIC);
+
+    unrefinedReservation->set_principal("principal2");
+    EXPECT_SOME(resource::validate(CreateResources(resource)));
+    unrefinedReservation->set_principal("principal1");
+
+    // Sanity check that the resource is still valid.
+    EXPECT_NONE(resource::validate(CreateResources(resource)));
+  }
+
+  // Should not validate if the post-refinement format contains a
+  // reservation refinement.
+  Resource::ReservationInfo* refinedReservation2 = resource.add_reservations();
+  refinedReservation2->set_type(Resource::ReservationInfo::DYNAMIC);
+  refinedReservation2->set_role("r1/r2");
+  refinedReservation2->set_principal("principal1");
+
+  EXPECT_SOME(resource::validate(CreateResources(resource)));
+}
+
+
 class ReserveOperationValidationTest : public MesosTest {};