Index: ppapi/tests/test_udp_socket.cc |
diff --git a/ppapi/tests/test_udp_socket.cc b/ppapi/tests/test_udp_socket.cc |
index e0b76f47728b3ae9100378f9f5fe42b57ebdeb30..a33fef2cf220403ae0d6772949898c987d475353 100644 |
--- a/ppapi/tests/test_udp_socket.cc |
+++ b/ppapi/tests/test_udp_socket.cc |
@@ -83,6 +83,7 @@ void TestUDPSocket::RunTests(const std::string& filter) { |
RUN_CALLBACK_TEST(TestUDPSocket, ReadWrite, filter); |
RUN_CALLBACK_TEST(TestUDPSocket, Broadcast, filter); |
RUN_CALLBACK_TEST(TestUDPSocket, SetOption, filter); |
+ RUN_CALLBACK_TEST(TestUDPSocket, Multicast, filter); |
} |
std::string TestUDPSocket::GetLocalAddress(pp::NetAddress* address) { |
@@ -185,6 +186,29 @@ 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()); |
+ |
+ TestCompletionCallback callback_3(instance_->pp_instance(), callback_type()); |
+ callback_3.WaitForResult(socket->SetOption( |
+ PP_UDPSOCKET_OPTION_IF, pp::Var(1), callback_3.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback_3); |
+ ASSERT_EQ(PP_OK, callback_3.result()); |
+ |
+ PASS(); |
+} |
+ |
std::string TestUDPSocket::TestReadWrite() { |
pp::UDPSocket server_socket(instance_), client_socket(instance_); |
pp::NetAddress server_address, client_address; |
@@ -259,6 +283,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()); |
@@ -316,3 +341,11 @@ std::string TestUDPSocket::TestSetOption() { |
PASS(); |
} |
+ |
+std::string TestUDPSocket::TestMulticast() { |
+ pp::UDPSocket server1(instance_), server2(instance_); |
+ |
+ ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server1)); |
+ ASSERT_SUBTEST_SUCCESS(SetMulticastOptions(&server2)); |
+ PASS(); |
+} |