The unit test is broken/never executed because of the following three reasons:
1. TQTcpServerTest::test_communicate() needs to be declared as Qt slot, otherwise the QTest-framework would never execute it. This explains why the unit test always succeeded
2. The server and synchronous client cannot be executed in the same thread, as the server requires the mainloop to run
3. The expected response from the server is "foo, bar" and not "foo, foo".