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 {};