2010-01-13 5 views
6

Stworzyliśmy wspólną strukturę wątków, aby zarządzać sposobem, w jaki chcemy używać wątków w naszych aplikacjach. Czy istnieją jakieś frameworki takie jak gtest lub cppunit, które koncentrują się wyłącznie na wątkach testujących jednostki, pulach wątków, kolejkach wątków i innych?Czy istnieją zautomatyzowane platformy testujące jednostki do testowania wewnętrznej struktury wątków?

Właśnie przechodzę przez kilka kroków, które wiem, że powinienem pokryć i sprawdzam w kodzie, aby upewnić się, że spełnione są pewne warunki (np. Wartości nie są uszkodzone b/ca udostępniono zasób współdzielony jednocześnie przez dwa lub więcej wątków naraz) Jeśli nie jestem w stanie stworzyć ostatecznego sprawdzenia, to przechodzę przez debuggera, ale wygląda na to, że testowałem w latach 90-tych.

Chciałbym bardziej systematycznie testować funkcjonalność struktury wątków pod kątem jej wewnętrznej funkcjonalności, która może nie być taka sama, jak w przypadku wszystkich struktur wątków, ale chcę również przetestować wspólną funkcjonalność, którą powinny mieć wszystkie struktury wątków (np. , nie uszkadzając danych liczy się liczba, itd.).

Wszelkie sugestie będą mile widziane.

Odpowiedz

1

Jeśli twoje wątki są zbudowane na OpenMP, możesz użyć sprawdzania statycznego jako VivaMP.

Ale chcesz dynamiczne sprawdzanie za pomocą testów jednostkowych. Nie znam żadnych istniejących ram dla tego celu. Można przetasować własne z jedną z wielu frameworków do testów jednostkowych, ale trudno byłoby to zrobić solidnie. Intel ma zestaw równoległych narzędzi programistycznych, które mogą być interesujące, ale nigdy ich nie użyłem. They say, które mogą pomóc w testach jednostkowych z programu Visual Studio.

+0

Intel Parallel Studio działa dobrze, ale szkoda, że ​​kosztuje $ 800 +, aby uzyskać wersję bez oceny. –

1

Jeśli piszesz bibliotekę wątków, musisz sam ją debugować. Biblioteki wątków nie są tak ogólne, jak programy ogólnego przeznaczenia = D, więc nie znajdziesz konkretnej platformy testowej dla konkretnego problemu: D

Po tym zastrzeżeniu. Jeśli używasz systemu Solaris/OSX lub FreeBSD ... dtrace może sprawić, że testowanie twojej biblioteki będzie trywialne.