This is an automated email from the ASF dual-hosted git repository.
emilles 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 0c82aee079 GROOVY-7439: add test case
0c82aee079 is described below
commit 0c82aee07936eaf21d7c80f1f8593a55e445d4d1
Author: Eric Milles <[email protected]>
AuthorDate: Wed May 7 09:20:45 2025 -0500
GROOVY-7439: add test case
---
.../groovy/groovy/util/logging/Slf4jTest.groovy | 45 ++++++++++++++++++----
.../traitx/TraitASTTransformationTest.groovy | 28 ++++++--------
2 files changed, 48 insertions(+), 25 deletions(-)
diff --git a/src/test/groovy/groovy/util/logging/Slf4jTest.groovy
b/src/test/groovy/groovy/util/logging/Slf4jTest.groovy
index 880463c12e..5f7bcba37d 100644
--- a/src/test/groovy/groovy/util/logging/Slf4jTest.groovy
+++ b/src/test/groovy/groovy/util/logging/Slf4jTest.groovy
@@ -24,9 +24,12 @@ import ch.qos.logback.classic.LoggerContext
import ch.qos.logback.classic.spi.LoggingEvent
import ch.qos.logback.core.OutputStreamAppender
import ch.qos.logback.core.layout.EchoLayout
-import org.junit.After
-import org.junit.Before
-import org.junit.Test
+import groovy.test.NotYetImplemented
+import org.junit.jupiter.api.AfterEach
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.ValueSource
import org.slf4j.LoggerFactory
import java.lang.reflect.Modifier
@@ -60,7 +63,7 @@ final class Slf4jTest {
private LogbackInterceptingAppender appender
private Logger logger
- @Before
+ @BeforeEach
void setUp() {
appender = new LogbackInterceptingAppender()
appender.outputStream = new ByteArrayOutputStream()
@@ -74,7 +77,7 @@ final class Slf4jTest {
logger.level = Level.ALL
}
- @After
+ @AfterEach
void tearDown() {
logger.detachAppender(appender)
}
@@ -293,7 +296,8 @@ final class Slf4jTest {
assert events[ind].message == 'trace called'
}
- @Test // GROOVY-6373
+ // GROOVY-6373
+ @Test
void testLogWithInnerClasses() {
Class clazz = new GroovyClassLoader().parseClass('''
@groovy.util.logging.Slf4j('logger')
@@ -323,7 +327,8 @@ final class Slf4jTest {
assert events[ind].message == 'inner called'
}
- @Test // GROOVY-6834
+ // GROOVY-6834
+ @Test
void testLogTransformInteractionWithAnonInnerClass() {
assertScript '''
@groovy.util.logging.Slf4j
@@ -344,7 +349,8 @@ final class Slf4jTest {
'''
}
- @Test // GROOVY-6873
+ // GROOVY-6873
+ @Test
void testLogTransformInteractionWithAnonInnerClass2() {
Class clazz = new GroovyClassLoader().parseClass('''
@groovy.util.logging.Slf4j
@@ -367,6 +373,29 @@ final class Slf4jTest {
''')
}
+ // GROOVY-7439
+ @NotYetImplemented
+ @ParameterizedTest
+ @ValueSource(strings=[
+ 'log', // Cannot find matching method Object#debug(String)
+ '((org.slf4j.Logger) log)' // No such property: log for class: C
+ ])
+ void testLogTrait(String log) {
+ assertScript """
+ @groovy.transform.CompileStatic
+ @groovy.util.logging.Slf4j
+ trait T {
+ void test() {
+ ${log}.debug('trace')
+ }
+ }
+ class C implements T {
+ }
+
+ new C().test()
+ """
+ }
+
@Test
void testLogGuard() {
Class clazz = new GroovyClassLoader().parseClass('''
diff --git
a/src/test/groovy/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
b/src/test/groovy/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
index 3b70b0bcdc..97d53e52f9 100644
---
a/src/test/groovy/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
+++
b/src/test/groovy/org/codehaus/groovy/transform/traitx/TraitASTTransformationTest.groovy
@@ -2509,21 +2509,17 @@ final class TraitASTTransformationTest {
@Test
void testUseStaticFieldInTraitBody() {
assertScript shell, '''
- import java.util.logging.Logger
-
trait Loggable {
-
- static def LOGGER = Logger.getLogger(this.class.name)
-
+ private static LOGGER =
java.util.logging.Logger.getLogger(this.class.name)
void info(String msg) {
LOGGER.info(msg)
}
}
+ class C implements Loggable {
+ }
- class Test implements Loggable {}
-
- def t = new Test()
- t.info('foo')
+ def pogo = new C()
+ pogo.info('foo')
'''
}
@@ -2531,21 +2527,19 @@ final class TraitASTTransformationTest {
void testUpdateStaticFieldInTraitBody() {
assertScript shell, '''
trait Loggable {
-
static int CALLS = 0
-
int call() {
CALLS += 1
CALLS
}
}
+ class C implements Loggable {
+ }
- class Test implements Loggable {}
-
- def t = new Test()
- assert t.call() == 1
- assert t.call() == 2
- assert Test.CALLS == 2
+ def pogo = new C()
+ assert pogo.call() == 1
+ assert pogo.call() == 2
+ assert pogo.CALLS == 2
'''
}