Re: Fwd: [PHP-CVS] com php-src: Fix tests I broke with the E_ERROR > E_RECOVERABLE_ERROR change: tests/output/ob_010.phpt tests/output/ob_011.phpt
tests/output/ob_start_error_005.phpt
| From: | Ferenc Kovacs | Date: | Mon, 29 Dec 2014 16:30:29 +0000 |
| Subject: | Re: Fwd: [PHP-CVS] com php-src: Fix tests I broke with the E_ERROR > E_RECOVERABLE_ERROR change: tests/output/ob_010.phpt tests/output/ob_011.phpt tests/output/ob_start_error_005.phpt |
||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-80005@lists.php.net to get a copy of this message | ||
On Mon, Dec 29, 2014 at 2:42 PM, Levi Morrison <levim@php.net> wrote:
> On Mon, Dec 29, 2014 at 6:17 AM, Levi Morrison <levim@php.net> wrote:
> > On Mon, Dec 29, 2014 at 3:22 AM, Stanislav Malyshev <smalyshev@gmail.com>
> wrote:
> >> Hi!
> >>
> >>> Hi Stas
> >>>
> >>> 2014-12-29 9:05 GMT+01:00 Stas Malyshev <smalyshev@gmail.com>:
> >>>> The CI tests still seem to be failing:
> >>>>
> >>>> =====================================================================
> >>>> FAILED TEST SUMMARY
> >>>> ---------------------------------------------------------------------
> >>>> SPL: spl_autoload() and friends [ext/spl/tests/spl_autoload_001.phpt]
> >>>> SPL: spl_autoload() with methods [ext/spl/tests/spl_autoload_005.phpt]
> >>>> SPL: spl_autoload() with inaccessible methods
> >>>> [ext/spl/tests/spl_autoload_007.phpt]
> >>>> SPL: spl_autoload() with exceptions
> [ext/spl/tests/spl_autoload_008.phpt]
> >>>> =====================================================================
> >>>>
> >>>> Please take a look.
> >>>
> >>> I looked at the tests and:
> >>>
> >>> * spl_autoload_001.phpt fails with an E_RECOVERABLE_ERROR but that is
> >>> not due to my patch (tests with and without)
> >>> * spl_autoload_005.phpt fails due to an E_STRICT (non-static method
> >>> called statically)
> >>> * spl_autoload_007.phpt fails due to same reason as
> >>> spl_autpload_001.phpt it seems
> >>> * spl_autoload_008.phpt fails due to an E_STRICT like
> spl_autoload_005.phpt
> >>
> >> You are right, looks like this is caused by
> >>
>
> https://github.com/php/php-src/commit/ad728725cb8e899a8415aa81db48825fac25e0d5
> >>
> >> Levi, could you please take a look and fix it?
> >
> > Indeed, looking. Perhaps I simply ran Zend/ tests instead of all by
> > accident; I apologize.
>
> The issue is obvious: I fixed the discrepancy between the docs and the
> ARG_INFO listed by requiring the first parameter to
> spl_autoload_register to be a callable. However, spl_autoload_register
> has a second parameter that says whether or not an exception should be
> thrown if it can't register the callback. Honestly, this is silly. Why
> are we emulating
callable types still when we have callable
> types?
>
> As far as I can tell, this second parameter is only useful when the
> first is not callable; as such it would be unused if we actually
> enforced the callable type like we normally would do. I want to keep
> the type in arg_info because
>
> 1) providing a non-callable type is a logical error even if you
> suppress it with $throw = false
> 2) and parameter types are the standard way of checking this, not some
> odd boolean as another parameter
>
> but
>
> 3) this would make the second parameter unused
> 4) and if we removed it that would be a signature break.
>
> Sadly, I think the best option is to revert the change. Anyone else
> have a comment on this?
>
I think it would be wise to revert the change for now, and either think
about a solution which wouldn't require a BC break, or create an rfc for it..
--
Ferenc Kovács
@Tyr43l - http://tyrael.hu