diff --git a/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtension.java b/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtension.java index e8bdb612d..e9f985445 100644 --- a/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtension.java +++ b/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtension.java @@ -54,8 +54,6 @@ public boolean isEnabled(ExtensionParameters parameters) @Override public void check(Root rootNode, ExtensionParameters parameters) throws ZserioExtensionException { - CppExtensionParameters.check(parameters); - final CompatibilityChecker compatibilityChecker = new CompatibilityChecker(); rootNode.walk(compatibilityChecker); diff --git a/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtensionParameters.java b/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtensionParameters.java index 20b10d9e0..37a6bb9ea 100644 --- a/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtensionParameters.java +++ b/compiler/extensions/cpp/src/zserio/extension/cpp/CppExtensionParameters.java @@ -17,8 +17,10 @@ */ public final class CppExtensionParameters { - public CppExtensionParameters(ExtensionParameters parameters) + public CppExtensionParameters(ExtensionParameters parameters) throws ZserioExtensionException { + check(parameters); + outputDir = parameters.getCommandLineArg(OptionCpp); withWriterCode = parameters.getWithWriterCode(); withPubsubCode = parameters.getWithPubsubCode(); @@ -187,7 +189,7 @@ static boolean hasOptionCpp(ExtensionParameters parameters) return parameters.argumentExists(OptionCpp); } - static void check(ExtensionParameters parameters) throws ZserioExtensionException + private void check(ExtensionParameters parameters) throws ZserioExtensionException { final String cppAllocator = parameters.getCommandLineArg(OptionSetCppAllocator); if (cppAllocator != null && !cppAllocator.equals(StdAllocator) && diff --git a/compiler/extensions/cpp/test/zserio/extension/cpp/CppExtensionParametersTest.java b/compiler/extensions/cpp/test/zserio/extension/cpp/CppExtensionParametersTest.java index 943808453..f0e53af2c 100644 --- a/compiler/extensions/cpp/test/zserio/extension/cpp/CppExtensionParametersTest.java +++ b/compiler/extensions/cpp/test/zserio/extension/cpp/CppExtensionParametersTest.java @@ -23,7 +23,7 @@ public void checkUnknownSetCppAllocator() final boolean withTypeInfoCode = false; final TestExtensionParameters extensionParameters = new TestExtensionParameters( setCppAllocator, withReflectionCode, withWriterCode, withTypeInfoCode); - assertThrows(ZserioExtensionException.class, () -> CppExtensionParameters.check(extensionParameters)); + assertThrows(ZserioExtensionException.class, () -> new CppExtensionParameters(extensionParameters)); } @Test @@ -35,7 +35,7 @@ public void checkStdSetCppAllocator() final boolean withTypeInfoCode = false; final TestExtensionParameters extensionParameters = new TestExtensionParameters( setCppAllocator, withReflectionCode, withWriterCode, withTypeInfoCode); - assertDoesNotThrow(() -> CppExtensionParameters.check(extensionParameters)); + assertDoesNotThrow(() -> new CppExtensionParameters(extensionParameters)); } @Test @@ -47,7 +47,7 @@ public void checkPolymorphicSetCppAllocator() final boolean withTypeInfoCode = false; final TestExtensionParameters extensionParameters = new TestExtensionParameters( setCppAllocator, withReflectionCode, withWriterCode, withTypeInfoCode); - assertDoesNotThrow(() -> CppExtensionParameters.check(extensionParameters)); + assertDoesNotThrow(() -> new CppExtensionParameters(extensionParameters)); } @Test @@ -59,7 +59,7 @@ public void checkWithReflectionCode() final boolean withTypeInfoCode = true; final TestExtensionParameters extensionParameters = new TestExtensionParameters( setCppAllocator, withReflectionCode, withWriterCode, withTypeInfoCode); - assertDoesNotThrow(() -> CppExtensionParameters.check(extensionParameters)); + assertDoesNotThrow(() -> new CppExtensionParameters(extensionParameters)); } @Test @@ -71,7 +71,7 @@ public void checkWithReflectionCodeWithoutTypeInfoCode() final boolean withTypeInfoCode = false; final TestExtensionParameters extensionParameters = new TestExtensionParameters( setCppAllocator, withReflectionCode, withWriterCode, withTypeInfoCode); - assertThrows(ZserioExtensionException.class, () -> CppExtensionParameters.check(extensionParameters)); + assertThrows(ZserioExtensionException.class, () -> new CppExtensionParameters(extensionParameters)); } private static class TestExtensionParameters implements ExtensionParameters @@ -94,8 +94,12 @@ public boolean argumentExists(String argumentName) return withWriterCode; if (argumentName.equals("withTypeInfoCode")) return withTypeInfoCode; + if (argumentName.equals("withoutSourcesAmalgamation")) + return false; + if (argumentName.equals("withParsingInfoCode")) + return false; - fail("TestExtensionParameters: argumentExists failure!"); + fail("TestExtensionParameters: argumentExists failure for '" + argumentName + "'!"); return false; } @@ -105,8 +109,10 @@ public String getCommandLineArg(String argumentName) { if (argumentName.equals("setCppAllocator")) return setCppAllocator; + if (argumentName.equals("cpp")) + return null; - fail("TestExtensionParameters: getCommandLineArg failure!"); + fail("TestExtensionParameters: getCommandLineArg failure for '" + argumentName + "'!"); return null; }