Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test for PHPUnit 9.6 started failing with PHP 8.4 #5730

Closed
sebastianbergmann opened this issue Mar 10, 2024 · 6 comments
Closed

Test for PHPUnit 9.6 started failing with PHP 8.4 #5730

sebastianbergmann opened this issue Mar 10, 2024 · 6 comments
Assignees
Labels
type/change-in-php-requires-adaptation A change in PHP requires a change so that existing PHPUnit functionality continues to work version/9 Something affects PHPUnit 9

Comments

@sebastianbergmann
Copy link
Owner

  • PHPUnit 9.6 at 0605856
  • PHP 8.4 at a0b821b543a89056c60ffe2baa1db3841d9aeefe
1) PHPUnit\Framework\ExceptionWrapperTest::testNoOriginalExceptionInStacktrace
Assert there is s no other BadFunctionCallException mention in stacktrace
Failed asserting that 'PHPUnit\Framework\ExceptionWrapper Object\n
(\n
    [message:protected] => custom class exception\n
    [string:Exception:private] => \n
    [code:protected] => 0\n
    [file:protected] => /usr/local/src/phpunit/tests/unit/Framework/ExceptionWrapperTest.php\n
    [line:protected] => 48\n
    [trace:Exception:private] => Array\n
        (\n
            [0] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 1617\n
                    [function] => testNoOriginalExceptionInStacktrace\n
                    [class] => PHPUnit\Framework\ExceptionWrapperTest\n
                    [type] => ->\n
                    [args] => Array\n
                        (\n
                        )\n
\n
                )\n
\n
            [1] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 1223\n
                    [function] => runTest\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                    [args] => Array\n
                        (\n
                        )\n
\n
                )\n
\n
            [2] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestResult.php\n
                    [line] => 729\n
                    [function] => runBare\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                    [args] => Array\n
                        (\n
                        )\n
\n
                )\n
