Bug #55541 [Opn->Csd]: errors spawn MessageBox, which blocks test automation
| From: | ab@php.net | Date: | Wed, 03 Dec 2014 15:50:28 +0000 |
| Subject: | Bug #55541 [Opn->Csd]: errors spawn MessageBox, which blocks test automation | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-188899@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=55541&edit=1
ID: 55541
Updated by: ab@php.net
Reported by: yaauie@php.net
Summary: errors spawn MessageBox, which blocks test
automation
-Status: Open
+Status: Closed
Type: Bug
Package: Output Control
Operating System: Win32
PHP Version: trunk-SVN-2011-08-30 (snap)
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of ab
Revision: http://git.php.net/?p=php-src.git;a=commit;h=65fce7f9504036c561a97168d7759e01755ae31d
Log: Fixed bug #55541 errors spawn MessageBox, which blocks test automation
Previous Comments:
------------------------------------------------------------------------
[2014-12-03 15:02:18] ab@php.net
See also bug #30760. While not directly related, the same issue with MessageBox blocking execution.
------------------------------------------------------------------------
[2014-12-03 14:59:32] ab@php.net
Related To: Bug #61433
------------------------------------------------------------------------
[2011-08-30 20:21:00] yaauie@php.net
Description:
------------
Calls to the Win32 API MessageBox block automated testing. When the automation
is spawned by a timed script, that script does not have access to the UI to
close these messages.
3 places where MessageBox is called:
Zend/zend_ini_parser.y:179 - instead of printing an INI parse error to stderr,
*always* when PHP_WIN32 is defined. This means that the test suite does not
catch the error on Windows machines (example parse error directive `php -n -d
foo="a=href"`) and execution of automated tests is blocked until a user can
click through.
- example
main/main.c:984 - in addition to other logging, but only if
display_startup_errors is true and the error type is either E_CORE_WARNING or
E_CORE_ERROR.
- since display_startup_errors is set to true by the testing suite (and is
required for many tests to pass), I cannot disable it. Perhaps a new ini
directive should be created instead of having this one overloaded?
sapi/cgi/cgi_main.c:1768 - only when PHP_DEBUG is defined. I don't have a big
problem with this, since it is debug code, but perhaps it too could be governed
by an ini directive.
Test script:
---------------
pass a deliberately-defective ini directive:
php -n -d a=b=c -v
Expected result:
----------------
--STDERR--
php: syntax error, unexpected '=' in Unknown on line 7
--STDOUT--
PHP 5.5.0-dev (cli) (built: Aug 30 2011 18:14:14)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies
Actual result:
--------------
--BLOCKING-MESSAGEBOX--
---------------------------
PHP Error
---------------------------
syntax error, unexpected '=' in Unknown on line 7
---------------------------
OK
---------------------------
--STDERR--(nothing)
--STDOUT--
PHP 5.5.0-dev (cli) (built: Aug 30 2011 18:14:14)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2011 Zend Technologies
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55541&edit=1