You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2021/11/28 04:15:44 UTC
[groovy] branch master updated: Add test cases for `CompilerConfiguration`
This is an automated email from the ASF dual-hosted git repository.
sunlan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new cd10133 Add test cases for `CompilerConfiguration`
cd10133 is described below
commit cd101330523f241b615e4d9211851303571bc6c8
Author: Daniel Sun <su...@apache.org>
AuthorDate: Sun Nov 28 12:11:51 2021 +0800
Add test cases for `CompilerConfiguration`
---
.../groovy/control/CompilerConfiguration.java | 10 +++
.../groovy/control/CompilerConfigurationTest.java | 81 ++++++++++++++++++++++
2 files changed, 91 insertions(+)
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index 20f76e3..d018565 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -305,6 +305,16 @@ public class CompilerConfiguration {
public void setWarningLevel(final int level) {
throw new UnsupportedOperationException();
}
+
+ @Override
+ public void setLogClassgen(boolean logClassgen) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public void setLogClassgenStackTraceMaxDepth(int logClassgenStackTraceMaxDepth) {
+ throw new UnsupportedOperationException();
+ }
};
/**
diff --git a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
index 6c34821..0d2cf3e 100644
--- a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
+++ b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
@@ -31,6 +31,8 @@ import java.util.Properties;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThrows;
+import static org.junit.Assert.assertTrue;
/**
* Make sure CompilerConfiguration works.
@@ -119,6 +121,8 @@ public final class CompilerConfigurationTest {
init.addCompilationCustomizers(new ImportCustomizer().addStarImports("groovy.transform"));
ParserPluginFactory pluginFactory = ParserPluginFactory.antlr4();
init.setPluginFactory(pluginFactory);
+ init.setLogClassgen(true);
+ init.setLogClassgenStackTraceMaxDepth(100);
assertEquals(WarningMessage.POSSIBLE_ERRORS, init.getWarningLevel());
assertEquals(Boolean.TRUE, init.getDebug());
@@ -137,6 +141,8 @@ public final class CompilerConfigurationTest {
assertEquals("somevalue", init.getJointCompilationOptions().get("somekey"));
assertEquals(pluginFactory, init.getPluginFactory());
assertEquals(1, init.getCompilationCustomizers().size());
+ assertTrue(init.isLogClassgen());
+ assertEquals(100, init.getLogClassgenStackTraceMaxDepth());
//
@@ -157,6 +163,8 @@ public final class CompilerConfigurationTest {
assertEquals(".jpp", config.getDefaultScriptExtension());
assertEquals("somevalue", config.getJointCompilationOptions().get("somekey"));
assertEquals(pluginFactory, config.getPluginFactory());
+ assertTrue(config.isLogClassgen());
+ assertEquals(100, config.getLogClassgenStackTraceMaxDepth());
// TODO GROOVY-9585: re-enable below assertion once prod code is fixed
// assertEquals(1, config.getCompilationCustomizers().size());
}
@@ -178,6 +186,11 @@ public final class CompilerConfigurationTest {
init.setClasspath("");
File targetDirectory = new File("A wandering path");
init.setTargetDirectory(targetDirectory);
+ init.setLogClassgen(true);
+ init.setLogClassgenStackTraceMaxDepth(100);
+ ParserPluginFactory pluginFactory = ParserPluginFactory.antlr4();
+ init.setPluginFactory(pluginFactory);
+ init.setDefaultScriptExtension(".jpp");
assertEquals(WarningMessage.POSSIBLE_ERRORS, init.getWarningLevel());
assertEquals(Boolean.FALSE, init.getDebug());
@@ -191,6 +204,10 @@ public final class CompilerConfigurationTest {
assertEquals(Boolean.FALSE, init.getRecompileGroovySource());
assertEquals(Collections.emptyList(), init.getClasspath());
assertEquals(targetDirectory, init.getTargetDirectory());
+ assertTrue(init.isLogClassgen());
+ assertEquals(100, init.getLogClassgenStackTraceMaxDepth());
+ assertEquals(pluginFactory, init.getPluginFactory());
+ assertEquals(".jpp", init.getDefaultScriptExtension());
//
@@ -207,5 +224,69 @@ public final class CompilerConfigurationTest {
assertEquals(Boolean.FALSE, config.getRecompileGroovySource());
assertEquals(Collections.emptyList(), config.getClasspath());
assertEquals(targetDirectory, config.getTargetDirectory());
+ assertTrue(config.isLogClassgen());
+ assertEquals(100, config.getLogClassgenStackTraceMaxDepth());
+ assertEquals(pluginFactory, config.getPluginFactory());
+ assertEquals(".jpp", config.getDefaultScriptExtension());
+ }
+
+ @Test
+ public void testModifyingDefaultConfiguration() {
+ CompilerConfiguration config = CompilerConfiguration.DEFAULT;
+
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setWarningLevel(WarningMessage.POSSIBLE_ERRORS);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setDebug(false);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setParameters(false);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setVerbose(true);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setTolerance(55);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setMinimumRecompilationInterval(975);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setScriptBaseClass("");
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setSourceEncoding("Gutenberg");
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setTargetBytecode(CompilerConfiguration.JDK5);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setRecompileGroovySource(false);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setClasspath("");
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ File targetDirectory = new File("A wandering path");
+ config.setTargetDirectory(targetDirectory);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setLogClassgen(true);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setLogClassgenStackTraceMaxDepth(100);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ ParserPluginFactory pluginFactory = ParserPluginFactory.antlr4();
+ config.setPluginFactory(pluginFactory);
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ config.setDefaultScriptExtension(".jpp");
+ });
+ assertThrows(UnsupportedOperationException.class, () -> {
+ ImportCustomizer ic = new ImportCustomizer();
+ config.addCompilationCustomizers(ic);
+ });
}
}