diff options
Diffstat (limited to 'searchlib/src/tests/ranksetup/verify_feature')
4 files changed, 68 insertions, 0 deletions
diff --git a/searchlib/src/tests/ranksetup/verify_feature/.gitignore b/searchlib/src/tests/ranksetup/verify_feature/.gitignore new file mode 100644 index 00000000000..69a39cd13f2 --- /dev/null +++ b/searchlib/src/tests/ranksetup/verify_feature/.gitignore @@ -0,0 +1 @@ +searchlib_verify_feature_test_app diff --git a/searchlib/src/tests/ranksetup/verify_feature/CMakeLists.txt b/searchlib/src/tests/ranksetup/verify_feature/CMakeLists.txt new file mode 100644 index 00000000000..8ffd79fe327 --- /dev/null +++ b/searchlib/src/tests/ranksetup/verify_feature/CMakeLists.txt @@ -0,0 +1,8 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +vespa_add_executable(searchlib_verify_feature_test_app + SOURCES + verify_feature_test.cpp + DEPENDS + searchlib +) +vespa_add_test(NAME searchlib_verify_feature_test_app COMMAND searchlib_verify_feature_test_app) diff --git a/searchlib/src/tests/ranksetup/verify_feature/FILES b/searchlib/src/tests/ranksetup/verify_feature/FILES new file mode 100644 index 00000000000..652373e33da --- /dev/null +++ b/searchlib/src/tests/ranksetup/verify_feature/FILES @@ -0,0 +1 @@ +verify_feature_test.cpp diff --git a/searchlib/src/tests/ranksetup/verify_feature/verify_feature_test.cpp b/searchlib/src/tests/ranksetup/verify_feature/verify_feature_test.cpp new file mode 100644 index 00000000000..1e49cd4aae6 --- /dev/null +++ b/searchlib/src/tests/ranksetup/verify_feature/verify_feature_test.cpp @@ -0,0 +1,58 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/vespalib/testkit/test_kit.h> +#include <vespa/searchlib/fef/fef.h> +#include <vespa/searchlib/fef/test/indexenvironment.h> +#include <vespa/searchlib/fef/test/plugin/setup.h> +#include <vespa/searchlib/features/valuefeature.h> + +using namespace search::features; +using namespace search::fef::test; +using namespace search::fef; + +struct RankFixture { + BlueprintFactory factory; + IndexEnvironment indexEnv; + + RankFixture() : factory(), indexEnv() { + setup_fef_test_plugin(factory); + factory.addPrototype(Blueprint::SP(new ValueBlueprint())); + } + + bool verify(const std::string &feature) const { + return verifyFeature(factory, indexEnv, feature, "feature verification test"); + } +}; + +TEST_F("verify valid rank feature", RankFixture) { + EXPECT_TRUE(f1.verify("value(1, 2, 3).0")); + EXPECT_TRUE(f1.verify("value(1, 2, 3).1")); + EXPECT_TRUE(f1.verify("value(1, 2, 3).2")); +} + +TEST_F("verify unknown feature", RankFixture) { + EXPECT_FALSE(f1.verify("unknown")); +} + +TEST_F("verify unknown output", RankFixture) { + EXPECT_FALSE(f1.verify("value(1, 2, 3).3")); +} + +TEST_F("verify illegal input parameters", RankFixture) { + EXPECT_FALSE(f1.verify("value.0")); +} + +TEST_F("verify illegal feature name", RankFixture) { + EXPECT_FALSE(f1.verify("value(2).")); +} + +TEST_F("verify too deep dependency graph", RankFixture) { + EXPECT_TRUE(f1.verify("chain(basic, 63, 4)")); + EXPECT_FALSE(f1.verify("chain(basic, 64, 4)")); +} + +TEST_F("verify dependency cycle", RankFixture) { + EXPECT_FALSE(f1.verify("chain(cycle, 4, 2)")); +} + +TEST_MAIN() { TEST_RUN_ALL(); } |