2012-06-28 14 views
10

Piszę mały serwer XMPP używając boost :: asio i chcę przetestować mój kod. Pytania:Testowanie i zwiększanie wydajności :: asio

  1. Czy są dostępne gotowe do tego ramy? O ile rozumiem, muszę dostarczyć fałszywe obiekty dla boost :: asio classes/templates i naprawdę chcę zrobić to (semi) automatycznie.
  2. Czy można przetestować współbieżność (na przykład wiele połączeń z serwerem i routing wiadomości między nimi)?

Odpowiedz

6

1) Napisałem małą klasę gniazda, która może być użyta jako zamiennik dla boost :: asio :: ip :: tcp :: socket. Jeśli chcesz, możesz rzucić okiem na robitzki.de/test_socket.h (test_socket.cpp, test_io_plan.h i test_io_plan.cpp). W zależności od zastosowanego konstruktora gniazdo może symulować odczytywanie/zapisywanie porcji o różnych rozmiarach. Błędy mogą być również symulowane. Możesz go używać, jeśli chcesz.

2) Wraz z wymianą gniazda można zbudować testy warunków skrajnych dla testowanego oprogramowania. To nigdy nie zagwarantuje, że kod nie zawiera błędów, ale jest lepszy niż nic ;-). Osobiście lubię recenzje kodu najlepiej, aby upewnić się, że kod wielowątkowy zawiera jak najmniej błędów.

HTH

Torsten

+0

Witam, Szukałem w Boost :: asio testów jednostkowych, jak również i znalezieniu test_socket.h, jestem borrwing go, jeśli nie przeszkadza :) – dutt

+3

@dutt Możesz go używać. Zajrzyj na https://github.com/TorstenRobitzki/Sioux/tree/master/source/asio_mocks, gdzie próbowałem umieścić to w formie wielokrotnego użytku. –

+0

Dzięki, popatrzę :) Dokonałem tutaj drobnych modyfikacji, aby spełnić moje potrzeby. – dutt

Powiązane problemy