summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-14 19:50:53 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-14 19:55:42 +0000
commitf716ad215e1214b452fcd30fcdedeaf52654afa0 (patch)
treece8d295df16664c9796c5248bda3a19bb6f34187 /config-model
parent462da83471926014ea3a0eba7ebf48b570b17316 (diff)
unit test disappearing struct-fields
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/test/derived/multi_struct/ad.sd7
-rw-r--r--config-model/src/test/derived/multi_struct/documentmanager.cfg109
-rw-r--r--config-model/src/test/derived/multi_struct/documenttypes.cfg194
-rw-r--r--config-model/src/test/derived/multi_struct/product.sd13
-rw-r--r--config-model/src/test/derived/multi_struct/shop.sd12
-rw-r--r--config-model/src/test/derived/multi_struct/user.sd7
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/MultiStructTestCase.java31
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");
+ }
+
+}
+