| 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();
|
| +}
|
|
|