Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent process fork #301

Closed
igrishaev opened this issue Aug 20, 2020 · 2 comments
Closed

Prevent process fork #301

igrishaev opened this issue Aug 20, 2020 · 2 comments
Assignees

Comments

@igrishaev
Copy link
Collaborator

Отдельная задача про форк из обсуждения #295

@igrishaev
Copy link
Collaborator Author

В этой задаче нужно написать тест, который проверяет, что мы не делаем форк.

Исходный коммент:

Да, случай с докером тоже в тему. И еще хотел добавить, что вариант с форком как-то не очень. Это происходит неявно и поэтому трудно расследовать. Кроме того, форк процессов не предусмотрен в винде, поэтому как поведет себя драйвер там, непонятно.

Мне кажется, мы должны вручную проверять доступность драйвера. Проще всего это сделать, постучавшись в указанный порт. Если он занят, то мы кидаем исключение с текстом, что нельзя поднять драйвер на этом порту. Это при условии, что порт задан явно. А если порт пустой, мы выбираем случайный порт.

Сценарий примерно такой

  • с помощью clojure.java.shell/sh или аналогов запускаем вручную драйвер
  • пытаемся вызвать (chrome...) с таким же портом
  • получаем исключение (is (?thrown...))
  • нового процесса не появилось

Сценарий на рандомный порт:

  • запускаем драйвер вручную
  • запускаем (chrome) без указания порта
  • исключения не было
  • теперь два процесса драйвера

По окончании тестов убивать процессы. Тесты должны быть в отдельном ns.

@igrishaev
Copy link
Collaborator Author

убивать проще через pkill chromedriver

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants