On Mon, Nov 28, 2011 at 2:44 PM, Derick Rethans <der...@php.net> wrote:
> On Mon, 28 Nov 2011, Richard Quadling wrote: > > > On 28 November 2011 13:36, Derick Rethans <der...@php.net> wrote: > > > On Mon, 28 Nov 2011, Ferenc Kovacs wrote: > > > > > >> On Mon, Nov 28, 2011 at 2:11 PM, Derick Rethans <der...@php.net> > wrote: > > >> > > >> > I'm currently writing a shared extension thta depends on another > > >> > shared extension (igbinary). "make test" doesn't handle this at the > > >> > moment, because it removes every extension= line from it's temporary > > >> > php.ini. This means that the dependent extension (igbinary) now > > >> > isn't loaded, which means my extension doesn't load either and > > >> > obviously all the tests fail. > > >> > > > >> > I've attached a patch that adds a new --EXTENSIONS-- section to the > > >> > PHPT format. The run-tests.php script makes sure that all extensions > > >> > in that last are added to the PHP command with -dextension=... , but > > >> > only if they're not build in (or already loaded in some other way). > > >> > > > >> > The patch is simple, and it doesn't touch any other section or > > >> > functionality so I'm suggesting to commit it to PHP 5.3/5.4 and > > >> > trunk some time soon. > > >> > > >> wouldn't --INI-- + extension do the same? > > > > > > No, as the run-tests.php framework changes "extension_dir" to > > > "./modules/". It would also cause issues if you try to load an > extension > > > that is built-in. And it's not portable because not on every platform > > > the extension name = extension.so > > > > Can you use PHP_SHLIB_SUFFIX? > > I am using that in my patch, but obviously that doesn't work with > extension= on the command line, which is how run-tests.php passes in > arguments from --INI--. > > derick@whisky:~$ php -dextension=igbinary.PHP_SHLIB_SUFFIX > PHP Warning: PHP Startup: Unable to load dynamic library > '/usr/local/php/5.3dev/lib/php/extensions/debug-non-zts-20090626/igbinary.PHP_SHLIB_SUFFIX' > - > /usr/local/php/5.3dev/lib/php/extensions/debug-non-zts-20090626/igbinary.PHP_SHLIB_SUFFIX: > cannot open shared object file: No such file or directory in Unknown on > line 0 thanks for the answer, in this case I think this would be a worthwhile improvement. + foreach ($extensions as $req_ext) { + $loaded = `$php -n -r 'echo (int) extension_loaded("$req_ext");'`; + if ($loaded == '0') { it would be more efficient to get all the loaded modules at once(get_loaded_extensions or php -m) -- Ferenc Kovács @Tyr43l - http://tyrael.hu