diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-03-18 14:14:53 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-03-18 14:33:44 +0000 |
commit | 52a4937cef9d1c4b5fca99a3578314ae1c41d8a0 (patch) | |
tree | 298e79ad9f28b6f907e919025c3a49d909bd2258 /config-model | |
parent | e5e4662259cd3ffd9d35a66e4283990eb69a81d0 (diff) |
add new test
Diffstat (limited to 'config-model')
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()); + } + +} |