diff options
author | Tor Brede Vekterli <vekterli@oath.com> | 2018-01-10 14:07:58 +0000 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@oath.com> | 2018-01-11 12:11:16 +0000 |
commit | a87fa25dfa9e193c492698e11ff2162e2bbf20b6 (patch) | |
tree | 101d847c40eade53d149871ce2b631994cf9b54a /storage/src/tests/common | |
parent | d7aa21bf229babfd7931fa02e111a44fe50fa987 (diff) |
Add utility function for transforming lib::Distribution instances to global
Diffstat (limited to 'storage/src/tests/common')
-rw-r--r-- | storage/src/tests/common/global_bucket_space_distribution_converter_test.cpp | 47 |
1 files changed, 21 insertions, 26 deletions
diff --git a/storage/src/tests/common/global_bucket_space_distribution_converter_test.cpp b/storage/src/tests/common/global_bucket_space_distribution_converter_test.cpp index d34bed304a0..60e54dbec39 100644 --- a/storage/src/tests/common/global_bucket_space_distribution_converter_test.cpp +++ b/storage/src/tests/common/global_bucket_space_distribution_converter_test.cpp @@ -3,8 +3,6 @@ #include <vespa/storage/common/global_bucket_space_distribution_converter.h> #include <vespa/vdstestlib/cppunit/macros.h> #include <vespa/config/config.h> -#include <vespa/config/print/asciiconfigwriter.h> -#include <vespa/config/print/asciiconfigreader.h> #include <vespa/vdslib/state/clusterstate.h> #include <random> @@ -16,6 +14,7 @@ struct GlobalBucketSpaceDistributionConverterTest : public CppUnit::TestFixture CPPUNIT_TEST(can_transform_single_level_multi_group_config); CPPUNIT_TEST(can_transform_multi_level_multi_group_config); CPPUNIT_TEST(can_transform_heterogenous_multi_group_config); + CPPUNIT_TEST(can_transform_concrete_distribution_instance); CPPUNIT_TEST(config_retired_state_is_propagated); CPPUNIT_TEST(group_capacities_are_propagated); CPPUNIT_TEST(global_distribution_has_same_owner_distributors_as_default); @@ -25,6 +24,7 @@ struct GlobalBucketSpaceDistributionConverterTest : public CppUnit::TestFixture void can_transform_single_level_multi_group_config(); void can_transform_multi_level_multi_group_config(); void can_transform_heterogenous_multi_group_config(); + void can_transform_concrete_distribution_instance(); void config_retired_state_is_propagated(); void group_capacities_are_propagated(); void global_distribution_has_same_owner_distributors_as_default(); @@ -36,29 +36,13 @@ using DistributionConfig = vespa::config::content::StorDistributionConfig; namespace { -std::unique_ptr<DistributionConfig> string_to_config(const vespalib::string& cfg) { - vespalib::asciistream iss(cfg); - config::AsciiConfigReader<vespa::config::content::StorDistributionConfig> reader(iss); - return reader.read(); -} - -vespalib::string config_to_string(const DistributionConfig& cfg) { - vespalib::asciistream ost; - config::AsciiConfigWriter writer(ost); - writer.write(cfg); - return ost.str(); -} - vespalib::string default_to_global_config(const vespalib::string& default_config) { - auto default_cfg = string_to_config(default_config); + auto default_cfg = GlobalBucketSpaceDistributionConverter::string_to_config(default_config); auto as_global = GlobalBucketSpaceDistributionConverter::convert_to_global(*default_cfg); - return config_to_string(*as_global); + return GlobalBucketSpaceDistributionConverter::config_to_string(*as_global); } -} - -void GlobalBucketSpaceDistributionConverterTest::can_transform_flat_cluster_config() { - vespalib::string default_config( +vespalib::string default_flat_config( R"(redundancy 1 group[1] group[0].name "invalid" @@ -70,7 +54,7 @@ group[0].nodes[1].index 1 group[0].nodes[2].index 2 )"); - vespalib::string expected_global_config( +vespalib::string expected_flat_global_config( R"(redundancy 3 initial_redundancy 0 ensure_primary_persisted true @@ -89,7 +73,11 @@ group[0].nodes[2].index 2 group[0].nodes[2].retired false disk_distribution MODULO_BID )"); - CPPUNIT_ASSERT_EQUAL(expected_global_config, default_to_global_config(default_config)); + +} + +void GlobalBucketSpaceDistributionConverterTest::can_transform_flat_cluster_config() { + CPPUNIT_ASSERT_EQUAL(expected_flat_global_config, default_to_global_config(default_flat_config)); } @@ -290,6 +278,13 @@ disk_distribution MODULO_BID CPPUNIT_ASSERT_EQUAL(expected_global_config, default_to_global_config(default_config)); } +void GlobalBucketSpaceDistributionConverterTest::can_transform_concrete_distribution_instance() { + auto default_cfg = GlobalBucketSpaceDistributionConverter::string_to_config(default_flat_config); + lib::Distribution flat_distr(*default_cfg); + auto global_distr = GlobalBucketSpaceDistributionConverter::convert_to_global(flat_distr); + CPPUNIT_ASSERT_EQUAL(expected_flat_global_config, global_distr->serialize()); +} + void GlobalBucketSpaceDistributionConverterTest::config_retired_state_is_propagated() { vespalib::string default_config( R"(redundancy 1 @@ -306,7 +301,7 @@ group[0].nodes[2].index 2 group[0].nodes[2].retired true )"); - auto default_cfg = string_to_config(default_config); + auto default_cfg = GlobalBucketSpaceDistributionConverter::string_to_config(default_config); auto as_global = GlobalBucketSpaceDistributionConverter::convert_to_global(*default_cfg); CPPUNIT_ASSERT_EQUAL(size_t(1), as_global->group.size()); @@ -336,7 +331,7 @@ group[2].index 1 group[2].nodes[1] group[2].nodes[0].index 1 )"); - auto default_cfg = string_to_config(default_config); + auto default_cfg = GlobalBucketSpaceDistributionConverter::string_to_config(default_config); auto as_global = GlobalBucketSpaceDistributionConverter::convert_to_global(*default_cfg); CPPUNIT_ASSERT_EQUAL(size_t(3), as_global->group.size()); @@ -365,7 +360,7 @@ group[2].nodes[0].index 1 group[2].nodes[1].index 2 )"); - auto default_cfg = string_to_config(default_config); + auto default_cfg = GlobalBucketSpaceDistributionConverter::string_to_config(default_config); auto global_cfg = GlobalBucketSpaceDistributionConverter::convert_to_global(*default_cfg); lib::Distribution default_distr(*default_cfg); |