summaryrefslogtreecommitdiffstats
path: root/config-model/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/test')
-rw-r--r--config-model/src/test/derived/language/ilscripts.cfg9
-rw-r--r--config-model/src/test/derived/language/language.sd19
-rw-r--r--config-model/src/test/derived/types/ilscripts.cfg2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java7
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java45
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java12
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java10
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java6
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java30
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java8
-rwxr-xr-xconfig-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java2
-rw-r--r--config-model/src/test/java/helpers/CompareConfigTestHelper.java13
14 files changed, 128 insertions, 39 deletions
diff --git a/config-model/src/test/derived/language/ilscripts.cfg b/config-model/src/test/derived/language/ilscripts.cfg
new file mode 100644
index 00000000000..cafc7feafb8
--- /dev/null
+++ b/config-model/src/test/derived/language/ilscripts.cfg
@@ -0,0 +1,9 @@
+maxtermoccurrences 100
+fieldmatchmaxlength 1000000
+ilscript[].doctype "language"
+ilscript[].docfield[] "language"
+ilscript[].docfield[] "title"
+ilscript[].content[] "clear_state | guard { input language | tokenize normalize stem:\"BEST\" | summary language | index language | set_language; }"
+ilscript[].content[] "clear_state | guard { input title | tokenize normalize stem:\"BEST\" | index titlebest; }"
+ilscript[].content[] "clear_state | guard { input title | tokenize normalize | index titlenone; }"
+ilscript[].content[] "clear_state | guard { input title | tokenize normalize stem:\"BEST\" | summary title | index title; }" \ No newline at end of file
diff --git a/config-model/src/test/derived/language/language.sd b/config-model/src/test/derived/language/language.sd
new file mode 100644
index 00000000000..a859438d885
--- /dev/null
+++ b/config-model/src/test/derived/language/language.sd
@@ -0,0 +1,19 @@
+schema language {
+ document language {
+ field language type string {
+ indexing: summary | index |set_language
+ }
+ field title type string {
+ indexing: summary | index
+ }
+ }
+ field titlenone type string {
+ indexing: input title | index
+ stemming: none
+ }
+ field titlebest type string {
+ indexing: input title | index
+ stemming: best
+ }
+
+} \ No newline at end of file
diff --git a/config-model/src/test/derived/types/ilscripts.cfg b/config-model/src/test/derived/types/ilscripts.cfg
index 3bcdd16e3d6..b3da5f8e727 100644
--- a/config-model/src/test/derived/types/ilscripts.cfg
+++ b/config-model/src/test/derived/types/ilscripts.cfg
@@ -21,6 +21,7 @@ ilscript[].docfield[] "doublemapfield"
ilscript[].docfield[] "arraymapfield"
ilscript[].docfield[] "arrarr"
ilscript[].docfield[] "maparr"
+ilscript[].docfield[] "complexarray"
ilscript[].docfield[] "mystructfield"
ilscript[].docfield[] "mystructmap"
ilscript[].docfield[] "mystructarr"
@@ -28,7 +29,6 @@ ilscript[].docfield[] "Folders"
ilscript[].docfield[] "juletre"
ilscript[].docfield[] "album0"
ilscript[].docfield[] "album1"
-ilscript[].docfield[] "complexarray"
ilscript[].content[] "clear_state | guard { input along | attribute other; }"
ilscript[].content[] "clear_state | guard { input abyte | summary abyte | attribute abyte; }"
ilscript[].content[] "clear_state | guard { input along | summary along | attribute along; }"
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java
index 7f3ea7d14bc..2e0fc3b4f98 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/SchemaTestCase.java
@@ -16,9 +16,12 @@ public abstract class SchemaTestCase {
assertSerializedConfigFileEquals(filename, cfg);
}
- protected static void assertConfigFiles(String expectedFile, String cfgFile, boolean updateOnAssert) throws IOException {
+ protected static void assertConfigFiles(String expectedFile,
+ String cfgFile,
+ boolean orderMatters,
+ boolean updateOnAssert) throws IOException {
try {
- assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile));
+ assertSerializedConfigEquals(readAndCensorIndexes(expectedFile), readAndCensorIndexes(cfgFile), orderMatters);
} catch (AssertionError e) {
if (updateOnAssert) {
BufferedWriter writer = IOUtils.createWriter(expectedFile, false);
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
index a345cabe909..6b6af95a8d2 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
@@ -1,7 +1,7 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.searchdefinition.derived;
-import com.yahoo.config.model.application.provider.BaseDeployLogger;
+import com.yahoo.config.application.api.DeployLogger;
import com.yahoo.config.model.deploy.TestProperties;
import com.yahoo.document.DocumenttypesConfig;
import com.yahoo.document.config.DocumentmanagerConfig;
@@ -26,21 +26,25 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase {
private static final String tempDir = "temp/";
private static final String searchDefRoot = "src/test/derived/";
- private DerivedConfiguration derive(String dirName, String searchDefinitionName, TestProperties properties) throws IOException, ParseException {
+ private DerivedConfiguration derive(String dirName,
+ String searchDefinitionName,
+ TestProperties properties,
+ DeployLogger logger) throws IOException, ParseException {
File toDir = new File(tempDir + dirName);
toDir.mkdirs();
deleteContent(toDir);
- SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/");
- return derive(dirName, searchDefinitionName, properties, builder);
+ SearchBuilder builder = SearchBuilder.createFromDirectory(searchDefRoot + dirName + "/", logger);
+ return derive(dirName, searchDefinitionName, properties, builder, logger);
}
private DerivedConfiguration derive(String dirName,
String searchDefinitionName,
TestProperties properties,
- SearchBuilder builder) throws IOException {
+ SearchBuilder builder,
+ DeployLogger logger) throws IOException {
DerivedConfiguration config = new DerivedConfiguration(builder.getSearch(searchDefinitionName),
- new BaseDeployLogger(),
+ logger,
properties,
builder.getRankProfileRegistry(),
builder.getQueryProfileRegistry(),
@@ -80,15 +84,23 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase {
* @throws IOException if file access failed.
*/
protected DerivedConfiguration assertCorrectDeriving(String dirName) throws IOException, ParseException {
- return assertCorrectDeriving(dirName, null);
+ return assertCorrectDeriving(dirName, new TestableDeployLogger());
+ }
+ protected DerivedConfiguration assertCorrectDeriving(String dirName, DeployLogger logger) throws IOException, ParseException {
+ return assertCorrectDeriving(dirName, null, logger);
}
- protected DerivedConfiguration assertCorrectDeriving(String dirName, String searchDefinitionName) throws IOException, ParseException {
- return assertCorrectDeriving(dirName, searchDefinitionName, new TestProperties());
+ protected DerivedConfiguration assertCorrectDeriving(String dirName,
+ String searchDefinitionName,
+ DeployLogger logger) throws IOException, ParseException {
+ return assertCorrectDeriving(dirName, searchDefinitionName, new TestProperties(), logger);
}
- protected DerivedConfiguration assertCorrectDeriving(String dirName, String searchDefinitionName, TestProperties properties) throws IOException, ParseException {
- DerivedConfiguration derived = derive(dirName, searchDefinitionName, properties);
+ protected DerivedConfiguration assertCorrectDeriving(String dirName,
+ String searchDefinitionName,
+ TestProperties properties,
+ DeployLogger logger) throws IOException, ParseException {
+ DerivedConfiguration derived = derive(dirName, searchDefinitionName, properties, logger);
assertCorrectConfigFiles(dirName);
return derived;
}
@@ -97,9 +109,9 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase {
* Asserts config is correctly derived given a builder.
* This will fail if the builder contains multiple search definitions.
*/
- protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, String dirName) throws IOException {
+ protected DerivedConfiguration assertCorrectDeriving(SearchBuilder builder, String dirName, DeployLogger logger) throws IOException {
builder.build();
- DerivedConfiguration derived = derive(dirName, null, new TestProperties(), builder);
+ DerivedConfiguration derived = derive(dirName, null, new TestProperties(), builder, logger);
assertCorrectConfigFiles(dirName);
return derived;
}
@@ -121,13 +133,14 @@ public abstract class AbstractExportingTestCase extends SchemaTestCase {
if (files == null) return;
for (File file : files) {
if ( ! file.getName().endsWith(".cfg")) continue;
- assertEqualFiles(file.getPath(), tempDir + name + "/" + file.getName());
+ boolean orderMatters = file.getName().equals("ilscripts.cfg");
+ assertEqualFiles(file.getPath(), tempDir + name + "/" + file.getName(), orderMatters);
}
}
- static void assertEqualFiles(String correctFileName, String checkFileName) throws IOException {
+ static void assertEqualFiles(String correctFileName, String checkFileName, boolean orderMatters) throws IOException {
// Set updateOnAssert to true if you want update the files with correct answer.
- assertConfigFiles(correctFileName, checkFileName, false);
+ assertConfigFiles(correctFileName, checkFileName, orderMatters, false);
}
void deleteContent(File dir) {
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java
index 71cca20f8fa..770bea55af2 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ExportingTestCase.java
@@ -1,13 +1,14 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.searchdefinition.derived;
-import com.yahoo.config.model.deploy.TestProperties;
import com.yahoo.searchdefinition.SearchBuilder;
import com.yahoo.searchdefinition.parser.ParseException;
import org.junit.Test;
import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+
/**
* Tests exporting
*
@@ -158,7 +159,14 @@ public class ExportingTestCase extends AbstractExportingTestCase {
@Test
public void testRankProfileInheritance() throws IOException, ParseException {
- assertCorrectDeriving("rankprofileinheritance", "child");
+ assertCorrectDeriving("rankprofileinheritance", "child", new TestableDeployLogger());
+ }
+
+ @Test
+ public void testLanguage() throws IOException, ParseException {
+ TestableDeployLogger logger = new TestableDeployLogger();
+ assertCorrectDeriving("language", logger);
+ assertEquals(0, logger.warnings.size());
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java
index a0dd89229dd..f61143833c9 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ImportedFieldsTestCase.java
@@ -13,26 +13,26 @@ public class ImportedFieldsTestCase extends AbstractExportingTestCase {
@Test
public void configs_for_imported_fields_are_derived() throws IOException, ParseException {
- assertCorrectDeriving("importedfields", "child");
+ assertCorrectDeriving("importedfields", "child", new TestableDeployLogger());
}
@Test
public void configs_for_imported_struct_fields_are_derived() throws IOException, ParseException {
- assertCorrectDeriving("imported_struct_fields", "child");
+ assertCorrectDeriving("imported_struct_fields", "child", new TestableDeployLogger());
}
@Test
public void configs_for_imported_position_field_are_derived() throws IOException, ParseException {
- assertCorrectDeriving("imported_position_field", "child");
+ assertCorrectDeriving("imported_position_field", "child", new TestableDeployLogger());
}
@Test
public void configs_for_imported_position_field_summary_are_derived() throws IOException, ParseException {
- assertCorrectDeriving("imported_position_field_summary", "child");
+ assertCorrectDeriving("imported_position_field_summary", "child", new TestableDeployLogger());
}
@Test
public void derives_configs_for_imported_fields_when_reference_fields_are_inherited() throws IOException, ParseException {
- assertCorrectDeriving("imported_fields_inherited_reference", "child_c");
+ assertCorrectDeriving("imported_fields_inherited_reference", "child_c", new TestableDeployLogger());
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java
index 187e766c315..5e45102a626 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MailTestCase.java
@@ -18,7 +18,7 @@ public class MailTestCase extends AbstractExportingTestCase {
String dir = "src/test/derived/mail/";
SearchBuilder sb = new SearchBuilder();
sb.importFile(dir + "mail.sd");
- assertCorrectDeriving(sb, dir);
+ assertCorrectDeriving(sb, dir, new TestableDeployLogger());
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java
index 073a15b0525..1f1c905e0bf 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/ReferenceFieldsTestCase.java
@@ -13,6 +13,6 @@ public class ReferenceFieldsTestCase extends AbstractExportingTestCase {
@Test
public void configs_related_to_reference_fields_are_derived() throws IOException, ParseException {
- assertCorrectDeriving("reference_fields", "ad");
+ assertCorrectDeriving("reference_fields", "ad", new TestableDeployLogger());
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java
index 45a6240d3ba..83e11c365f8 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/SimpleInheritTestCase.java
@@ -45,10 +45,8 @@ public class SimpleInheritTestCase extends AbstractExportingTestCase {
private void checkDir(String toDirName, String expectedResultsDirName) throws IOException {
File[] files = new File(expectedResultsDirName).listFiles();
for (File file : files) {
- if (!file.getName().endsWith(".cfg")) {
- continue;
- }
- assertEqualFiles(file.getPath(), toDirName + "/" + file.getName());
+ if ( ! file.getName().endsWith(".cfg")) continue;
+ assertEqualFiles(file.getPath(), toDirName + "/" + file.getName(), false);
}
}
}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java
new file mode 100644
index 00000000000..a23c8024872
--- /dev/null
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/TestableDeployLogger.java
@@ -0,0 +1,30 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.searchdefinition.derived;
+
+import com.yahoo.config.application.api.DeployLogger;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * @author bratseth
+ */
+public class TestableDeployLogger implements DeployLogger {
+
+ private static final Logger log = Logger.getLogger("DeployLogger");
+
+ public List<String> warnings = new ArrayList<>();
+ public List<String> info = new ArrayList<>();
+
+ @Override
+ public final void log(Level level, String message) {
+ log.log(level, message);
+ if (level.equals(Level.WARNING))
+ warnings.add(message);
+ if (level.equals(Level.INFO))
+ info.add(message);
+ }
+
+}
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java
index 1567a4c3b5e..8861432d97b 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/processing/RankingExpressionsTestCase.java
@@ -9,6 +9,7 @@ import com.yahoo.searchdefinition.*;
import com.yahoo.searchdefinition.derived.DerivedConfiguration;
import com.yahoo.searchdefinition.derived.AttributeFields;
import com.yahoo.searchdefinition.derived.RawRankProfile;
+import com.yahoo.searchdefinition.derived.TestableDeployLogger;
import com.yahoo.searchdefinition.parser.ParseException;
import ai.vespa.rankingexpression.importer.configmodelview.ImportedMlModels;
import org.junit.Test;
@@ -25,7 +26,8 @@ public class RankingExpressionsTestCase extends SchemaTestCase {
public void testFunctions() throws IOException, ParseException {
RankProfileRegistry rankProfileRegistry = new RankProfileRegistry();
Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressionfunction",
- rankProfileRegistry).getSearch();
+ rankProfileRegistry,
+ new TestableDeployLogger()).getSearch();
RankProfile functionsRankProfile = rankProfileRegistry.get(search, "macros");
Map<String, RankProfile.RankingExpressionFunction> functions = functionsRankProfile.getFunctions();
assertEquals(2, functions.get("titlematch$").function().arguments().size());
@@ -63,7 +65,9 @@ public class RankingExpressionsTestCase extends SchemaTestCase {
@Test(expected = IllegalArgumentException.class)
public void testThatIncludingFileInSubdirFails() throws IOException, ParseException {
RankProfileRegistry registry = new RankProfileRegistry();
- Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressioninfile", registry).getSearch();
+ Search search = SearchBuilder.createFromDirectory("src/test/examples/rankingexpressioninfile",
+ registry,
+ new TestableDeployLogger()).getSearch();
new DerivedConfiguration(search, new BaseDeployLogger(), new TestProperties(), registry, new QueryProfileRegistry(), new ImportedMlModels()); // rank profile parsing happens during deriving
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java
index 31d0084570a..9e7370a933c 100755
--- a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java
@@ -159,7 +159,7 @@ public class RoutingTestCase {
fail("Expected file '" + fileName + "' not found.");
return;
}
- assertSerializedConfigEquals(IOUtils.readFile(files.get(fileName)), configString);
+ assertSerializedConfigEquals(IOUtils.readFile(files.get(fileName)), configString, false);
}
/**
diff --git a/config-model/src/test/java/helpers/CompareConfigTestHelper.java b/config-model/src/test/java/helpers/CompareConfigTestHelper.java
index 89b4eeb3c8d..586f82ec379 100644
--- a/config-model/src/test/java/helpers/CompareConfigTestHelper.java
+++ b/config-model/src/test/java/helpers/CompareConfigTestHelper.java
@@ -19,15 +19,20 @@ import static org.junit.Assert.assertEquals;
public class CompareConfigTestHelper {
public static void assertSerializedConfigFileEquals(String filename, String actual) throws IOException {
- assertSerializedConfigEquals(IOUtils.readFile(new File(filename)), actual);
+ assertSerializedConfigEquals(IOUtils.readFile(new File(filename)), actual, false);
}
// Written this way to compare order independently but output error with order preserved
// Note that this means that if a test fails you'll also see spurious differences in the comparison
// from lines which are present in both but at different locations.
- public static void assertSerializedConfigEquals(String expected, String actual) {
- if ( ! sortLines(expected.trim()).equals(sortLines(actual.trim())))
- assertEquals(expected, actual);
+ public static void assertSerializedConfigEquals(String expected, String actual, boolean orderMatters) {
+ if (orderMatters) {
+ assertEquals(expected.trim(), actual.trim());
+ }
+ else {
+ if (!sortLines(expected.trim()).equals(sortLines(actual.trim())))
+ assertEquals(expected, actual);
+ }
}
private static String sortLines(String fileData) {