причина неудачи теста очевидна:
ПРИЧИНА XFAIL: ошибка PHP # 76046 : PHP генерирует код операции "FE_FREE" в неправильной строке.
вам нужно будет исправить zend_compile.c
в исходном коде PHP (или дождаться исправленной версии).без исправления zend_compile.c
результаты тестового покрытия могут быть неточными, но, тем не менее, обычная отладка должна работать.make test
не будет проверять это, когда xdebug
не будет частично полагаться на него (в заголовке теста даже явно указывается, почему он проверяет наличие ошибки).вот diff , который добавляет CG(zend_lineno) = ast->lineno;
.это «исправляет проблему на 100%», а не только ее симптомы:
index f1dd49a..9c0893b 100644 (file)
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4807,6 +4807,7 @@ void zend_compile_foreach(zend_ast *ast) /* {{{ */
zend_end_loop(opnum_fetch, &reset_node);
+ CG(zend_lineno) = ast->lineno;
opline = zend_emit_op(NULL, ZEND_FE_FREE, &reset_node, NULL);
}
/* }}} */
эта ошибка затрагивает PHP 7.0, 7.1, 7.2 - PHP 5.x по крайней мере не сообщалось.поскольку это не ошибка xdebug
, установка даже при неудачном тесте не должна сделать ничего хуже, чем это уже есть.для установки xdebug
, это не sudo make test
, а make && sudo make install
(только make install
требуется sudo
).