diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-10 18:18:15 -0800 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-12-10 18:18:15 -0800 |
commit | 0fe7fdd708452d38e47dc1d5bff82d8daadafaf1 (patch) | |
tree | 90f050483421be35548e2fbaef259b2b6082ceae /config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java | |
parent | b8d2859a9fece15dac2b9260d71dea39f8ce19b3 (diff) |
Detect loops in unbound arguments
Diffstat (limited to 'config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java')
-rw-r--r-- | config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java index 9a0dcc7dd07..78484d0c889 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/RankingExpressionLoopDetectionTestCase.java @@ -194,4 +194,53 @@ public class RankingExpressionLoopDetectionTestCase { builder.build(); } + @Test + public void testNoLoopWithTheSameNestedIdentifierWhichIsUnbound() throws ParseException { + RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); + SearchBuilder builder = new SearchBuilder(rankProfileRegistry); + builder.importString( + "search test {\n" + + " document test { \n" + + " }\n" + + " rank-profile test {\n" + + " first-phase {\n" + + " expression: foo()\n" + + " }\n" + + " function foo() {\n" + + " expression: bar(x)\n" + + " }\n" + + " function bar(x) {\n" + + " expression: x + x\n" + + " }\n" + + " }\n" + + "}\n"); + builder.build(); + } + + @Test + public void testNoLoopWithTheSameAlternatingNestedIdentifierWhichIsUnbound() throws ParseException { + RankProfileRegistry rankProfileRegistry = new RankProfileRegistry(); + SearchBuilder builder = new SearchBuilder(rankProfileRegistry); + builder.importString( + "search test {\n" + + " document test { \n" + + " }\n" + + " rank-profile test {\n" + + " first-phase {\n" + + " expression: foo()\n" + + " }\n" + + " function foo() {\n" + + " expression: bar(x)\n" + + " }\n" + + " function bar(y) {\n" + + " expression: baz(y)\n" + + " }\n" + + " function baz(x) {\n" + + " expression: x + x\n" + + " }\n" + + " }\n" + + "}\n"); + builder.build(); + } + } |