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 <eric.mil...@thomsonreuters.com> 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 ''' }