\n
            [3] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 973\n
                    [function] => run\n
                    [class] => PHPUnit\Framework\TestResult\n
                    [type] => ->\n
                    [args] => Array\n
                        (\n
                            [0] => PHPUnit\Framework\ExceptionWrapperTest Object\n
                                (\n
                                    [backupGlobals:protected] => \n
                                    [backupGlobalsExcludeList:protected] => Array\n
                                        (\n
                                        )\n
\n
                                    [backupGlobalsBlacklist:protected] => Array\n
                                        (\n
                                        )\n
\n
                                    [backupStaticAttributes:protected] => \n
                                    [backupStaticAttributesExcludeList:protected] => Array\n
                                        (\n
                                        )\n
\n
                                    [backupStaticAttributesBlacklist:protected] => Array\n
                                        (\n
                                        )\n
\n
                                    [runTestInSeparateProcess:protected] => \n
                                    [preserveGlobalState:protected] => 1\n
                                    [providedTests:protected] => Array\n
                                        (\n
                                            [0] => PHPUnit\Framework\ExecutionOrderDependency Object\n
                                                (\n
                                                    [className:PHPUnit\Framework\ExecutionOrderDependency:private] => PHPUnit\Framework\ExceptionWrapperTest\n
                                                    [methodName:PHPUnit\Framework\ExecutionOrderDependency:private] => testNoOriginalExceptionInStacktrace\n
                                                    [useShallowClone:PHPUnit\Framework\ExecutionOrderDependency:private] => \n
                                                    [useDeepClone:PHPUnit\Framework\ExecutionOrderDependency:private] => \n
                                                )\n
\n
                                        )\n
\n
                                    [runClassInSeparateProcess:PHPUnit\Framework\TestCase:private] => \n
                                    [inIsolation:PHPUnit\Framework\TestCase:private] => 1\n
                                    [data:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [dataName:PHPUnit\Framework\TestCase:private] => \n
                                    [expectedException:PHPUnit\Framework\TestCase:private] => \n
                                    [expectedExceptionMessage:PHPUnit\Framework\TestCase:private] => \n
                                    [expectedExceptionMessageRegExp:PHPUnit\Framework\TestCase:private] => \n
                                    [expectedExceptionCode:PHPUnit\Framework\TestCase:private] => \n
                                    [name:PHPUnit\Framework\TestCase:private] => testNoOriginalExceptionInStacktrace\n
                                    [dependencies:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [dependencyInput:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [iniSettings:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [locale:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [mockObjects:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [mockObjectGenerator:PHPUnit\Framework\TestCase:private] => \n
                                    [status:PHPUnit\Framework\TestCase:private] => -1\n
                                    [statusMessage:PHPUnit\Framework\TestCase:private] => \n
                                    [numAssertions:PHPUnit\Framework\TestCase:private] => 0\n
                                    [result:PHPUnit\Framework\TestCase:private] => PHPUnit\Framework\TestResult Object\n
                                        (\n
                                            [passed:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [passedTestClasses:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [currentTestSuiteFailed:PHPUnit\Framework\TestResult:private] => \n
                                            [errors:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [failures:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [warnings:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [notImplemented:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [risky:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [skipped:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [listeners:PHPUnit\Framework\TestResult:private] => Array\n
                                                (\n
                                                )\n
\n
                                            [runTests:PHPUnit\Framework\TestResult:private] => 1\n
                                            [time:PHPUnit\Framework\TestResult:private] => 0\n
                                            [codeCoverage:PHPUnit\Framework\TestResult:private] => \n
                                            [convertDeprecationsToExceptions:PHPUnit\Framework\TestResult:private] => \n
                                            [convertErrorsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                            [convertNoticesToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                            [convertWarningsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                            [stop:PHPUnit\Framework\TestResult:private] => \n
                                            [stopOnError:PHPUnit\Framework\TestResult:private] => \n
                                            [stopOnFailure:PHPUnit\Framework\TestResult:private] => \n
                                            [stopOnWarning:PHPUnit\Framework\TestResult:private] => \n
                                            [beStrictAboutTestsThatDoNotTestAnything:PHPUnit\Framework\TestResult:private] => 1\n
                                            [beStrictAboutOutputDuringTests:PHPUnit\Framework\TestResult:private] => \n
                                            [beStrictAboutTodoAnnotatedTests:PHPUnit\Framework\TestResult:private] => \n
                                            [beStrictAboutResourceUsageDuringSmallTests:PHPUnit\Framework\TestResult:private] => \n
                                            [enforceTimeLimit:PHPUnit\Framework\TestResult:private] => \n
                                            [forceCoversAnnotation:PHPUnit\Framework\TestResult:private] => \n
                                            [timeoutForSmallTests:PHPUnit\Framework\TestResult:private] => 1\n
                                            [timeoutForMediumTests:PHPUnit\Framework\TestResult:private] => 10\n
                                            [timeoutForLargeTests:PHPUnit\Framework\TestResult:private] => 60\n
                                            [stopOnRisky:PHPUnit\Framework\TestResult:private] => \n
                                            [stopOnIncomplete:PHPUnit\Framework\TestResult:private] => \n
                                            [stopOnSkipped:PHPUnit\Framework\TestResult:private] => \n
                                            [lastTestFailed:PHPUnit\Framework\TestResult:private] => \n
                                            [defaultTimeLimit:PHPUnit\Framework\TestResult:private] => 0\n
                                            [stopOnDefect:PHPUnit\Framework\TestResult:private] => \n
                                            [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestResult:private] => \n
                                        )\n
\n
                                    [testResult:PHPUnit\Framework\TestCase:private] => \n
                                    [output:PHPUnit\Framework\TestCase:private] => \n
                                    [outputExpectedRegex:PHPUnit\Framework\TestCase:private] => \n
                                    [outputExpectedString:PHPUnit\Framework\TestCase:private] => \n
                                    [outputCallback:PHPUnit\Framework\TestCase:private] => \n
                                    [outputBufferingActive:PHPUnit\Framework\TestCase:private] => 1\n
                                    [outputBufferingLevel:PHPUnit\Framework\TestCase:private] => 1\n
                                    [outputRetrievedForAssertion:PHPUnit\Framework\TestCase:private] => \n
                                    [snapshot:PHPUnit\Framework\TestCase:private] => \n
                                    [prophet:PHPUnit\Framework\TestCase:private] => \n
                                    [beStrictAboutChangesToGlobalState:PHPUnit\Framework\TestCase:private] => \n
                                    [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestCase:private] => \n
                                    [warnings:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [groups:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [doesNotPerformAssertions:PHPUnit\Framework\TestCase:private] => \n
                                    [customComparators:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [doubledTypes:PHPUnit\Framework\TestCase:private] => Array\n
                                        (\n
                                        )\n
\n
                                )\n
\n
                        )\n
\n
                )\n
\n
            [4] => Array\n
                (\n
                    [file] => Standard input code\n
                    [line] => 256\n
                    [function] => run\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                    [args] => Array\n
                        (\n
                            [0] => PHPUnit\Framework\TestResult Object\n
                                (\n
                                    [passed:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [passedTestClasses:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [currentTestSuiteFailed:PHPUnit\Framework\TestResult:private] => \n
                                    [errors:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [failures:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [warnings:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [notImplemented:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [risky:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [skipped:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [listeners:PHPUnit\Framework\TestResult:private] => Array\n
                                        (\n
                                        )\n
\n
                                    [runTests:PHPUnit\Framework\TestResult:private] => 1\n
                                    [time:PHPUnit\Framework\TestResult:private] => 0\n
                                    [codeCoverage:PHPUnit\Framework\TestResult:private] => \n
                                    [convertDeprecationsToExceptions:PHPUnit\Framework\TestResult:private] => \n
                                    [convertErrorsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                    [convertNoticesToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                    [convertWarningsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                    [stop:PHPUnit\Framework\TestResult:private] => \n
                                    [stopOnError:PHPUnit\Framework\TestResult:private] => \n
                                    [stopOnFailure:PHPUnit\Framework\TestResult:private] => \n
                                    [stopOnWarning:PHPUnit\Framework\TestResult:private] => \n
                                    [beStrictAboutTestsThatDoNotTestAnything:PHPUnit\Framework\TestResult:private] => 1\n
                                    [beStrictAboutOutputDuringTests:PHPUnit\Framework\TestResult:private] => \n
                                    [beStrictAboutTodoAnnotatedTests:PHPUnit\Framework\TestResult:private] => \n
                                    [beStrictAboutResourceUsageDuringSmallTests:PHPUnit\Framework\TestResult:private] => \n
                                    [enforceTimeLimit:PHPUnit\Framework\TestResult:private] => \n
                                    [forceCoversAnnotation:PHPUnit\Framework\TestResult:private] => \n
                                    [timeoutForSmallTests:PHPUnit\Framework\TestResult:private] => 1\n
                                    [timeoutForMediumTests:PHPUnit\Framework\TestResult:private] => 10\n
                                    [timeoutForLargeTests:PHPUnit\Framework\TestResult:private] => 60\n
                                    [stopOnRisky:PHPUnit\Framework\TestResult:private] => \n
                                    [stopOnIncomplete:PHPUnit\Framework\TestResult:private] => \n
                                    [stopOnSkipped:PHPUnit\Framework\TestResult:private] => \n
                                    [lastTestFailed:PHPUnit\Framework\TestResult:private] => \n
                                    [defaultTimeLimit:PHPUnit\Framework\TestResult:private] => 0\n
                                    [stopOnDefect:PHPUnit\Framework\TestResult:private] => \n
                                    [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestResult:private] => \n
                                )\n
\n
                        )\n
\n
                )\n
\n
            [5] => Array\n
                (\n
                    [file] => Standard input code\n
                    [line] => 852\n
                    [function] => __phpunit_run_isolated_test\n
                    [args] => Array\n
                        (\n
                        )\n
\n
                )\n
\n
        )\n
\n
    [previous:Exception:private] => \n
    [serializableTrace:protected] => Array\n
        (\n
            [0] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 1617\n
                    [function] => testNoOriginalExceptionInStacktrace\n
                    [class] => PHPUnit\Framework\ExceptionWrapperTest\n
                    [type] => ->\n
                )\n
\n
            [1] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 1223\n
                    [function] => runTest\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                )\n
\n
            [2] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestResult.php\n
                    [line] => 729\n
                    [function] => runBare\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                )\n
\n
            [3] => Array\n
                (\n
                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                    [line] => 973\n
                    [function] => run\n
                    [class] => PHPUnit\Framework\TestResult\n
                    [type] => ->\n
                )\n
\n
            [4] => Array\n
                (\n
                    [file] => Standard input code\n
                    [line] => 256\n
                    [function] => run\n
                    [class] => PHPUnit\Framework\TestCase\n
                    [type] => ->\n
                )\n
\n
            [5] => Array\n
                (\n
                    [file] => Standard input code\n
                    [line] => 852\n
                    [function] => __phpunit_run_isolated_test\n
                )\n
\n
        )\n
\n
    [className:protected] => MyException\n
    [previous:protected] => \n
    [originalException:PHPUnit\Framework\ExceptionWrapper:private] => WeakReference Object\n
        (\n
            [object] => BadFunctionCallException Object\n
                (\n
                    [message:protected] => custom class exception\n
                    [string:Exception:private] => \n
                    [code:protected] => 0\n
                    [file:protected] => /usr/local/src/phpunit/tests/unit/Framework/ExceptionWrapperTest.php\n
                    [line:protected] => 48\n
                    [trace:Exception:private] => Array\n
                        (\n
                            [0] => Array\n
                                (\n
                                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                                    [line] => 1617\n
                                    [function] => testNoOriginalExceptionInStacktrace\n
                                    [class] => PHPUnit\Framework\ExceptionWrapperTest\n
                                    [type] => ->\n
                                    [args] => Array\n
                                        (\n
                                        )\n
\n
                                )\n
\n
                            [1] => Array\n
                                (\n
                                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                                    [line] => 1223\n
                                    [function] => runTest\n
                                    [class] => PHPUnit\Framework\TestCase\n
                                    [type] => ->\n
                                    [args] => Array\n
                                        (\n
                                        )\n
\n
                                )\n
\n
                            [2] => Array\n
                                (\n
                                    [file] => /usr/local/src/phpunit/src/Framework/TestResult.php\n
                                    [line] => 729\n
                                    [function] => runBare\n
                                    [class] => PHPUnit\Framework\TestCase\n
                                    [type] => ->\n
                                    [args] => Array\n
                                        (\n
                                        )\n
\n
                                )\n
\n
                            [3] => Array\n
                                (\n
                                    [file] => /usr/local/src/phpunit/src/Framework/TestCase.php\n
                                    [line] => 973\n
                                    [function] => run\n
                                    [class] => PHPUnit\Framework\TestResult\n
                                    [type] => ->\n
                                    [args] => Array\n
                                        (\n
                                            [0] => PHPUnit\Framework\ExceptionWrapperTest Object\n
                                                (\n
                                                    [backupGlobals:protected] => \n
                                                    [backupGlobalsExcludeList:protected] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [backupGlobalsBlacklist:protected] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [backupStaticAttributes:protected] => \n
                                                    [backupStaticAttributesExcludeList:protected] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [backupStaticAttributesBlacklist:protected] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [runTestInSeparateProcess:protected] => \n
                                                    [preserveGlobalState:protected] => 1\n
                                                    [providedTests:protected] => Array\n
                                                        (\n
                                                            [0] => PHPUnit\Framework\ExecutionOrderDependency Object\n
                                                                (\n
                                                                    [className:PHPUnit\Framework\ExecutionOrderDependency:private] => PHPUnit\Framework\ExceptionWrapperTest\n
                                                                    [methodName:PHPUnit\Framework\ExecutionOrderDependency:private] => testNoOriginalExceptionInStacktrace\n
                                                                    [useShallowClone:PHPUnit\Framework\ExecutionOrderDependency:private] => \n
                                                                    [useDeepClone:PHPUnit\Framework\ExecutionOrderDependency:private] => \n
                                                                )\n
\n
                                                        )\n
\n
                                                    [runClassInSeparateProcess:PHPUnit\Framework\TestCase:private] => \n
                                                    [inIsolation:PHPUnit\Framework\TestCase:private] => 1\n
                                                    [data:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [dataName:PHPUnit\Framework\TestCase:private] => \n
                                                    [expectedException:PHPUnit\Framework\TestCase:private] => \n
                                                    [expectedExceptionMessage:PHPUnit\Framework\TestCase:private] => \n
                                                    [expectedExceptionMessageRegExp:PHPUnit\Framework\TestCase:private] => \n
                                                    [expectedExceptionCode:PHPUnit\Framework\TestCase:private] => \n
                                                    [name:PHPUnit\Framework\TestCase:private] => testNoOriginalExceptionInStacktrace\n
                                                    [dependencies:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [dependencyInput:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [iniSettings:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [locale:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [mockObjects:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [mockObjectGenerator:PHPUnit\Framework\TestCase:private] => \n
                                                    [status:PHPUnit\Framework\TestCase:private] => -1\n
                                                    [statusMessage:PHPUnit\Framework\TestCase:private] => \n
                                                    [numAssertions:PHPUnit\Framework\TestCase:private] => 0\n
                                                    [result:PHPUnit\Framework\TestCase:private] => PHPUnit\Framework\TestResult Object\n
                                                        (\n
                                                            [passed:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [passedTestClasses:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [currentTestSuiteFailed:PHPUnit\Framework\TestResult:private] => \n
                                                            [errors:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [failures:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [warnings:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [notImplemented:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [risky:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [skipped:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [listeners:PHPUnit\Framework\TestResult:private] => Array\n
                                                                (\n
                                                                )\n
\n
                                                            [runTests:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [time:PHPUnit\Framework\TestResult:private] => 0\n
                                                            [codeCoverage:PHPUnit\Framework\TestResult:private] => \n
                                                            [convertDeprecationsToExceptions:PHPUnit\Framework\TestResult:private] => \n
                                                            [convertErrorsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [convertNoticesToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [convertWarningsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [stop:PHPUnit\Framework\TestResult:private] => \n
                                                            [stopOnError:PHPUnit\Framework\TestResult:private] => \n
                                                            [stopOnFailure:PHPUnit\Framework\TestResult:private] => \n
                                                            [stopOnWarning:PHPUnit\Framework\TestResult:private] => \n
                                                            [beStrictAboutTestsThatDoNotTestAnything:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [beStrictAboutOutputDuringTests:PHPUnit\Framework\TestResult:private] => \n
                                                            [beStrictAboutTodoAnnotatedTests:PHPUnit\Framework\TestResult:private] => \n
                                                            [beStrictAboutResourceUsageDuringSmallTests:PHPUnit\Framework\TestResult:private] => \n
                                                            [enforceTimeLimit:PHPUnit\Framework\TestResult:private] => \n
                                                            [forceCoversAnnotation:PHPUnit\Framework\TestResult:private] => \n
                                                            [timeoutForSmallTests:PHPUnit\Framework\TestResult:private] => 1\n
                                                            [timeoutForMediumTests:PHPUnit\Framework\TestResult:private] => 10\n
                                                            [timeoutForLargeTests:PHPUnit\Framework\TestResult:private] => 60\n
                                                            [stopOnRisky:PHPUnit\Framework\TestResult:private] => \n
                                                            [stopOnIncomplete:PHPUnit\Framework\TestResult:private] => \n
                                                            [stopOnSkipped:PHPUnit\Framework\TestResult:private] => \n
                                                            [lastTestFailed:PHPUnit\Framework\TestResult:private] => \n
                                                            [defaultTimeLimit:PHPUnit\Framework\TestResult:private] => 0\n
                                                            [stopOnDefect:PHPUnit\Framework\TestResult:private] => \n
                                                            [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestResult:private] => \n
                                                        )\n
\n
                                                    [testResult:PHPUnit\Framework\TestCase:private] => \n
                                                    [output:PHPUnit\Framework\TestCase:private] => \n
                                                    [outputExpectedRegex:PHPUnit\Framework\TestCase:private] => \n
                                                    [outputExpectedString:PHPUnit\Framework\TestCase:private] => \n
                                                    [outputCallback:PHPUnit\Framework\TestCase:private] => \n
                                                    [outputBufferingActive:PHPUnit\Framework\TestCase:private] => 1\n
                                                    [outputBufferingLevel:PHPUnit\Framework\TestCase:private] => 1\n
                                                    [outputRetrievedForAssertion:PHPUnit\Framework\TestCase:private] => \n
                                                    [snapshot:PHPUnit\Framework\TestCase:private] => \n
                                                    [prophet:PHPUnit\Framework\TestCase:private] => \n
                                                    [beStrictAboutChangesToGlobalState:PHPUnit\Framework\TestCase:private] => \n
                                                    [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestCase:private] => \n
                                                    [warnings:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [groups:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [doesNotPerformAssertions:PHPUnit\Framework\TestCase:private] => \n
                                                    [customComparators:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [doubledTypes:PHPUnit\Framework\TestCase:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                )\n
\n
                                        )\n
\n
                                )\n
\n
                            [4] => Array\n
                                (\n
                                    [file] => Standard input code\n
                                    [line] => 256\n
                                    [function] => run\n
                                    [class] => PHPUnit\Framework\TestCase\n
                                    [type] => ->\n
                                    [args] => Array\n
                                        (\n
                                            [0] => PHPUnit\Framework\TestResult Object\n
                                                (\n
                                                    [passed:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [passedTestClasses:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [currentTestSuiteFailed:PHPUnit\Framework\TestResult:private] => \n
                                                    [errors:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [failures:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [warnings:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [notImplemented:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [risky:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [skipped:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [listeners:PHPUnit\Framework\TestResult:private] => Array\n
                                                        (\n
                                                        )\n
\n
                                                    [runTests:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [time:PHPUnit\Framework\TestResult:private] => 0\n
                                                    [codeCoverage:PHPUnit\Framework\TestResult:private] => \n
                                                    [convertDeprecationsToExceptions:PHPUnit\Framework\TestResult:private] => \n
                                                    [convertErrorsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [convertNoticesToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [convertWarningsToExceptions:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [stop:PHPUnit\Framework\TestResult:private] => \n
                                                    [stopOnError:PHPUnit\Framework\TestResult:private] => \n
                                                    [stopOnFailure:PHPUnit\Framework\TestResult:private] => \n
                                                    [stopOnWarning:PHPUnit\Framework\TestResult:private] => \n
                                                    [beStrictAboutTestsThatDoNotTestAnything:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [beStrictAboutOutputDuringTests:PHPUnit\Framework\TestResult:private] => \n
                                                    [beStrictAboutTodoAnnotatedTests:PHPUnit\Framework\TestResult:private] => \n
                                                    [beStrictAboutResourceUsageDuringSmallTests:PHPUnit\Framework\TestResult:private] => \n
                                                    [enforceTimeLimit:PHPUnit\Framework\TestResult:private] => \n
                                                    [forceCoversAnnotation:PHPUnit\Framework\TestResult:private] => \n
                                                    [timeoutForSmallTests:PHPUnit\Framework\TestResult:private] => 1\n
                                                    [timeoutForMediumTests:PHPUnit\Framework\TestResult:private] => 10\n
                                                    [timeoutForLargeTests:PHPUnit\Framework\TestResult:private] => 60\n
                                                    [stopOnRisky:PHPUnit\Framework\TestResult:private] => \n
                                                    [stopOnIncomplete:PHPUnit\Framework\TestResult:private] => \n
                                                    [stopOnSkipped:PHPUnit\Framework\TestResult:private] => \n
                                                    [lastTestFailed:PHPUnit\Framework\TestResult:private] => \n
                                                    [defaultTimeLimit:PHPUnit\Framework\TestResult:private] => 0\n
                                                    [stopOnDefect:PHPUnit\Framework\TestResult:private] => \n
                                                    [registerMockObjectsFromTestArgumentsRecursively:PHPUnit\Framework\TestResult:private] => \n
                                                )\n
\n
                                        )\n
\n
                                )\n
\n
                            [5] => Array\n
                                (\n
                                    [file] => Standard input code\n
                                    [line] => 852\n
                                    [function] => __phpunit_run_isolated_test\n
                                    [args] => Array\n
                                        (\n
                                        )\n
\n
                                )\n
\n
                        )\n
\n
                    [previous:Exception:private] => \n
                )\n
\n
        )\n
\n
)\n
' does not contain "BadFunctionCallException".

/usr/local/src/phpunit/src/Framework/Constraint/Constraint.php:122
/usr/local/src/phpunit/src/Framework/Constraint/Constraint.php:56
/usr/local/src/phpunit/src/Framework/Assert.php:2438
/usr/local/src/phpunit/src/Framework/Assert.php:2166
/usr/local/src/phpunit/tests/unit/Framework/ExceptionWrapperTest.php:56
/usr/local/src/phpunit/src/Framework/TestCase.php:1617
/usr/local/src/phpunit/src/Framework/TestCase.php:1223
/usr/local/src/phpunit/src/Framework/TestResult.php:729
/usr/local/src/phpunit/src/Framework/TestCase.php:973
@sebastianbergmann sebastianbergmann added type/change-in-php-requires-adaptation A change in PHP requires a change so that existing PHPUnit functionality continues to work version/9 Something affects PHPUnit 9 labels Mar 10, 2024
@sebastianbergmann sebastianbergmann self-assigned this Mar 10, 2024
@sebastianbergmann
Copy link
Owner Author

PHPUnit\Framework\ExceptionWrapperTest::testNoOriginalExceptionInStacktrace() exists on the 8.5 branch and does not fail with PHP 8.4 at a0b821b543a89056c60ffe2baa1db3841d9aeefe.

PHPUnit\Framework\ExceptionWrapperTest::testNoOriginalExceptionInStacktrace() does not exist on the 10.5, 11.0, and main branches.

@sebastianbergmann
Copy link
Owner Author

Identified the change in PHP 8.4 that causes this using git bisect: php/php-src@39b8d5c (php/php-src#13613) by @nielsdos.

@sebastianbergmann
Copy link
Owner Author

@nielsdos How to reproduce:

$ git@github.com:sebastianbergmann/phpunit.git
$ cd phpunit
$ git checkout 9.6
$ ./tools/composer install
$ ./phpunit --filter testNoOriginalExceptionInStacktrace

@sebastianbergmann
Copy link
Owner Author

WeakRef is only used on the 9.6 branch (src/Framework/ExceptionWrapper.php). It is not used on the 8.5, 10.5, 11.0, and main branches.

@sebastianbergmann sebastianbergmann changed the title PHPUnit\Framework\ExceptionWrapperTest::testNoOriginalExceptionInStacktrace() started failing with PHP 8.4 Test for PHPUnit 9.6 started failing with PHP 8.4 Mar 10, 2024
@nielsdos
Copy link

@sebastianbergmann That's the wrong commit. This once causes the failure: php/php-src@d6d3370 If I revert that one the test passes.
What that commit does is updating the debug dump of a WeakReference so the object itself is also shown (under the "object" entry in the output). It seems that your code does not expect this and therefore fails.

@sebastianbergmann
Copy link
Owner Author

@nielsdos Thank you, Nils, for looking into this. No idea why git-bisect pointed me to the wrong commit. I think I'll just delete the test.

sebastianbergmann added a commit that referenced this issue Mar 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/change-in-php-requires-adaptation A change in PHP requires a change so that existing PHPUnit functionality continues to work version/9 Something affects PHPUnit 9
Projects
None yet
Development

No branches or pull requests

2 participants