2016-02-19 1 views
3

У меня есть серийный код, который я хочу проверить на безопасность потоков. Я использую платформу тестирования Google для своих модульных тестов. Как я могу назвать эти модульные тесты несколькими потоками, чтобы проверить, безопасны ли функции для вызова из нескольких потоков?Как использовать Google тест с потоками

ответ

3

Google Test не имеет какой-либо конкретной функции для проверки безопасности потоков.

Вы всегда можете развернуть свои собственные потоки, работающие над вашим кодом одновременно и после их присоединения, проверьте, чтобы некоторые данные имели согласованное значение.

В качестве примера я проверил потокобезопасную очередь, выполнив два потока для производителя и потребителя, где производитель вставляет фиксированное количество элементов в очередь, а потребитель настроен на извлечение того же количества элементов. Когда оба потока завершены, я проверяю, что очередь пуста, а потребитель - для хранения списка элементов в правильном порядке.