Commit 946b1dfe authored by Paul Selkirk's avatar Paul Selkirk
Browse files

[2832] add value checking for 'cache-type'

parent 9a160a14
......@@ -37,12 +37,16 @@ getEnabledFromConf(const Element& conf) {
std::string
getSegmentTypeFromConf(const Element& conf) {
// If cache-zones is not explicitly configured, use the default type.
// If cache-type is not explicitly configured, use the default type.
// (Ideally we should retrieve the default from the spec).
if (!conf.contains("cache-type")) {
return ("local");
}
return (conf.get("cache-type")->stringValue());
std::string cache_type = conf.get("cache-type")->stringValue();
if ((cache_type != "local") && (cache_type != "mapped")) {
isc_throw(CacheConfigError, "invalid cache-type");
}
return (cache_type);
}
}
......
......@@ -238,6 +238,13 @@ TEST_F(CacheConfigTest, getSegmentType) {
" \"params\": {}}"));
EXPECT_THROW(CacheConfig("MasterFiles", 0, *badconfig, true),
isc::data::TypeError);
// Bad value: should be rejected at construction time
ConstElementPtr badconfig2(Element::fromJSON("{\"cache-enable\": true,"
" \"cache-type\": \"bogus\","
" \"params\": {}}"));
EXPECT_THROW(CacheConfig("MasterFiles", 0, *badconfig2, true),
isc::datasrc::internal::CacheConfigError);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment