Спасибо!
Получается что сейчас мы не можем в деструкторе различить такие сценарии:
* skip_all()
* skip_all()
* $t->plan() после неудавшегося $t->run()
В обоих случаях expected_tests будет по нулям, но кажется что и нет смысла проверять логи на ошибки/алерты, и убирать проверку expected_tests не нужно.
17.09.2024, 16:53, "Sergey Kandaurov" <pluk...@nginx.com>:
On 11 Sep 2024, at 17:08, Оксана Деева <o.de...@wbsrv.ru> wrote:
Здравствуйте,
Столкнулась с такой проблемой: если в тесте plan() стоит после run() и nginx по какой-то причине не может стартовать, то деструктор нормально не отрабатывает - он запускается, но expected_tests везде по нулям и из-за этого мы не проверяем логи на ошибки/алерты (https://github.com/nginx/nginx-tests/blob/master/lib/Test/Nginx.pm#L67 и https://github.com/nginx/nginx-tests/blob/master/lib/Test/Nginx.pm#L85).
При этом, если просто в тесте переместить вызов plan() в начало, то все нормально отрабатывает, до всех проверок мы доходим - expected_tests не равен нулю, даже если nginx не смог стартануть (и это ожидаемое поведение).
Вопрос: зачем нужна проверка на expected_tests? Если был skip_all, то до деструктора и этой проверки мы вообще не доходим, если все тесты заскипались, то expected_tests не будет нулем. Больше никаких сценариев придумать не могу, и хотела бы убрать эту проверку, но интересно было бы услышать мнение автора.--
IIRC, исходно проверка была добавлена для skip_all, который стоит
после run(), как, например, в upstream_ip_hash.t:
$t->run();
plan(skip_all => ..);
$t->plan(N);
Иначе, при безусловном запуске, тест выполнится с нулевым планом
и математика не сойдётся.
Sergey Kandaurov
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru