Should this test be added to the repo with a TODO comment? Gary
On Mon, Nov 8, 2021, 07:09 Volkan Yazıcı <[email protected]> wrote: > Hello! Does anybody have an idea why the following test fails for > CONCURRENT execution mode, whereas it works for SAME_THREAD? > > import org.apache.logging.log4j.Level; > import org.apache.logging.log4j.Logger; > import org.apache.logging.log4j.core.LoggerContext; > import org.apache.logging.log4j.core.config.Configuration; > import org.apache.logging.log4j.core.config.Configurator; > import > org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilder; > import > org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory; > import org.apache.logging.log4j.util.Strings; > import org.junit.jupiter.api.parallel.Execution; > import org.junit.jupiter.api.parallel.ExecutionMode; > import org.junit.jupiter.params.ParameterizedTest; > import org.junit.jupiter.params.provider.ValueSource; > > import java.io.File; > import java.nio.file.Paths; > > import static org.assertj.core.api.Assertions.assertThat; > > @Execution(ExecutionMode.SAME_THREAD) > class ParallelRunTest { > > @ParameterizedTest > @ValueSource(chars = {'A', 'B', 'C', 'D'}) > void test(final char letter) { > > // Create the configuration builder. > final ConfigurationBuilder<?> configBuilder = > ConfigurationBuilderFactory > .newConfigurationBuilder() > .setStatusLevel(Level.ERROR) > .setConfigurationName("Letter-" + letter); > > // Create the configuration. > final String appenderName = "File"; > final String appenderFilepath = Paths > .get( > System.getProperty("java.io.tmpdir"), > "ParallelRunTest-" + letter + ".log") > .toAbsolutePath() > .toString(); > final Configuration config = configBuilder > .add(configBuilder > .newAppender(appenderName, "File") > .addAttribute("fileName", appenderFilepath) > .addAttribute("append", false) > .addAttribute("immediateFlush", false) > .addAttribute("ignoreExceptions", false) > .add(configBuilder > .newLayout("PatternLayout") > .addAttribute("pattern", "%m\n"))) > .add(configBuilder > .newRootLogger(Level.ALL) > .add(configBuilder.newAppenderRef(appenderName))) > .build(false); > > // Initialize the configuration. > try (final LoggerContext loggerContext = > Configurator.initialize(config)) { > final Logger logger = > loggerContext.getLogger(ParallelRunTest.class); > > // Write logs. > final String message = Strings.repeat(String.valueOf(letter), > 999); > for (int i = 0; i < 1_000; i++) { > logger.info(message); > } > > } > > // Verify the file content. > final long appenderFileLength = new > File(appenderFilepath).length(); > assertThat(appenderFileLength).isEqualTo(1_000_000L); > > } > > } >
