Edit report at https://bugs.php.net/bug.php?id=60981&edit=1
ID: 60981
Comment by: tyrael@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 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.
Previous Comments:
------------------------------------------------------------------------
[2012-02-07 14:18:14] tyrael@php.net
AFAIK getenv does work independently from variable_orders:
foo=bar php -d variables_order=GPC -r 'echo $_ENV["foo"];echo
getenv("foo");'
outputs "bar" for me, so it works.
Tyrael
------------------------------------------------------------------------
[2012-02-07 14:11:31] david at davidfavor dot com
That works...
So there are two doc errors...
#1) http://php.net/manual/en/reserved.variables.environment.php
contains
comments
that getenv() returns environment variables, independent of variable_orders
setting. I've submitted a note to clarify this.
#2 http://php.net/manual/en/ini.core.php states
variables_order default setting
is "EGPCS", which is incorrect.
Both php.ini-production and php.ini-development contain "GPCS".
Best to fix both php.ini files so they match the docs.
Let me know if I should open another bug request for the doc change.
Thanks for helping me get this to work!
------------------------------------------------------------------------
[2012-02-06 21:30:59] sixd@php.net
Try adding E to php.ini's variables_order.
------------------------------------------------------------------------
[2012-02-06 20:12:20] david at davidfavor dot com
export var=foo is the same as sourcing a file that includes...
export var=foo
Problem is no shell environment is reaching the test scripts.
Please suggest a way to turn off clearing of the environment.
------------------------------------------------------------------------
[2012-02-05 19:00:29] danielc@php.net
The environment variables need to be established in a scope available all shell scripts. For
example, them in the ~/.bashrc script of the user executing "make test".
Set the variables in ~/.bashrc
source ~/.bashrc
make test ....
The "source" step is only necessary in the first shell since the variables were not
available when the shell was opened. All future shells will have them.
------------------------------------------------------------------------
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