diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-14 19:50:53 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-14 19:55:42 +0000 |
commit | f716ad215e1214b452fcd30fcdedeaf52654afa0 (patch) | |
tree | ce8d295df16664c9796c5248bda3a19bb6f34187 /config-model | |
parent | 462da83471926014ea3a0eba7ebf48b570b17316 (diff) |
unit test disappearing struct-fields
Diffstat (limited to 'config-model')
7 files changed, 373 insertions, 0 deletions
diff --git a/config-model/src/test/derived/multi_struct/ad.sd b/config-model/src/test/derived/multi_struct/ad.sd new file mode 100644 index 00000000000..a14cd6dc023 --- /dev/null +++ b/config-model/src/test/derived/multi_struct/ad.sd @@ -0,0 +1,7 @@ +search ad { + document ad { + field e type string { + indexing: attribute | summary + } + } +} diff --git a/config-model/src/test/derived/multi_struct/documentmanager.cfg b/config-model/src/test/derived/multi_struct/documentmanager.cfg new file mode 100644 index 00000000000..58775331d58 --- /dev/null +++ b/config-model/src/test/derived/multi_struct/documentmanager.cfg @@ -0,0 +1,109 @@ +enablecompression false +usev8geopositions false +datatype[].id 1381038251 +datatype[].structtype[].name "position" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "x" +datatype[].structtype[].field[].datatype 0 +datatype[].structtype[].field[].detailedtype "" +datatype[].structtype[].field[].name "y" +datatype[].structtype[].field[].datatype 0 +datatype[].structtype[].field[].detailedtype "" +datatype[].id 959075962 +datatype[].structtype[].name "ad.header" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "e" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].id 2987301 +datatype[].documenttype[].name "ad" +datatype[].documenttype[].version 0 +datatype[].documenttype[].inherits[].name "document" +datatype[].documenttype[].inherits[].version 0 +datatype[].documenttype[].headerstruct 959075962 +datatype[].documenttype[].bodystruct 0 +datatype[].documenttype[].fieldsets{[document]}.fields[] "e" +datatype[].id -420192670 +datatype[].maptype[].keytype 2 +datatype[].maptype[].valtype -2092985853 +datatype[].id -2092985853 +datatype[].structtype[].name "mystruct" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "zero" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].structtype[].field[].name "one" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].structtype[].field[].name "two" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].structtype[].field[].name "three" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].id -107300050 +datatype[].structtype[].name "product.header" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "more_stuff" +datatype[].structtype[].field[].datatype -420192670 +datatype[].structtype[].field[].detailedtype "" +datatype[].id -1051831567 +datatype[].documenttype[].name "product" +datatype[].documenttype[].version 0 +datatype[].documenttype[].inherits[].name "document" +datatype[].documenttype[].inherits[].version 0 +datatype[].documenttype[].headerstruct -107300050 +datatype[].documenttype[].bodystruct 0 +datatype[].documenttype[].fieldsets{[document]}.fields[] "more_stuff" +datatype[].id 371492103 +datatype[].structtype[].name "shop.header" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "some_stuff" +datatype[].structtype[].field[].datatype -420192670 +datatype[].structtype[].field[].detailedtype "" +datatype[].id -903152840 +datatype[].documenttype[].name "shop" +datatype[].documenttype[].version 0 +datatype[].documenttype[].inherits[].name "document" +datatype[].documenttype[].inherits[].version 0 +datatype[].documenttype[].headerstruct 371492103 +datatype[].documenttype[].bodystruct 0 +datatype[].documenttype[].fieldsets{[document]}.fields[] "some_stuff" +datatype[].id 1601213394 +datatype[].structtype[].name "user.header" +datatype[].structtype[].version 0 +datatype[].structtype[].compresstype NONE +datatype[].structtype[].compresslevel 0 +datatype[].structtype[].compressthreshold 95 +datatype[].structtype[].compressminsize 800 +datatype[].structtype[].field[].name "a" +datatype[].structtype[].field[].datatype 2 +datatype[].structtype[].field[].detailedtype "" +datatype[].id -836031795 +datatype[].documenttype[].name "user" +datatype[].documenttype[].version 0 +datatype[].documenttype[].inherits[].name "document" +datatype[].documenttype[].inherits[].version 0 +datatype[].documenttype[].headerstruct 1601213394 +datatype[].documenttype[].bodystruct 0 +datatype[].documenttype[].fieldsets{[document]}.fields[] "a" diff --git a/config-model/src/test/derived/multi_struct/documenttypes.cfg b/config-model/src/test/derived/multi_struct/documenttypes.cfg new file mode 100644 index 00000000000..c358b2854ee --- /dev/null +++ b/config-model/src/test/derived/multi_struct/documenttypes.cfg @@ -0,0 +1,194 @@ +enablecompression false +usev8geopositions false +documenttype[].id 2987301 +documenttype[].name "ad" +documenttype[].version 0 +documenttype[].headerstruct 959075962 +documenttype[].bodystruct 0 +documenttype[].inherits[].id 8 +documenttype[].datatype[].id 959075962 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "ad.header" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "e" +documenttype[].datatype[].sstruct.field[].id 970377814 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].fieldsets{[document]}.fields[] "e" +documenttype[].id -1051831567 +documenttype[].name "product" +documenttype[].version 0 +documenttype[].headerstruct -107300050 +documenttype[].bodystruct 0 +documenttype[].inherits[].id 8 +documenttype[].datatype[].id -2092985853 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "mystruct" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "zero" +documenttype[].datatype[].sstruct.field[].id 2128579715 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].sstruct.field[].name "one" +documenttype[].datatype[].sstruct.field[].id 997119011 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].sstruct.field[].name "two" +documenttype[].datatype[].sstruct.field[].id 2054688289 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].sstruct.field[].name "three" +documenttype[].datatype[].sstruct.field[].id 814368361 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].id -420192670 +documenttype[].datatype[].type MAP +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 2 +documenttype[].datatype[].map.value.id -2092985853 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].id -107300050 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "product.header" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "more_stuff" +documenttype[].datatype[].sstruct.field[].id 278342855 +documenttype[].datatype[].sstruct.field[].datatype -420192670 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].fieldsets{[document]}.fields[] "more_stuff" +documenttype[].id -903152840 +documenttype[].name "shop" +documenttype[].version 0 +documenttype[].headerstruct 371492103 +documenttype[].bodystruct 0 +documenttype[].inherits[].id 8 +documenttype[].datatype[].id -2092985853 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "mystruct" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "one" +documenttype[].datatype[].sstruct.field[].id 997119011 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].sstruct.field[].name "two" +documenttype[].datatype[].sstruct.field[].id 2054688289 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].sstruct.field[].name "three" +documenttype[].datatype[].sstruct.field[].id 814368361 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].datatype[].id -420192670 +documenttype[].datatype[].type MAP +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 2 +documenttype[].datatype[].map.value.id -2092985853 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].id 371492103 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "shop.header" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "some_stuff" +documenttype[].datatype[].sstruct.field[].id 1543312381 +documenttype[].datatype[].sstruct.field[].datatype -420192670 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].fieldsets{[document]}.fields[] "some_stuff" +documenttype[].id -836031795 +documenttype[].name "user" +documenttype[].version 0 +documenttype[].headerstruct 1601213394 +documenttype[].bodystruct 0 +documenttype[].inherits[].id 8 +documenttype[].datatype[].id 1601213394 +documenttype[].datatype[].type STRUCT +documenttype[].datatype[].array.element.id 0 +documenttype[].datatype[].map.key.id 0 +documenttype[].datatype[].map.value.id 0 +documenttype[].datatype[].wset.key.id 0 +documenttype[].datatype[].wset.createifnonexistent false +documenttype[].datatype[].wset.removeifzero false +documenttype[].datatype[].annotationref.annotation.id 0 +documenttype[].datatype[].sstruct.name "user.header" +documenttype[].datatype[].sstruct.version 0 +documenttype[].datatype[].sstruct.compression.type NONE +documenttype[].datatype[].sstruct.compression.level 0 +documenttype[].datatype[].sstruct.compression.threshold 95 +documenttype[].datatype[].sstruct.compression.minsize 200 +documenttype[].datatype[].sstruct.field[].name "a" +documenttype[].datatype[].sstruct.field[].id 493339625 +documenttype[].datatype[].sstruct.field[].datatype 2 +documenttype[].datatype[].sstruct.field[].detailedtype "" +documenttype[].fieldsets{[document]}.fields[] "a" diff --git a/config-model/src/test/derived/multi_struct/product.sd b/config-model/src/test/derived/multi_struct/product.sd new file mode 100644 index 00000000000..cba611cd794 --- /dev/null +++ b/config-model/src/test/derived/multi_struct/product.sd @@ -0,0 +1,13 @@ +search product { + document product { + struct mystruct { + field zero type string {} + field one type string {} + field two type string {} + field three type string {} + } + field more_stuff type map<string, mystruct> { + indexing: summary + } + } +} diff --git a/config-model/src/test/derived/multi_struct/shop.sd b/config-model/src/test/derived/multi_struct/shop.sd new file mode 100644 index 00000000000..b5c06cc493f --- /dev/null +++ b/config-model/src/test/derived/multi_struct/shop.sd @@ -0,0 +1,12 @@ +search shop { + document shop { + struct mystruct { + field one type string {} + field two type string {} + field three type string {} + } + field some_stuff type map<string, mystruct> { + indexing: summary + } + } +} diff --git a/config-model/src/test/derived/multi_struct/user.sd b/config-model/src/test/derived/multi_struct/user.sd new file mode 100644 index 00000000000..ec23e9f88ea --- /dev/null +++ b/config-model/src/test/derived/multi_struct/user.sd @@ -0,0 +1,7 @@ +search user { + document user { + field a type string { + indexing: summary + } + } +}
\ No newline at end of file diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/MultiStructTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MultiStructTestCase.java new file mode 100644 index 00000000000..4f5316724f5 --- /dev/null +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/MultiStructTestCase.java @@ -0,0 +1,31 @@ +// Copyright Yahoo. 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.config.model.application.provider.MockFileRegistry; +import com.yahoo.searchdefinition.derived.TestableDeployLogger; +import com.yahoo.searchdefinition.ApplicationBuilder; +import org.junit.Test; + +/** + * Tests deriving a configuration with structs in multiple .sd files + * + * @author arnej + */ +public class MultiStructTestCase extends AbstractExportingTestCase { + + @Override + boolean useV8DocManagerCfg() { return false; } + + @Test + public void testDocTypeConfigs() throws Exception { + var logger = new TestableDeployLogger(); + var props = new TestProperties().setExperimentalSdParsing(false).setUseV8DocManagerCfg(false); + ApplicationBuilder builder = ApplicationBuilder.createFromDirectory + ("src/test/derived/multi_struct/", new MockFileRegistry(), logger, props); + derive("multi_struct", builder, builder.getSchema("shop")); + assertCorrectConfigFiles("multi_struct"); + } + +} + |