Мы создали общую платформу поточной обработки, чтобы справиться, как мы хотим использовать потоки в наших приложениях. Есть ли какие-либо платформы там как gtest или cppunit, которые только фокусируются на потоках поблочного тестирования, пулах потоков, распараллеливают очереди и такой?
Прямо сейчас я просто отчасти вручную прохожу некоторые шаги, что я знаю, что должен покрыть и сделать регистрации кода, чтобы удостовериться, что определенные условия соблюдены (как значения, не повреждаются b/c, к совместно используемому ресурсу получили доступ одновременно два или больше потока сразу), Если я не могу создать категорическую проверку, затем я ступаю через отладчик, но это кажется, что тестирует в 1990-х.
Я хотел бы более систематически протестировать функциональность платформы поточной обработки, поскольку это - внутренняя функциональность, которая не могла бы совпасть со всеми платформами поточной обработки, но я также хочу протестировать общую функциональность, которую должны иметь все платформы поточной обработки (как не заведение в тупик, данные не повреждения иначе рассчитывают, каковы они должны быть, и т.д....).
Любые предложения значительно ценились бы.
Если ваши потоки построены на OpenMP, вы можете использовать Vivamp для статической проверки.
Но вы хотите динамическую проверку с модульными тестами. Я не знаю о любых существующих рамках для этой цели. Вы можете катиться своим собственным с одним из множества тестовых структур единиц, но было бы трудно сделать его надежным. Intel есть набор параллельных инструментов разработки, которые могут представлять интерес, но я никогда не использовал их. Они говорят , что они могут помочь с модульными тестами из визуальной студии.
Если вы пишете библиотеку Threading, вы должны отладить ее самостоятельно. Резьбовые библиотеки не так много целей, как программы общего назначения = D, поэтому вы не найдете конкретную структуру тестирования единиц для вашей конкретной проблемы: D
после этого отказ от ответственности. Если у вас работают на Solaris / OSX или FreeBSD .... DTRace сделает его тривиальным для тестирования подразделения вашей библиотеки.