Edit report at https://bugs.php.net/bug.php?id=60981&edit=1

 ID:                 60981
 Patch added by:     tyr...@php.net
 Reported by:        david at davidfavor dot com
 Summary:            Shell environment inaccessible in tests
 Status:             Assigned
 Type:               Bug
 Package:            Testing related
 Operating System:   Ubuntu 11.10
 PHP Version:        5.3.10
 Assigned To:        danielc
 Block user comment: N
 Private report:     N

 New Comment:

The following patch has been added/updated:

Patch Name: run-tests.php.diff
Revision:   1328630230
URL:        
https://bugs.php.net/patch-display.php?bug=60981&patch=run-tests.php.diff&revision=1328630230


Previous Comments:
------------------------------------------------------------------------
[2012-02-07 15:55:42] tyr...@php.net

"--d variable_orders=EGPCS to run-tests"
if you mean adding that to Makefile.global (the Makefile template, which will 
run run-tests.php when you execute make test) then yeah, it is an elegant 
solution, but I think it would be better to fix run-tests.php itself, so for 
those who call it directly (half of the core/qa people...) will also be fixed.
Pierre told me that there is no clean way to fetch all environment vars from a 
php script if $_ENV isn't populated (you could parse it from the output of 
phpinfo() but that would be error-prone and messy).
So I would propose calling another php instance and fetching the environment 
variables from there using shell_exec.
See the attached patch.
(If somebody has a better idea, I'm all for it.)

------------------------------------------------------------------------
[2012-02-07 15:20:06] david at davidfavor dot com

Seems like adding --d variable_orders=EGPCS to run-tests is the most elegant.

What the next step to arrange for this bug to be fixed?

Also I notice there are 4 failures in the mysqli tests. Let me know how to 
register as a developer with php.net and I'll figure these out and supply 
patches to fix the test suite.

Thanks.

------------------------------------------------------------------------
[2012-02-07 15:03:35] tyr...@php.net

'Both php.ini-production and php.ini-development contain "GPCS".'
the default value means that what is the value if you don't set it any way 
(having 
no php.ini or using php -n for example)
unfortunately the default values and our developer/production inis aren't in 
sync, 
I brought that issue up on the mailing list in the past:
http://www.mail-archive.com/internals@lists.php.net/msg52262.html

------------------------------------------------------------------------
[2012-02-07 14:59:11] jpa...@php.net

I confirm that getenv() works regardless any .ini config.
It proxies to SAPI/system getenv()

------------------------------------------------------------------------
[2012-02-07 14:30:43] tyr...@php.net

the problem is that the run-tests.php fetches the environment variables from 
$_ENV
http://svn.php.net/viewvc/php/php-src/trunk/run-tests.php?view=markup#l134
then passes the environment variables to the system_with_timeout call (which 
will 
proc_open using those environment variables).
so there is no documentation issue, only run-tests.php needs a change to either 
force the variable_orders to contain E(we could pass the --d 
variable_orders=EGPCS 
in the run-tests.php call in http://svn.php.net/viewvc/php/php-
src/trunk/Makefile.global) or changing run-tests.php to not use the $_ENV array 
for fetching all the environment vars.

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=60981


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60981&edit=1

Reply via email to