Если вы запускаете тест изолированно, и он работает, при выполнении этого теста без изоляции (с другими тестами) и он терпит неудачу, то "что-то" происходит с состоянием вашей тестовой программы и это необходимо исправить. .
Например,
- утечка памяти в других тестах, которая влияет на этот,
- тот факт, что вы запустили слишком много потоков, не дожидаясь их завершения (например, что я вижу в вашем фрагменте),
- et c.
Это не совсем проблема Boost.Test, Boost.Test просто показывает вам, что где-то в программе есть (довольно большая) проблема. Чтобы решить эту проблему, нужно запускать что-то изолированно, возможно, много раз, чтобы, например, вы действительно могли наблюдать возросшую потребность в памяти или даже ошибку sh. Boost.Test изо всех сил пытается смягчить эти сбои (перехватывает сигналы операционных систем) и, в зависимости от операционной системы, показывает утечки памяти, но это не магия c.
Другой способ изолировать проблему - это используйте другие программы, такие как valgind
или asan
/ tsan
.
Последняя возможность состоит в том, что "script.sh"
съедает всю память вашей операционной системы.