> On 11 Sep 2024, at 17:08, Оксана Деева <o.deeva@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