From 12c957d9a7de8e6da49a652f08587714f6ca4f14 Mon Sep 17 00:00:00 2001 From: Michal Banik Date: Thu, 13 Aug 2020 20:09:04 +0200 Subject: [PATCH] $YangModuleInfoImpl not generated for only extensions model This adds a minimal test case, which flushes out the problem in test harness, but production code is actually fine. JIRA: MDSAL-589 Change-Id: I93404702551546585812f8d1b5be6690cc38e750 Signed-off-by: Michal Banik Signed-off-by: Robert Varga (cherry picked from commit 50855450c6fac03ca45636ab7d41f7c8dccfb02e) --- .../api/generator/test/BaseCompilationTest.java | 1 + .../api/generator/test/CompilationTest.java | 9 +++++++++ .../mdsal589/extension-model@2020-08-13.yang | 15 +++++++++++++++ .../mdsal589/main-model@2020-08-13.yang | 17 +++++++++++++++++ 4 files changed, 42 insertions(+) create mode 100644 binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/extension-model@2020-08-13.yang create mode 100644 binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/main-model@2020-08-13.yang diff --git a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java index c0ca8d4263..294ff8ff5f 100644 --- a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java +++ b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/BaseCompilationTest.java @@ -78,6 +78,7 @@ public abstract class BaseCompilationTest { final File file = new File(GeneratorJavaFile.packageToDirectory(sourcesOutputDir, BindingMapping.getRootPackageName(module.getQNameModule())), BindingMapping.MODULE_INFO_CLASS_NAME + ".java"); + Files.createParentDirs(file); Files.asCharSink(file, StandardCharsets.UTF_8).write(template.generate()); } diff --git a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java index 16aa921b6d..753ab98bdc 100644 --- a/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java +++ b/binding/mdsal-binding-java-api-generator/src/test/java/org/opendaylight/mdsal/binding/java/api/generator/test/CompilationTest.java @@ -690,6 +690,15 @@ public class CompilationTest extends BaseCompilationTest { CompilationTestUtils.cleanUp(sourcesOutputDir, compiledOutputDir); } + @Test + public void testMdsal589() throws Exception { + final File sourcesOutputDir = CompilationTestUtils.generatorOutput("mdsal589"); + final File compiledOutputDir = CompilationTestUtils.compilerOutput("mdsal589"); + generateTestSources("/compilation/mdsal589", sourcesOutputDir); + CompilationTestUtils.testCompilation(sourcesOutputDir, compiledOutputDir); + CompilationTestUtils.cleanUp(sourcesOutputDir, compiledOutputDir); + } + private static void testReturnTypeIdentityref(final Class clazz, final String methodName, final String returnTypeStr) throws NoSuchMethodException { Method method = clazz.getMethod(methodName); diff --git a/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/extension-model@2020-08-13.yang b/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/extension-model@2020-08-13.yang new file mode 100644 index 0000000000..62a9b79fb2 --- /dev/null +++ b/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/extension-model@2020-08-13.yang @@ -0,0 +1,15 @@ +module extension-model { + yang-version 1; + namespace "extension-model"; + prefix "ex"; + + revision "2020-08-13" { } + + extension custom-ex { + description "....."; + } + + //container dummy { + // // bug - necessary element in only exntensions model + //} +} diff --git a/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/main-model@2020-08-13.yang b/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/main-model@2020-08-13.yang new file mode 100644 index 0000000000..b37c56fa13 --- /dev/null +++ b/binding/mdsal-binding-java-api-generator/src/test/resources/compilation/mdsal589/main-model@2020-08-13.yang @@ -0,0 +1,17 @@ +module main-model { + yang-version 1; + namespace "main-model"; + prefix "main"; + + import extension-model { prefix "ex"; } + + revision "2020-08-13" { } + + container root-contaner { + leaf leaf1 { + type string; + ex:custom-ex; + } + } +} + -- 2.36.6