1 // Copyright 2009 Google Inc. All Rights Reserved. 2 3 4 #include "talk/base/gunit.h" 5 #include "talk/base/socket_unittest.h" 6 #include "talk/base/thread.h" 7 #include "talk/base/win32socketserver.h" 8 9 namespace talk_base { 10 11 // Test that Win32SocketServer::Wait works as expected. 12 TEST(Win32SocketServerTest, TestWait) { 13 Win32SocketServer server(NULL); 14 uint32 start = Time(); 15 server.Wait(1000, true); 16 EXPECT_GE(TimeSince(start), 1000); 17 } 18 19 // Test that Win32Socket::Pump does not touch general Windows messages. 20 TEST(Win32SocketServerTest, TestPump) { 21 Win32SocketServer server(NULL); 22 SocketServerScope scope(&server); 23 EXPECT_EQ(TRUE, PostMessage(NULL, WM_USER, 999, 0)); 24 server.Pump(); 25 MSG msg; 26 EXPECT_EQ(TRUE, PeekMessage(&msg, NULL, WM_USER, 0, PM_REMOVE)); 27 EXPECT_EQ(WM_USER, msg.message); 28 EXPECT_EQ(999, msg.wParam); 29 } 30 31 // Test that Win32Socket passes all the generic Socket tests. 32 class Win32SocketTest : public SocketTest { 33 protected: 34 Win32SocketTest() : server_(NULL), scope_(&server_) {} 35 Win32SocketServer server_; 36 SocketServerScope scope_; 37 }; 38 39 TEST_F(Win32SocketTest, TestConnectIPv4) { 40 SocketTest::TestConnectIPv4(); 41 } 42 43 TEST_F(Win32SocketTest, TestConnectIPv6) { 44 SocketTest::TestConnectIPv6(); 45 } 46 47 TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv4) { 48 SocketTest::TestConnectWithDnsLookupIPv4(); 49 } 50 51 TEST_F(Win32SocketTest, TestConnectWithDnsLookupIPv6) { 52 SocketTest::TestConnectWithDnsLookupIPv6(); 53 } 54 55 TEST_F(Win32SocketTest, TestConnectFailIPv4) { 56 SocketTest::TestConnectFailIPv4(); 57 } 58 59 TEST_F(Win32SocketTest, TestConnectFailIPv6) { 60 SocketTest::TestConnectFailIPv6(); 61 } 62 63 TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv4) { 64 SocketTest::TestConnectWithDnsLookupFailIPv4(); 65 } 66 67 TEST_F(Win32SocketTest, TestConnectWithDnsLookupFailIPv6) { 68 SocketTest::TestConnectWithDnsLookupFailIPv6(); 69 } 70 71 TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv4) { 72 SocketTest::TestConnectWithClosedSocketIPv4(); 73 } 74 75 TEST_F(Win32SocketTest, TestConnectWithClosedSocketIPv6) { 76 SocketTest::TestConnectWithClosedSocketIPv6(); 77 } 78 79 TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv4) { 80 SocketTest::TestConnectWhileNotClosedIPv4(); 81 } 82 83 TEST_F(Win32SocketTest, TestConnectWhileNotClosedIPv6) { 84 SocketTest::TestConnectWhileNotClosedIPv6(); 85 } 86 87 TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv4) { 88 SocketTest::TestServerCloseDuringConnectIPv4(); 89 } 90 91 TEST_F(Win32SocketTest, TestServerCloseDuringConnectIPv6) { 92 SocketTest::TestServerCloseDuringConnectIPv6(); 93 } 94 95 TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv4) { 96 SocketTest::TestClientCloseDuringConnectIPv4(); 97 } 98 99 TEST_F(Win32SocketTest, TestClientCloseDuringConnectIPv6) { 100 SocketTest::TestClientCloseDuringConnectIPv6(); 101 } 102 103 TEST_F(Win32SocketTest, TestServerCloseIPv4) { 104 SocketTest::TestServerCloseIPv4(); 105 } 106 107 TEST_F(Win32SocketTest, TestServerCloseIPv6) { 108 SocketTest::TestServerCloseIPv6(); 109 } 110 111 TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv4) { 112 SocketTest::TestCloseInClosedCallbackIPv4(); 113 } 114 115 TEST_F(Win32SocketTest, TestCloseInClosedCallbackIPv6) { 116 SocketTest::TestCloseInClosedCallbackIPv6(); 117 } 118 119 TEST_F(Win32SocketTest, TestSocketServerWaitIPv4) { 120 SocketTest::TestSocketServerWaitIPv4(); 121 } 122 123 TEST_F(Win32SocketTest, TestSocketServerWaitIPv6) { 124 SocketTest::TestSocketServerWaitIPv6(); 125 } 126 127 TEST_F(Win32SocketTest, TestTcpIPv4) { 128 SocketTest::TestTcpIPv4(); 129 } 130 131 TEST_F(Win32SocketTest, TestTcpIPv6) { 132 SocketTest::TestTcpIPv6(); 133 } 134 135 TEST_F(Win32SocketTest, TestUdpIPv4) { 136 SocketTest::TestUdpIPv4(); 137 } 138 139 TEST_F(Win32SocketTest, TestUdpIPv6) { 140 SocketTest::TestUdpIPv6(); 141 } 142 143 TEST_F(Win32SocketTest, TestGetSetOptionsIPv4) { 144 SocketTest::TestGetSetOptionsIPv4(); 145 } 146 147 TEST_F(Win32SocketTest, TestGetSetOptionsIPv6) { 148 SocketTest::TestGetSetOptionsIPv6(); 149 } 150 151 } // namespace talk_base 152