2010-01-13 14 views
6

Hemos creado un marco de enhebrado común para administrar cómo queremos usar los hilos en nuestras aplicaciones. ¿Hay marcos como gtest o cppunit que se centren exclusivamente en los hilos de prueba de unidades, grupos de hilos, colas de hilos y demás?¿Existen marcos de pruebas unitarias automatizadas para probar un marco interno de enhebrado?

En este momento simplemente realizo algunos pasos que sé que debo cubrir y verifico el código para asegurarme de que se cumplen ciertas condiciones (como que los valores no están dañados b/ca se accedió al recurso compartido simultáneamente por dos o más hilos a la vez) Si no puedo crear un control definitivo, paso por el depurador, pero parece que está probando en la década de 1990.

Me gustaría probar más sistemáticamente la funcionalidad del marco de subprocesamiento para su funcionalidad interna que podría no ser la misma que todos los marcos de subprocesamiento, pero también quiero probar la funcionalidad común que todos los marcos de subprocesamiento deberían tener (como no enclavamiento , no corromper los datos también conocidos como lo que deberían ser, etc.).

Cualquier sugerencia sería muy apreciada.

Respuesta

1

Si los hilos están construidas sobre OpenMP, puede utilizar VivaMP para la comprobación estática.

Pero desea control dinámico con pruebas unitarias. No estoy al tanto de ningún marco existente para este propósito. Podrías tirar los tuyos propios con uno de los muchos frameworks de pruebas unitarias, pero sería difícil hacerlo robusto. Intel tiene un conjunto de herramientas de desarrollo paralelo que pueden ser de interés, pero nunca las he usado. They say que pueden ayudar con las pruebas unitarias desde Visual Studio.

+0

Intel Parallel Studio funciona bien, pero es una lástima que sea $ 800 + para obtener una versión sin evaluación. –

1

Si se escribe una librería de hilos que hay que depurar usted mismo. bibliotecas de roscado no son tan de uso general como los programas de propósito general = D por lo que no van a encontrar un marco de pruebas de unidad específica para su problema específico: D

Después de esa advertencia sin embargo. Si estuviera ejecutando Solaris/OSX o FreeBSD .... dtrace, sería trivial probar la biblioteca por su cuenta.

Cuestiones relacionadas