summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2017-03-28 13:44:41 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2017-03-28 13:44:41 +0000
commitf097da4764615cb7e6d116dda2976f2fbce4d46b (patch)
tree98fb0d3cd38a4c791ccce57cb2798a83ed919f32 /searchcore
parent0ac458bf1dd30748b97742c06db1710ffb52ef58 (diff)
Add more failure cases, mismatching base type and mismatching collection type.
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/attribute/attribute_initializer/attribute_initializer_test.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/searchcore/src/tests/proton/attribute/attribute_initializer/attribute_initializer_test.cpp b/searchcore/src/tests/proton/attribute/attribute_initializer/attribute_initializer_test.cpp
index cb9579d15b6..f369a44a20c 100644
--- a/searchcore/src/tests/proton/attribute/attribute_initializer/attribute_initializer_test.cpp
+++ b/searchcore/src/tests/proton/attribute/attribute_initializer/attribute_initializer_test.cpp
@@ -24,6 +24,9 @@ namespace proton
namespace {
+const Config int32_sv(BasicType::Type::INT32);
+const Config int16_sv(BasicType::Type::INT16);
+const Config int32_array(BasicType::Type::INT32, CollectionType::Type::ARRAY);
const Config predicate(BasicType::Type::PREDICATE);
Config getPredicate2(uint32_t arity)
@@ -89,6 +92,32 @@ Fixture::createInitializer(const vespalib::string &name, const Config &cfg, Seri
return std::make_unique<AttributeInitializer>(_diskLayout->createAttributeDir(name), "test.subdb", cfg, serialNum, _factory);
}
+TEST("require that integer attribute can be initialized")
+{
+ saveAttr("a", int32_sv, 10, 2);
+ Fixture f;
+ auto av = f.createInitializer("a", int32_sv, 5)->init();
+ EXPECT_EQUAL(2, av->getCreateSerialNum());
+ EXPECT_EQUAL(2, av->getNumDocs());
+}
+
+TEST("require that mismatching base type is not loaded")
+{
+ saveAttr("a", int32_sv, 10, 2);
+ Fixture f;
+ auto av = f.createInitializer("a", int16_sv, 5)->init();
+ EXPECT_EQUAL(5, av->getCreateSerialNum());
+ EXPECT_EQUAL(1, av->getNumDocs());
+}
+
+TEST("require that mismatching collection type is not loaded")
+{
+ saveAttr("a", int32_sv, 10, 2);
+ Fixture f;
+ auto av = f.createInitializer("a", int32_array, 5)->init();
+ EXPECT_EQUAL(5, av->getCreateSerialNum());
+ EXPECT_EQUAL(1, av->getNumDocs());
+}
TEST("require that predicate attributes can be initialized")
{