Three tests in IntrospectionProcessorTest (testLevelTooLow, testLevelEqual, testLevelHigher) aren't actually testing anything. Because $expected = $input is a reference, the changes made to $expected['extra'] are made to $input and carried forward to $actual. You can demonstrate this by adding a return $record at the immediate start of InstrospectionProcessor::__invoke -- the tests still pass despite bypassing all the code.
Monolog version 2
Three tests in IntrospectionProcessorTest (testLevelTooLow, testLevelEqual, testLevelHigher) aren't actually testing anything. Because
$expected = $input
is a reference, the changes made to$expected['extra']
are made to $input and carried forward to $actual. You can demonstrate this by adding areturn $record
at the immediate start ofInstrospectionProcessor::__invoke
-- the tests still pass despite bypassing all the code.I have a PR for this I'll open in a few minutes.