diff options
author | Sara Golemon <pollita@php.net> | 2017-05-24 12:41:57 -0700 |
---|---|---|
committer | Sara Golemon <pollita@php.net> | 2017-05-24 13:58:18 -0700 |
commit | d8d1c78ed08423738376adc450aba3932b33a20e (patch) | |
tree | 9b1f755b54c98419aa518509279fd5c76e0d5235 | |
parent | 7c7383067f6719324004407e17c0f5d6c740c39f (diff) | |
download | php-git-d8d1c78ed08423738376adc450aba3932b33a20e.tar.gz |
Skip FPM tests when running as root (unless requested)
FPM must be configured as a user.
Normally it defaults to the current user,
but if that's root it'll fail to startup
unless the --run-as-root option is provided.
Extend that logic into the test runner so that
we don't fail for stupid reasons.
If you're running `make test` as root and you want
FPM tests to run anyway, set TEST_FPM_RUN_AS_ROOT=1
in your environment.
-rw-r--r-- | sapi/fpm/tests/include.inc | 5 | ||||
-rw-r--r-- | sapi/fpm/tests/skipif.inc | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/sapi/fpm/tests/include.inc b/sapi/fpm/tests/include.inc index 8faf53dcc2..1e41957c7c 100644 --- a/sapi/fpm/tests/include.inc +++ b/sapi/fpm/tests/include.inc @@ -38,7 +38,10 @@ function run_fpm($config, &$out = false, $extra_args = '') /* {{{ */ /* Since it's not possible to spawn a process under linux without using a * shell in php (why?!?) we need a little shell trickery, so that we can * actually kill php-fpm */ - $fpm = proc_open('killit () { kill $child; }; trap killit TERM; '.get_fpm_path().' -F -O -y '.$cfg.' '.$extra_args.' 2>&1 & child=$!; wait', $desc, $pipes); + $asroot = getenv('TEST_FPM_RUN_AS_ROOT') ? '--allow-to-run-as-root' : ''; + $cmd = get_fpm_path()." $asroot -F -O -y $cfg $extra_args"; + $fpm = proc_open("killit () { kill \$child; }; trap killit TERM; $cmd 2>&1 & child=\$!; wait", + $desc, $pipes); register_shutdown_function( function($fpm) use($cfg) { @unlink($cfg); diff --git a/sapi/fpm/tests/skipif.inc b/sapi/fpm/tests/skipif.inc index 8c569daafd..08c6bbff69 100644 --- a/sapi/fpm/tests/skipif.inc +++ b/sapi/fpm/tests/skipif.inc @@ -4,10 +4,14 @@ if (substr(PHP_OS, 0, 3) == 'WIN') { die ("skip not for Windows"); } + +if (!getmyuid() && !getenv('TEST_FPM_RUN_AS_ROOT')) { + die('Refusing to run as root'); +} + include dirname(__FILE__)."/include.inc"; if (!get_fpm_path()) { die("skip FPM not found"); } - ?> |