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

Unified Diff: ppapi/tests/test_udp_socket.cc

Issue 704133005: Pepper: Add support for multicast in PPB_UDPSocket API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase, initial unit tests Created 6 years, 1 month 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: 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();
+}

Powered by Google App Engine
This is Rietveld 408576698