diff options
author | Geir Storli <geirst@oath.com> | 2018-02-21 10:19:43 +0000 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2018-02-21 16:01:15 +0000 |
commit | 63532725cd0d114fa6ec2719c9283e80ea65943d (patch) | |
tree | 3d85f267d792dbc1ef4f01ed5be01a18acb7353f /storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp | |
parent | 59e254a7d8ea61ddfb2adde30b0aecef70913704 (diff) |
Make NodeMaintenanceStatsTracker bucket space aware.
Diffstat (limited to 'storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp')
-rw-r--r-- | storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp | 90 |
1 files changed, 73 insertions, 17 deletions
diff --git a/storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp b/storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp index 6da23103e0f..eee52f4d679 100644 --- a/storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp +++ b/storage/src/tests/distributor/nodemaintenancestatstrackertest.cpp @@ -1,11 +1,14 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/document/test/make_bucket_space.h> +#include <vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h> #include <vespa/vdstestlib/cppunit/macros.h> +#include <vespa/document/bucket/fixed_bucket_spaces.h> -#include <vespa/storage/distributor/maintenance/node_maintenance_stats_tracker.h> +namespace storage::distributor { -namespace storage { -namespace distributor { +using document::test::makeBucketSpace; +using document::BucketSpace; class NodeMaintenanceStatsTrackerTest : public CppUnit::TestFixture { @@ -14,12 +17,17 @@ class NodeMaintenanceStatsTrackerTest : public CppUnit::TestFixture CPPUNIT_TEST(statsFieldsAffectEqualityComparison); CPPUNIT_TEST(requestingNonExistingNodeGivesEmptyStats); CPPUNIT_TEST(statsAreTrackedPerNode); + CPPUNIT_TEST(statsAreTrackedPerBucketSpace); CPPUNIT_TEST_SUITE_END(); void emptyStatsInstancesAreEqual(); void statsFieldsAffectEqualityComparison(); void requestingNonExistingNodeGivesEmptyStats(); void statsAreTrackedPerNode(); + void statsAreTrackedPerBucketSpace(); + void assertBucketStats(BucketSpace bucketSpace, const NodeMaintenanceStatsTracker& tracker); + void assertBucketStats(uint64_t expMovingOut, uint64_t expSyncing, uint64_t expCopyingIn, uint64_t expCopyingOut, + BucketSpace bucketSpace, const NodeMaintenanceStatsTracker& tracker); }; CPPUNIT_TEST_SUITE_REGISTRATION(NodeMaintenanceStatsTrackerTest); @@ -64,7 +72,7 @@ NodeMaintenanceStatsTrackerTest::requestingNonExistingNodeGivesEmptyStats() { NodeMaintenanceStatsTracker tracker; NodeMaintenanceStats wanted; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0, makeBucketSpace())); } void @@ -72,30 +80,78 @@ NodeMaintenanceStatsTrackerTest::statsAreTrackedPerNode() { NodeMaintenanceStatsTracker tracker; NodeMaintenanceStats wanted; + BucketSpace space(1); - tracker.incMovingOut(0); + tracker.incMovingOut(0, space); wanted.movingOut = 1; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0, space)); wanted.movingOut = 0; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1, space)); - tracker.incMovingOut(0); + tracker.incMovingOut(0, space); wanted.movingOut = 2; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(0, space)); - tracker.incMovingOut(1); + tracker.incMovingOut(1, space); wanted.movingOut = 1; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1, space)); - tracker.incSyncing(1); - tracker.incCopyingIn(1); - tracker.incCopyingOut(1); + tracker.incSyncing(1, space); + tracker.incCopyingIn(1, space); + tracker.incCopyingOut(1, space); wanted.syncing = 1; wanted.copyingIn = 1; wanted.copyingOut = 1; - CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1)); + CPPUNIT_ASSERT_EQUAL(wanted, tracker.forNode(1, space)); } -} // distributor -} // storage +void +NodeMaintenanceStatsTrackerTest::statsAreTrackedPerBucketSpace() +{ + NodeMaintenanceStatsTracker tracker; + BucketSpace fooSpace(3); + BucketSpace barSpace(5); + + tracker.incMovingOut(0, fooSpace); + assertBucketStats(1, 0, 0, 0, fooSpace, tracker); + assertBucketStats(barSpace, tracker); + + tracker.incMovingOut(0, barSpace); + assertBucketStats(1, 0, 0, 0, fooSpace, tracker); + assertBucketStats(1, 0, 0, 0, barSpace, tracker); + + tracker.incSyncing(0, fooSpace); + assertBucketStats(1, 1, 0, 0, fooSpace, tracker); + assertBucketStats(1, 0, 0, 0, barSpace, tracker); + + tracker.incCopyingIn(0, fooSpace); + assertBucketStats(1, 1, 1, 0, fooSpace, tracker); + assertBucketStats(1, 0, 0, 0, barSpace, tracker); + + tracker.incCopyingOut(0, fooSpace); + assertBucketStats(1, 1, 1, 1, fooSpace, tracker); + assertBucketStats(1, 0, 0, 0, barSpace, tracker); +} + +void +NodeMaintenanceStatsTrackerTest::assertBucketStats(BucketSpace bucketSpace, + const NodeMaintenanceStatsTracker& tracker) +{ + NodeMaintenanceStats expStats; + CPPUNIT_ASSERT_EQUAL(expStats, tracker.forNode(0, bucketSpace)); +} + +void +NodeMaintenanceStatsTrackerTest::assertBucketStats(uint64_t expMovingOut, + uint64_t expSyncing, + uint64_t expCopyingIn, + uint64_t expCopyingOut, + BucketSpace bucketSpace, + const NodeMaintenanceStatsTracker& tracker) +{ + NodeMaintenanceStats expStats(expMovingOut, expSyncing, expCopyingIn, expCopyingOut); + CPPUNIT_ASSERT_EQUAL(expStats, tracker.forNode(0, bucketSpace)); +} + +} |