summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-03-18 14:14:53 +0000
committerArne H Juul <arnej@yahooinc.com>2022-03-18 14:33:44 +0000
commit52a4937cef9d1c4b5fca99a3578314ae1c41d8a0 (patch)
tree298e79ad9f28b6f907e919025c3a49d909bd2258 /config-model
parente5e4662259cd3ffd9d35a66e4283990eb69a81d0 (diff)
add new test
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/test/derived/duplicate_struct/documentmanager.cfg78
-rw-r--r--config-model/src/test/derived/duplicate_struct/documenttypes.cfg100
-rw-r--r--config-model/src/test/derived/duplicate_struct/foo.sd17
-rw-r--r--config-model/src/test/derived/duplicate_struct/foobar.sd16
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java30
5 files changed, 241 insertions, 0 deletions
diff --git a/config-model/src/test/derived/duplicate_struct/documentmanager.cfg b/config-model/src/test/derived/duplicate_struct/documentmanager.cfg
new file mode 100644
index 00000000000..077b57df800
--- /dev/null
+++ b/config-model/src/test/derived/duplicate_struct/documentmanager.cfg
@@ -0,0 +1,78 @@
+enablecompression false
+usev8geopositions false
+doctype[].name "document"
+doctype[].idx 10000
+doctype[].contentstruct 10001
+doctype[].primitivetype[].idx 10002
+doctype[].primitivetype[].name "bool"
+doctype[].primitivetype[].idx 10003
+doctype[].primitivetype[].name "byte"
+doctype[].primitivetype[].idx 10004
+doctype[].primitivetype[].name "double"
+doctype[].primitivetype[].idx 10005
+doctype[].primitivetype[].name "float"
+doctype[].primitivetype[].idx 10006
+doctype[].primitivetype[].name "float16"
+doctype[].primitivetype[].idx 10007
+doctype[].primitivetype[].name "int"
+doctype[].primitivetype[].idx 10008
+doctype[].primitivetype[].name "long"
+doctype[].primitivetype[].idx 10010
+doctype[].primitivetype[].name "predicate"
+doctype[].primitivetype[].idx 10011
+doctype[].primitivetype[].name "raw"
+doctype[].primitivetype[].idx 10012
+doctype[].primitivetype[].name "string"
+doctype[].primitivetype[].idx 10014
+doctype[].primitivetype[].name "uri"
+doctype[].wsettype[].idx 10013
+doctype[].wsettype[].elementtype 10012
+doctype[].wsettype[].createifnonexistent true
+doctype[].wsettype[].removeifzero true
+doctype[].structtype[].idx 10001
+doctype[].structtype[].name "document.header"
+doctype[].structtype[].idx 10009
+doctype[].structtype[].name "position"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].field[].name "y"
+doctype[].structtype[].field[].internalid 900009410
+doctype[].structtype[].field[].type 10007
+doctype[].name "foo"
+doctype[].idx 10015
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10016
+doctype[].fieldsets{[document]}.fields[] "mystuff"
+doctype[].fieldsets{[document]}.fields[] "timestamp"
+doctype[].arraytype[].idx 10017
+doctype[].arraytype[].elementtype 10018
+doctype[].structtype[].idx 10018
+doctype[].structtype[].name "mystruct"
+doctype[].structtype[].field[].name "name"
+doctype[].structtype[].field[].internalid 1160796772
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "company"
+doctype[].structtype[].field[].internalid 2010814026
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].idx 10016
+doctype[].structtype[].name "foo.header"
+doctype[].structtype[].field[].name "timestamp"
+doctype[].structtype[].field[].internalid 808678733
+doctype[].structtype[].field[].type 10008
+doctype[].structtype[].field[].name "mystuff"
+doctype[].structtype[].field[].internalid 885106505
+doctype[].structtype[].field[].type 10017
+doctype[].name "foobar"
+doctype[].idx 10019
+doctype[].inherits[].idx 10000
+doctype[].inherits[].idx 10015
+doctype[].contentstruct 10020
+doctype[].fieldsets{[document]}.fields[] "mystuff"
+doctype[].fieldsets{[document]}.fields[] "timestamp"
+doctype[].fieldsets{[document]}.fields[] "title"
+doctype[].structtype[].idx 10020
+doctype[].structtype[].name "foobar.header"
+doctype[].structtype[].field[].name "title"
+doctype[].structtype[].field[].internalid 567626448
+doctype[].structtype[].field[].type 10012
diff --git a/config-model/src/test/derived/duplicate_struct/documenttypes.cfg b/config-model/src/test/derived/duplicate_struct/documenttypes.cfg
new file mode 100644
index 00000000000..1b897214d73
--- /dev/null
+++ b/config-model/src/test/derived/duplicate_struct/documenttypes.cfg
@@ -0,0 +1,100 @@
+enablecompression false
+usev8geopositions false
+documenttype[].id 97614088
+documenttype[].name "foo"
+documenttype[].version 0
+documenttype[].headerstruct -308552393
+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 "name"
+documenttype[].datatype[].sstruct.field[].id 1160796772
+documenttype[].datatype[].sstruct.field[].datatype 2
+documenttype[].datatype[].sstruct.field[].detailedtype ""
+documenttype[].datatype[].sstruct.field[].name "company"
+documenttype[].datatype[].sstruct.field[].id 2010814026
+documenttype[].datatype[].sstruct.field[].datatype 2
+documenttype[].datatype[].sstruct.field[].detailedtype ""
+documenttype[].datatype[].id 759956026
+documenttype[].datatype[].type ARRAY
+documenttype[].datatype[].array.element.id -2092985853
+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 ""
+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 -308552393
+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 "foo.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 "timestamp"
+documenttype[].datatype[].sstruct.field[].id 808678733
+documenttype[].datatype[].sstruct.field[].datatype 4
+documenttype[].datatype[].sstruct.field[].detailedtype ""
+documenttype[].datatype[].sstruct.field[].name "mystuff"
+documenttype[].datatype[].sstruct.field[].id 885106505
+documenttype[].datatype[].sstruct.field[].datatype 759956026
+documenttype[].datatype[].sstruct.field[].detailedtype ""
+documenttype[].fieldsets{[document]}.fields[] "mystuff"
+documenttype[].fieldsets{[document]}.fields[] "timestamp"
+documenttype[].id 378030095
+documenttype[].name "foobar"
+documenttype[].version 0
+documenttype[].headerstruct -1365874608
+documenttype[].bodystruct 0
+documenttype[].inherits[].id 8
+documenttype[].inherits[].id 97614088
+documenttype[].datatype[].id -1365874608
+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 "foobar.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 "title"
+documenttype[].datatype[].sstruct.field[].id 567626448
+documenttype[].datatype[].sstruct.field[].datatype 2
+documenttype[].datatype[].sstruct.field[].detailedtype ""
+documenttype[].fieldsets{[document]}.fields[] "mystuff"
+documenttype[].fieldsets{[document]}.fields[] "timestamp"
+documenttype[].fieldsets{[document]}.fields[] "title"
diff --git a/config-model/src/test/derived/duplicate_struct/foo.sd b/config-model/src/test/derived/duplicate_struct/foo.sd
new file mode 100644
index 00000000000..8447b0440cb
--- /dev/null
+++ b/config-model/src/test/derived/duplicate_struct/foo.sd
@@ -0,0 +1,17 @@
+# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+search foo {
+ document foo {
+ field timestamp type long {
+ indexing: summary | attribute
+ }
+ field mystuff type array<mystruct> {
+ indexing: summary
+ }
+ }
+
+ struct mystruct {
+ field name type string { }
+ field company type string { }
+ }
+}
diff --git a/config-model/src/test/derived/duplicate_struct/foobar.sd b/config-model/src/test/derived/duplicate_struct/foobar.sd
new file mode 100644
index 00000000000..7ef4fb5dbe1
--- /dev/null
+++ b/config-model/src/test/derived/duplicate_struct/foobar.sd
@@ -0,0 +1,16 @@
+# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+search foobar {
+ document foobar inherits foo {
+ field title type string {
+ indexing: summary | index
+ }
+ }
+
+ struct mystruct {
+ field name type string { }
+ field company type string { }
+ }
+
+}
+
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java
new file mode 100644
index 00000000000..05b16c9d30b
--- /dev/null
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/DuplicateStructTestCase.java
@@ -0,0 +1,30 @@
+// 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 org.junit.Test;
+
+/**
+ * @author arnej
+ */
+public class DuplicateStructTestCase extends AbstractExportingTestCase {
+
+ @Test
+ public void exact_duplicate_struct_works() throws Exception {
+ assertCorrectDeriving("duplicate_struct", "foobar",
+ new TestProperties()
+ .setExperimentalSdParsing(false)
+ .setUseV8DocManagerCfg(true),
+ new TestableDeployLogger());
+ }
+
+ @Test
+ public void exact_duplicate_struct_works_new() throws Exception {
+ assertCorrectDeriving("duplicate_struct", "foobar",
+ new TestProperties()
+ .setExperimentalSdParsing(true)
+ .setUseV8DocManagerCfg(true),
+ new TestableDeployLogger());
+ }
+
+}