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);
}
}
" \"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);
}
}