t377: raise the logger level in the test, or it asserts on an empty list
The 9 tests the member wrote failed 7 of 9 on first build. The production code was correct; the test harness was not. logback-test.xml sets dev.ltms.fleet to WARN, so the INFO shape lines were dropped by the level check before any appender saw them. The member copied attach()/detach() from MemberTrustModelReportTest but not the setLevel(INFO) those siblings do at each call site. Doing it inside attach()/detach() covers all nine at once, and restores the original level (null, meaning inherit) rather than a concrete one. Proven by mutation: making the code log the value fails 4 tests, including theValueNeverAppearsInLogOutput — 'the full GITEA_HOST value must never reach the log'. Full build 1459 tests green.
This commit is contained in:
@@ -39,8 +39,26 @@ class GitHostShapeReportTest {
|
||||
return FleetConfig.load(f);
|
||||
}
|
||||
|
||||
/**
|
||||
* The level this logger had before {@link #attach()} raised it, so {@link #detach} can put it
|
||||
* back. {@code null} is a real value here — it means "inherit from the parent" — and that is
|
||||
* exactly the state this logger starts in, so it must be restored as {@code null} rather than
|
||||
* as some concrete level.
|
||||
*/
|
||||
private static Level originalLevel;
|
||||
|
||||
/**
|
||||
* fleetd #377: the shape lines are logged at INFO, and {@code logback-test.xml} sets
|
||||
* {@code dev.ltms.fleet} to WARN — so INFO events are dropped by the level check BEFORE any
|
||||
* appender sees them. Attaching an appender is therefore not enough: without raising the level
|
||||
* the list stays empty and every assertion below fails against correct production code. The
|
||||
* sibling report tests do the same thing at each call site (see
|
||||
* {@code MemberTrustModelReportTest}); doing it here keeps it in one place.
|
||||
*/
|
||||
private static ListAppender<ILoggingEvent> attach() {
|
||||
Logger logger = (Logger) LoggerFactory.getLogger(Fleetd.class);
|
||||
originalLevel = logger.getLevel();
|
||||
logger.setLevel(Level.INFO);
|
||||
ListAppender<ILoggingEvent> appender = new ListAppender<>();
|
||||
appender.start();
|
||||
logger.addAppender(appender);
|
||||
@@ -48,7 +66,9 @@ class GitHostShapeReportTest {
|
||||
}
|
||||
|
||||
private static void detach(ListAppender<ILoggingEvent> appender) {
|
||||
((Logger) LoggerFactory.getLogger(Fleetd.class)).detachAppender(appender);
|
||||
Logger logger = (Logger) LoggerFactory.getLogger(Fleetd.class);
|
||||
logger.detachAppender(appender);
|
||||
logger.setLevel(originalLevel);
|
||||
}
|
||||
|
||||
private static List<String> messages(ListAppender<ILoggingEvent> appender) {
|
||||
|
||||
Reference in New Issue
Block a user