Index: ppapi/tests/test_udp_socket.cc |
diff --git a/ppapi/tests/test_udp_socket.cc b/ppapi/tests/test_udp_socket.cc |
index 2b0568244e30001b37e5670f41a4799e733e7af6..3d8bd588253e7257d7adce95a94b5ba72374c6d8 100644 |
--- a/ppapi/tests/test_udp_socket.cc |
+++ b/ppapi/tests/test_udp_socket.cc |
@@ -84,6 +84,7 @@ void TestUDPSocket::RunTests(const std::string& filter) { |
RUN_CALLBACK_TEST(TestUDPSocket, Broadcast, filter); |
RUN_CALLBACK_TEST(TestUDPSocket, SetOption, filter); |
RUN_CALLBACK_TEST(TestUDPSocket, ParallelSend, filter); |
+ RUN_CALLBACK_TEST(TestUDPSocket, Multicast, filter); |
} |
std::string TestUDPSocket::GetLocalAddress(pp::NetAddress* address) { |
@@ -186,6 +187,23 @@ std::string TestUDPSocket::PassMessage(pp::UDPSocket* target, |
PASS(); |
} |
+std::string TestUDPSocket::SetMulticastOptions(pp::UDPSocket* socket) { |
+ TestCompletionCallback callback_1(instance_->pp_instance(), callback_type()); |
+ callback_1.WaitForResult(socket->SetOption( |
+ PP_UDPSOCKET_OPTION_MULTICAST_LOOP, pp::Var(true), |
+ callback_1.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback_1); |
+ ASSERT_EQ(PP_OK, callback_1.result()); |
+ |
+ TestCompletionCallback callback_2(instance_->pp_instance(), callback_type()); |
+ callback_2.WaitForResult(socket->SetOption( |
+ PP_UDPSOCKET_OPTION_MULTICAST_TTL, pp::Var(1), callback_2.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback_2); |
+ ASSERT_EQ(PP_OK, callback_2.result()); |
+ |
bbudge
2015/02/13 00:03:16
You should verify invalid types and values fail, e
etrunko
2015/02/13 20:19:58
Thankfully, TCP_Socket has similar test for differ
|
+ PASS(); |
+} |
+ |
std::string TestUDPSocket::TestReadWrite() { |
pp::UDPSocket server_socket(instance_), client_socket(instance_); |
pp::NetAddress server_address, client_address; |
@@ -260,6 +278,7 @@ std::string TestUDPSocket::TestSetOption() { |
pp::UDPSocket socket(instance_); |
ASSERT_SUBTEST_SUCCESS(SetBroadcastOptions(&socket)); |
+ ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&socket)); |
// Try to pass incorrect option value's type. |
TestCompletionCallback callback(instance_->pp_instance(), callback_type()); |
@@ -383,6 +402,12 @@ std::string TestUDPSocket::TestParallelSend() { |
server_socket.Close(); |
client_socket.Close(); |
+} |
+ |
+std::string TestUDPSocket::TestMulticast() { |
+ pp::UDPSocket server1(instance_), server2(instance_); |
+ ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server1)); |
+ ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server2)); |
PASS(); |
} |