Skip to content

Commit c8c46e3

Browse files
committed
move levelChangePropagator related tests to logback-classic-blackbox
Signed-off-by: Ceki Gulcu <ceki@qos.ch>
1 parent f7d5cf8 commit c8c46e3

File tree

7 files changed

+115
-54
lines changed

7 files changed

+115
-54
lines changed

logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/joran/BlackboxJoranConfiguratorTest.java

+44-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import ch.qos.logback.classic.LoggerContext;
2020
import ch.qos.logback.classic.blackbox.BlackboxClassicTestConstants;
2121
import ch.qos.logback.classic.joran.JoranConfigurator;
22+
import ch.qos.logback.classic.jul.JULHelper;
2223
import ch.qos.logback.classic.spi.ILoggingEvent;
2324
import ch.qos.logback.classic.util.LogbackMDCAdapter;
2425
import ch.qos.logback.core.joran.spi.JoranException;
@@ -28,6 +29,8 @@
2829
import ch.qos.logback.core.util.StatusPrinter;
2930
import org.junit.jupiter.api.Test;
3031

32+
import java.io.IOException;
33+
3134
import static org.junit.jupiter.api.Assertions.assertEquals;
3235
import static org.junit.jupiter.api.Assertions.assertNotNull;
3336
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -38,7 +41,7 @@ public class BlackboxJoranConfiguratorTest {
3841
LogbackMDCAdapter logbackMDCAdapter = new LogbackMDCAdapter();
3942
Logger logger = loggerContext.getLogger(this.getClass().getName());
4043
Logger root = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
41-
//StatusChecker checker = new StatusChecker(loggerContext);
44+
StatusChecker checker = new StatusChecker(loggerContext);
4245
int diff = RandomUtil.getPositiveInt();
4346

4447
void configure(String file) throws JoranException {
@@ -145,4 +148,44 @@ public void nestedIf() throws JoranException {
145148

146149
}
147150

151+
@Test
152+
public void levelChangePropagator0() throws JoranException, IOException, InterruptedException {
153+
String loggerName = "changePropagator0" + diff;
154+
java.util.logging.Logger.getLogger(loggerName).setLevel(java.util.logging.Level.INFO);
155+
String configFileAsStr = BlackboxClassicTestConstants.JORAN_INPUT_PREFIX + "/jul/levelChangePropagator0.xml";
156+
configure(configFileAsStr);
157+
158+
checker.assertIsErrorFree();
159+
verifyJULLevel(loggerName, null);
160+
verifyJULLevel("a.b.c." + diff, Level.WARN);
161+
verifyJULLevel(Logger.ROOT_LOGGER_NAME, Level.TRACE);
162+
}
163+
164+
@Test
165+
public void levelChangePropagator1() throws JoranException, IOException, InterruptedException {
166+
String loggerName = "changePropagator1" + diff;
167+
java.util.logging.Logger logger1 = java.util.logging.Logger.getLogger(loggerName);
168+
logger1.setLevel(java.util.logging.Level.INFO);
169+
verifyJULLevel(loggerName, Level.INFO);
170+
String configFileAsStr = BlackboxClassicTestConstants.JORAN_INPUT_PREFIX + "/jul/levelChangePropagator1.xml";
171+
configure(configFileAsStr);
172+
173+
checker.assertIsErrorFree();
174+
verifyJULLevel(loggerName, Level.INFO); //
175+
verifyJULLevel("a.b.c." + diff, Level.WARN);
176+
verifyJULLevel(Logger.ROOT_LOGGER_NAME, Level.TRACE);
177+
}
178+
179+
void verifyJULLevel(String loggerName, Level expectedLevel) {
180+
java.util.logging.Logger julLogger = JULHelper.asJULLogger(loggerName);
181+
java.util.logging.Level julLevel = julLogger.getLevel();
182+
183+
if (expectedLevel == null) {
184+
assertNull(julLevel);
185+
} else {
186+
assertEquals(JULHelper.asJULLevel(expectedLevel), julLevel);
187+
}
188+
}
189+
190+
148191
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Logback: the reliable, generic, fast and flexible logging framework.
3+
* Copyright (C) 1999-2024, QOS.ch. All rights reserved.
4+
*
5+
* This program and the accompanying materials are dual-licensed under
6+
* either the terms of the Eclipse Public License v1.0 as published by
7+
* the Eclipse Foundation
8+
*
9+
* or (per the licensee's choosing)
10+
*
11+
* under the terms of the GNU Lesser General Public License version 2.1
12+
* as published by the Free Software Foundation.
13+
*/
14+
15+
package ch.qos.logback.classic.blackbox.joran;
16+
17+
import ch.qos.logback.core.Context;
18+
import ch.qos.logback.core.status.StatusManager;
19+
import ch.qos.logback.core.status.StatusUtil;
20+
import org.junit.jupiter.api.Assertions;
21+
22+
public class StatusChecker extends StatusUtil {
23+
24+
public StatusChecker(StatusManager sm) {
25+
super(sm);
26+
}
27+
28+
public StatusChecker(Context context) {
29+
super(context);
30+
}
31+
32+
public void assertContainsMatch(int level, String regex) {
33+
Assertions.assertTrue(containsMatch(level, regex));
34+
}
35+
36+
public void assertNoMatch(String regex) {
37+
Assertions.assertFalse(containsMatch(regex));
38+
}
39+
40+
public void assertContainsMatch(String regex) {
41+
Assertions.assertTrue(containsMatch(regex));
42+
}
43+
44+
public void assertContainsException(Class<?> scanExceptionClass) {
45+
Assertions.assertTrue(containsException(scanExceptionClass));
46+
}
47+
48+
public void assertContainsException(Class<?> scanExceptionClass, String msg) {
49+
Assertions.assertTrue(containsException(scanExceptionClass, msg));
50+
}
51+
52+
public void assertIsErrorFree() {
53+
Assertions.assertTrue(isErrorFree(0));
54+
}
55+
56+
public void assertIsErrorFree(long treshhold) {
57+
Assertions.assertTrue(isErrorFree(treshhold));
58+
}
59+
60+
public void assertIsWarningOrErrorFree() {
61+
Assertions.assertTrue(isWarningOrErrorFree(0));
62+
}
63+
64+
public void assertErrorCount(int i) {
65+
}
66+
}

logback-classic-blackbox/src/test/java/module-info.java

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
requires org.junit.jupiter.engine;
1313
requires org.slf4j;
1414

15+
requires java.logging;
16+
1517
exports ch.qos.logback.classic.blackbox.boolex;
1618

1719
exports ch.qos.logback.classic.blackbox.joran;

logback-classic/src/test/java/ch/qos/logback/classic/joran/JoranConfiguratorTest.java

+2-52
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,8 @@
1313
*/
1414
package ch.qos.logback.classic.joran;
1515

16-
import ch.qos.logback.classic.AsyncAppender;
17-
import ch.qos.logback.classic.ClassicConstants;
18-
import ch.qos.logback.classic.ClassicTestConstants;
19-
import ch.qos.logback.classic.Level;
20-
import ch.qos.logback.classic.Logger;
21-
import ch.qos.logback.classic.LoggerContext;
16+
import ch.qos.logback.classic.*;
2217
import ch.qos.logback.classic.joran.serializedModel.HardenedModelInputStream;
23-
import ch.qos.logback.classic.jul.JULHelper;
2418
import ch.qos.logback.classic.model.ConfigurationModel;
2519
import ch.qos.logback.classic.model.LoggerModel;
2620
import ch.qos.logback.classic.spi.ILoggingEvent;
@@ -42,7 +36,6 @@
4236
import ch.qos.logback.core.spi.ScanException;
4337
import ch.qos.logback.core.status.Status;
4438
import ch.qos.logback.core.status.testUtil.StatusChecker;
45-
import ch.qos.logback.core.testUtil.CoreTestConstants;
4639
import ch.qos.logback.core.testUtil.RandomUtil;
4740
import ch.qos.logback.core.testUtil.StringListAppender;
4841
import ch.qos.logback.core.util.CachingDateFormatter;
@@ -56,7 +49,6 @@
5649
import org.slf4j.spi.MDCAdapter;
5750

5851
import java.io.FileInputStream;
59-
import java.io.FileNotFoundException;
6052
import java.io.IOException;
6153
import java.text.SimpleDateFormat;
6254
import java.util.Date;
@@ -66,11 +58,7 @@
6658
import static ch.qos.logback.core.model.processor.ImplicitModelHandler.IGNORING_UNKNOWN_PROP;
6759
import static ch.qos.logback.core.model.processor.ShutdownHookModelHandler.RENAME_WARNING;
6860
import static ch.qos.logback.core.testUtil.CoreTestConstants.OUTPUT_DIR_PREFIX;
69-
import static org.junit.jupiter.api.Assertions.assertEquals;
70-
import static org.junit.jupiter.api.Assertions.assertFalse;
71-
import static org.junit.jupiter.api.Assertions.assertNotNull;
72-
import static org.junit.jupiter.api.Assertions.assertNull;
73-
import static org.junit.jupiter.api.Assertions.assertTrue;
61+
import static org.junit.jupiter.api.Assertions.*;
7462

7563
public class JoranConfiguratorTest {
7664

@@ -394,45 +382,7 @@ public void encoderCharset() throws JoranException, IOException, InterruptedExce
394382
checker.assertIsErrorFree();
395383
}
396384

397-
void verifyJULLevel(String loggerName, Level expectedLevel) {
398-
java.util.logging.Logger julLogger = JULHelper.asJULLogger(loggerName);
399-
java.util.logging.Level julLevel = julLogger.getLevel();
400385

401-
if (expectedLevel == null) {
402-
assertNull(julLevel);
403-
} else {
404-
assertEquals(JULHelper.asJULLevel(expectedLevel), julLevel);
405-
}
406-
407-
}
408-
409-
@Test
410-
public void levelChangePropagator0() throws JoranException, IOException, InterruptedException {
411-
String loggerName = "changePropagator0" + diff;
412-
java.util.logging.Logger.getLogger(loggerName).setLevel(java.util.logging.Level.INFO);
413-
String configFileAsStr = ClassicTestConstants.JORAN_INPUT_PREFIX + "/jul/levelChangePropagator0.xml";
414-
configure(configFileAsStr);
415-
416-
checker.assertIsErrorFree();
417-
verifyJULLevel(loggerName, null);
418-
verifyJULLevel("a.b.c." + diff, Level.WARN);
419-
verifyJULLevel(Logger.ROOT_LOGGER_NAME, Level.TRACE);
420-
}
421-
422-
@Test
423-
public void levelChangePropagator1() throws JoranException, IOException, InterruptedException {
424-
String loggerName = "changePropagator1" + diff;
425-
java.util.logging.Logger logger1 = java.util.logging.Logger.getLogger(loggerName);
426-
logger1.setLevel(java.util.logging.Level.INFO);
427-
verifyJULLevel(loggerName, Level.INFO);
428-
String configFileAsStr = ClassicTestConstants.JORAN_INPUT_PREFIX + "/jul/levelChangePropagator1.xml";
429-
configure(configFileAsStr);
430-
431-
checker.assertIsErrorFree();
432-
verifyJULLevel(loggerName, Level.INFO); //
433-
verifyJULLevel("a.b.c." + diff, Level.WARN);
434-
verifyJULLevel(Logger.ROOT_LOGGER_NAME, Level.TRACE);
435-
}
436386

437387
@Disabled // because slow
438388
@Test

logback-core/src/test/java/ch/qos/logback/core/status/testUtil/StatusChecker.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void assertIsErrorFree() {
5656
}
5757

5858
public void assertIsErrorFree(long treshhold) {
59-
Assertions.assertTrue(isErrorFree(0));
59+
Assertions.assertTrue(isErrorFree(treshhold));
6060
}
6161

6262
public void assertIsWarningOrErrorFree() {

0 commit comments

Comments
 (0)