Уже пятый день бьюсь с корректной установка PHP + php-fpm.
После
#./configure
# make
делаю проверку
# make test
И получаю кучу ошибок -
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 57
Exts tested : 22
---------------------------------------------------------------------
Number of tests : 5811 4186
Tests skipped : 1625 ( 28.0%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 13 ( 0.2%) ( 0.3%)
Tests passed : 4173 ( 71.8%) ( 99.7%)
---------------------------------------------------------------------
Time taken : 337 seconds
==============================================
==============================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #16069 (ICONV transliteration failure) [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
Test array_diff_assoc() function : usage variations - strict string comparison check [ext/standard/tests/array/array_diff_assoc_variation6.phpt]
Test array_pad() function : usage variations - unexpected values for 'pad_size' argument(Bug#43482) [ext/standard/tests/array/array_pad_variation2.phpt]
Test closedir() function : usage variations - close a file pointer [ext/standard/tests/dir/closedir_variation3.phpt]
Test readdir() function : usage variations - empty directories [ext/standard/tests/dir/readdir_variation2.phpt]
Test readdir() function : usage variations - use file pointers [ext/standard/tests/dir/readdir_variation7.phpt]
Test rewinddir() function : basic functionality [ext/standard/tests/dir/rewinddir_basic.phpt]
Test rewinddir() function : usage variations - operate on a closed directory [ext/standard/tests/dir/rewinddir_variation2.phpt]
Test rewinddir() function : usage variations - file pointers [ext/standard/tests/dir/rewinddir_variation3.phpt]
proc_open [ext/standard/tests/general_functions/proc_open02.phpt]
Test bindec() - basic function test bindec() [ext/standard/tests/math/bindec_basic.phpt]
money_format test [ext/standard/tests/strings/moneyformat.phpt]
=====================================================================
Пробовал в Debian Stable и Testing, причем как c php, который идет с
Debian (с родным):
# $apt-get build-dep php5
# $apt-get source php5 (или dpkg-source -x php5-тра-ла-ла.dsc, если все файлы уже есть)
# $cd php5-тра-ла-ла
# export QUILT_PATCHES=debian/patches
# quilt push -a
# ./configure
# make
# make test
... так и с официальным php c php.net:
# wget php-5.2.6.tar.gz
# tar -jxvf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure
# make
# make test
В связи с этим вопрос - ЭТО ВООБЩЕ РЕАЛЬНО ПОЛУЧИТЬ PHP БЕЗ FAILED TEST
SUMMARY???
Ошибки возникают разные (в зависимости от дистрибутива и способа установки.
Я уже отчаялся получить нормальный php...
До патча php-fpm дело не доходит - для начала нужно хотя бы официальный
php без ошибок.
Поэтому вопрос немного не по теме, но мне интересно, как другие с этим
справляются?
Многие используют php из дистрибутива и вывода make test родного php не
видят.
Но когда пробуешь подлючить php-fpm - все сразу проявляется.
Может это допустимо использоваться php с подобными ошибками? Или я
что-то не так делаю?..
PS: интересно, каким дистрибутивом пользуются разработчики php? (и
php-fpm ;-)
PS2: make test официального php-5.2.6 на Debian Lenny:
=====================================================================
TEST RESULT SUMMARY
---------------------------------------------------------------------
Exts skipped : 57
Exts tested : 22
---------------------------------------------------------------------
Number of tests : 5811 4153
Tests skipped : 1658 ( 28.5%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 15 ( 0.3%) ( 0.4%)
Tests passed : 4138 ( 71.2%) ( 99.6%)
---------------------------------------------------------------------
Time taken : 444 seconds
=====================================================================
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #16069 (ICONV transliteration failure) [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
Test array_pad() function : usage variations - unexpected values for
'pad_size' argument(Bug#43482)
[ext/standard/tests/array/array_pad_variation2.phpt]
Test closedir() function : usage variations - close a file pointer
[ext/standard/tests/dir/closedir_variation3.phpt]
Test readdir() function : usage variations - empty directories
[ext/standard/tests/dir/readdir_variation2.phpt]
Test readdir() function : usage variations - use file pointers
[ext/standard/tests/dir/readdir_variation7.phpt]
Test rewinddir() function : basic functionality
[ext/standard/tests/dir/rewinddir_basic.phpt]
Test rewinddir() function : usage variations - operate on a closed
directory [ext/standard/tests/dir/rewinddir_variation2.phpt]
Test rewinddir() function : usage variations - file pointers
[ext/standard/tests/dir/rewinddir_variation3.phpt]
money_format test [ext/standard/tests/strings/moneyformat.phpt]
Test setlocale() function : basic functionality - setting system locale
to a specific [ext/standard/tests/strings/setlocale_basic1.phpt]
Test setlocale() function : basic functionality - set locale using an
array [ext/standard/tests/strings/setlocale_basic2.phpt]
Test setlocale() function : basic functionality - passing multiple
locales as argument [ext/standard/tests/strings/setlocale_basic3.phpt]
Test setlocale() function : usage variations - passing multiple
valid/invlaid locales as argument
[ext/standard/tests/strings/setlocale_variation1.phpt]
Test setlocale() function : usage variations - setting system locale = 0
[ext/standard/tests/strings/setlocale_variation3.phpt]
=====================================================================
Это нормально.
> Test array_diff_assoc() function : usage variations - strict string comparison check [ext/standard/tests/array/array_diff_assoc_variation6.phpt]
> Test array_pad() function : usage variations - unexpected values for 'pad_size' argument(Bug#43482) [ext/standard/tests/array/array_pad_variation2.phpt]
> Test closedir() function : usage variations - close a file pointer [ext/standard/tests/dir/closedir_variation3.phpt]
> Test readdir() function : usage variations - empty directories [ext/standard/tests/dir/readdir_variation2.phpt]
> Test readdir() function : usage variations - use file pointers [ext/standard/tests/dir/readdir_variation7.phpt]
> Test rewinddir() function : basic functionality [ext/standard/tests/dir/rewinddir_basic.phpt]
> Test rewinddir() function : usage variations - operate on a closed directory [ext/standard/tests/dir/rewinddir_variation2.phpt]
> Test rewinddir() function : usage variations - file pointers [ext/standard/tests/dir/rewinddir_variation3.phpt]
> proc_open [ext/standard/tests/general_functions/proc_open02.phpt]
> Test bindec() - basic function test bindec() [ext/standard/tests/math/bindec_basic.phpt]
Что в .diff ?
Каждый тест оставляет после себя файл .diff, пришлите его мне, я гляну.
Также нужно знать OS, архитектуру и т.п.
> money_format test [ext/standard/tests/strings/moneyformat.phpt]
Что в .diff?
Этот конкретный тест зависит от локали и некоторые braindead OS (смотрит в сторону MacOS)
его никогда не проходят из-за кривой локали.
> В связи с этим вопрос - ЭТО ВООБЩЕ РЕАЛЬНО ПОЛУЧИТЬ PHP БЕЗ FAILED TEST
> SUMMARY???
Прекратите истерику.
Это всего-лишь тесты, они тоже могут быть неправильные, неполные и просто кривые.
> Может это допустимо использоваться php с подобными ошибками? Или я
> что-то не так делаю?..
Ну конечно да.
Сообщать об этом надо, но бегать кругами и кричать "АААА!" не стоит.
> PS: интересно, каким дистрибутивом пользуются разработчики php?
Насколько мне известно, в основном Debian, MacOS, SuSe/openSuSe, Fedora, FreeBSD, Ubuntu
(отсортировано примерно по кол-ву человек).
--
Wbr,
Antony Dovgal
Это не бинарные диффы, это 10240 нулей.
> Подскажите, пожалуйста, как их смотреть? (тоже хочу убедиться, что все ОК)
Там должны быть обычные текстовые, хорошо читабельные диффы.
Пример:
# cat ext/standard/tests/strings/setlocale_variation2.diff
006+ Test FAILED
007+ Names of locale() for which setlocale() failed ...
008+ array(2) {
009+ [0]=>
010+ string(14) "hy_AM.armscii8"
011+ [1]=>
012+ string(19) "ja_JP.shiftjisx0213"
013+ }
006-
--
Wbr,
Antony Dovgal
On 11.10.2008 14:35, Vladislav wrote:
> Bug #16069 (ICONV transliteration failure) [ext/iconv/tests/bug16069.phpt]
> iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
Как я уже говорил, это нормально.
Вернее, эти тесты надо либо править, либо удалять, т.к. они зависят от
какой-то конкретной (судя по всему, очень древней) версии iconv.
В общем, пока игнорируйте это.
> Test array_diff_assoc() function : usage variations - strict string comparison check [ext/standard/tests/array/array_diff_assoc_variation6.phpt]
diff-а нет, видимо тест прошел?
> Test array_pad() function : usage variations - unexpected values for 'pad_size' argument(Bug#43482) [ext/standard/tests/array/array_pad_variation2.phpt]
Исправлено:
[3 Dec 2007 2:13pm UTC] il...@php.net
This bug has been fixed in CVS.
> Test closedir() function : usage variations - close a file pointer [ext/standard/tests/dir/closedir_variation3.phpt]
> Test readdir() function : usage variations - use file pointers [ext/standard/tests/dir/readdir_variation7.phpt]
> Test rewinddir() function : usage variations - file pointers [ext/standard/tests/dir/rewinddir_variation3.phpt]
Это всё одна проблема (некритичная), которая была исправлена уже после 5.2.6.
> Test readdir() function : usage variations - empty directories [ext/standard/tests/dir/readdir_variation2.phpt]
004+ string(2) ".."
005- string(2) ".."
Разница только в номерах строк.
Уже исправлено..
> Test rewinddir() function : basic functionality [ext/standard/tests/dir/rewinddir_basic.phpt]
Порядок файлов при чтении важен =[
Тест уже исправлен, правда.
> Test rewinddir() function : usage variations - operate on a closed directory [ext/standard/tests/dir/rewinddir_variation2.phpt]
Кривой тест, уже исправлен.
> proc_open [ext/standard/tests/general_functions/proc_open02.phpt]
> Test bindec() - basic function test bindec() [ext/standard/tests/math/bindec_basic.phpt]
Не получил diff-а.
> money_format test [ext/standard/tests/strings/moneyformat.phpt]
Кривая OS/локаль ?
001+ string(6) "X3.14Y"
001- string(7) "X$3.14Y"
man strfmon говорит:
n One argument of type double is converted using the locale's national currency format.
в тесте используется money_format("X%nY", 3.1415) (что равноценно strfmon(.., .., "X%nY", 3.1415),
при этом локаль устанавливается в en_US.
Куда исчез знак доллара?
--
Wbr,
Antony Dovgal
Ок, получил диффы.
Test array_diff_assoc() function : usage variations - strict string comparison check [ext/standard/tests/array/array_diff_assoc_variation6.phpt]diff-а нет, видимо тест прошел?
Test array_pad() function : usage variations - unexpected values for 'pad_size' argument(Bug#43482) [ext/standard/tests/array/array_pad_variation2.phpt]Исправлено: [3 Dec 2007 2:13pm UTC] il...@php.net This bug has been fixed in CVS.
Test closedir() function : usage variations - close a file pointer [ext/standard/tests/dir/closedir_variation3.phpt] Test readdir() function : usage variations - use file pointers [ext/standard/tests/dir/readdir_variation7.phpt] Test rewinddir() function : usage variations - file pointers [ext/standard/tests/dir/rewinddir_variation3.phpt]Это всё одна проблема (некритичная), которая была исправлена уже после 5.2.6.
proc_open [ext/standard/tests/general_functions/proc_open02.phpt] Test bindec() - basic function test bindec() [ext/standard/tests/math/bindec_basic.phpt]Не получил diff-а.
money_format test [ext/standard/tests/strings/moneyformat.phpt]Кривая OS/локаль ?
001+ string(6) "X3.14Y"
001- string(7) "X$3.14Y"
man strfmon говорит:
n One argument of type double is converted using the locale's national currency format.
в тесте используется money_format("X%nY", 3.1415) (что равноценно strfmon(.., .., "X%nY", 3.1415),
при этом локаль устанавливается в en_US.
Куда исчез знак доллара?
Я думаю, вам проще будет взять снапшот: http://snaps.php.net
Берите php-5.2-dev
>> в тесте используется money_format("X%nY", 3.1415) (что равноценно strfmon(.., .., "X%nY", 3.1415),
>> при этом локаль устанавливается в en_US.
>> Куда исчез знак доллара?
>>
> Не знаю, может баг-репорт написать в Debian. Только я не знаю как. ;-(
Попробуйте собрать вот этот код:
-------strfmon_test.c-------
#include <stdio.h>
#include <locale.h>
#include <monetary.h>
int main() {
char buf[32];
char *res;
res = setlocale(LC_MONETARY, "en_US");
if (!res) {
printf("setlocale(en_US) failed\n");
}
strfmon(buf, 32, "X%nY", 3.1415);
printf("%s\n", buf);
return 0;
}
----------------------------
# gcc strfmon_test.c -o strfmon_test
# ./strfmon_test
Если в результате выводится что-то отличное от "X$3.14Y", то проблема в локали или системе.
Видимо, вам сюда: http://www.debian.org/Bugs/Reporting
Можно для подтверждения попробовать тот же код на других системах.
> *PS*: Большое спасибо за ответы. Хоть что-то прояснилось.
> Если не трудно, дайти pls url, по которому вы узнаете - какой баг уже пофиксен,
> а где просто некорректный тест.
Я смотрел в CVS и в баг-тракере + что-то я просто помню.
http://cvs.php.net/viewvc.cgi/php-src/
http://bugs.php.net
--
Wbr,
Antony Dovgal
в тесте используется money_format("X%nY", 3.1415) (что равноценно strfmon(.., .., "X%nY", 3.1415), при этом локаль устанавливается в en_US. Куда исчез знак доллара?Не знаю, может баг-репорт написать в Debian. Только я не знаю как. ;-(
Попробуйте собрать вот этот код:
-------strfmon_test.c-------
#include <stdio.h>
#include <locale.h>
#include <monetary.h>
int main() {
char buf[32];
char *res;
res = setlocale(LC_MONETARY, "en_US");
if (!res) {
printf("setlocale(en_US) failed\n");
}
strfmon(buf, 32, "X%nY", 3.1415);
printf("%s\n", buf);
return 0;
}
----------------------------
# gcc strfmon_test.c -o strfmon_test
# ./strfmon_test
Если в результате выводится что-то отличное от "X$3.14Y", то проблема в локали или системе.,
Вывод программы:а в PHP что получается если сделать:
var_dump(setlocale(LC_MONETARY, 'en_US'));
?
--
Wbr,
Antony Dovgal
On 12.10.2008 23:58, Vladislav wrote:Подскажите, если из CVS скачать php, то это будет та же версия? 5.2.6?Я думаю, вам проще будет взять снапшот: http://snaps.php.net Берите php-5.2-dev
да, всё так и должно быть.
> Test array_pad() function : usage variations - unexpected values for 'pad_size'
> argument(Bug#43482) [ext/standard/tests/array/array_pad_variation2.phpt]
> Test array_slice() function : usage variations - Pass different data types as
> $offset arg [ext/standard/tests/array/array_slice_variation2.phpt]
> Test array_slice() function : usage variations - Pass different data types as
> $length arg [ext/standard/tests/array/array_slice_variation3.phpt]
> money_format test [ext/standard/tests/strings/moneyformat.phpt]
не могу воспроизвести.
может быть, потому что у меня 64bit?
--
Wbr,
Antony Dovgal