Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Unified Diff: net/udp/udp_socket_unittest.cc

Issue 12684008: Multicast socket API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disable multicast test on android Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/udp/udp_socket_unittest.cc
diff --git a/net/udp/udp_socket_unittest.cc b/net/udp/udp_socket_unittest.cc
index 09a28063f2050bd158d84808032946c1d1c282ff..92e4e47306ca32ef7c78622dacb3d3cb65ff31a8 100644
--- a/net/udp/udp_socket_unittest.cc
+++ b/net/udp/udp_socket_unittest.cc
@@ -526,6 +526,58 @@ TEST_F(UDPSocketTest, CloseWithPendingRead) {
EXPECT_FALSE(callback.have_result());
}
+#if defined(OS_ANDROID)
+// Some Android devices does not support multicast socket.
wtc 2013/04/22 19:19:53 Typo: does not => do not socket => sockets
Bei Zhang 2013/04/23 17:26:53 Done.
+// Ones supporting multicast need WifiManager.MulitcastLock to enable it.
wtc 2013/04/22 19:19:53 Typo: Ones => The ones
Bei Zhang 2013/04/23 17:26:53 Done.
+// http://goo.gl/jjAk9
+TEST_F(UDPSocketTest, DISABLED_JoinMulticastGroup) {
+#else
+TEST_F(UDPSocketTest, JoinMulticastGroup) {
+#endif // defined(OS_ANDROID)
wtc 2013/04/22 19:19:53 This is usually done as follows: #if defined(OS_A
Bei Zhang 2013/04/23 17:26:53 Done.
+ const int kPort = 9999;
+ const char* const kGroup = "237.132.100.17";
+
+ IPEndPoint bind_address;
+ CreateUDPAddress("0.0.0.0", kPort, &bind_address);
+ IPAddressNumber group_ip;
+ EXPECT_TRUE(ParseIPLiteralToNumber(kGroup, &group_ip));
+
+ UDPSocket socket(DatagramSocket::DEFAULT_BIND,
+ RandIntCallback(),
+ NULL,
+ NetLog::Source());
+ EXPECT_EQ(OK, socket.Bind(bind_address));
+ EXPECT_EQ(OK, socket.JoinGroup(group_ip));
+ // Joining group multiple times.
+ EXPECT_NE(OK, socket.JoinGroup(group_ip));
wtc 2013/04/22 19:19:53 Why can't we check for a specific error code here
Bei Zhang 2013/04/23 17:26:53 The setsockopt function creates different errno on
wtc 2013/04/23 18:01:07 It is not necessary to get a consistent error code
+ EXPECT_EQ(OK, socket.LeaveGroup(group_ip));
+ // Leaving group multiple times.
+ EXPECT_NE(OK, socket.LeaveGroup(group_ip));
+
+ socket.Close();
+}
+
+TEST_F(UDPSocketTest, MulticastOptions) {
+ const int kPort = 9999;
+ IPEndPoint bind_address;
+ CreateUDPAddress("0.0.0.0", kPort, &bind_address);
+
+ UDPSocket socket(DatagramSocket::DEFAULT_BIND,
+ RandIntCallback(),
+ NULL,
+ NetLog::Source());
+ // Before binding.
+ EXPECT_EQ(OK, socket.SetMulticastLoopbackMode(false));
+ EXPECT_EQ(OK, socket.SetMulticastLoopbackMode(true));
+ EXPECT_EQ(OK, socket.SetMulticastTimeToLive(0));
+ EXPECT_EQ(OK, socket.SetMulticastTimeToLive(3));
+ EXPECT_NE(OK, socket.SetMulticastTimeToLive(-1));
+
+ EXPECT_EQ(OK, socket.Bind(bind_address));
+
+ socket.Close();
+}
+
} // namespace
} // namespace net

Powered by Google App Engine
This is Rietveld 408576698