Index: ppapi/tests/test_tcp_socket_private.cc |
diff --git a/ppapi/tests/test_tcp_socket_private.cc b/ppapi/tests/test_tcp_socket_private.cc |
index 6bffe49d254ed94f8e5a4773426c59d715f2ba16..17fbe1a52b8efff7153d36171c82e929f8a713e6 100644 |
--- a/ppapi/tests/test_tcp_socket_private.cc |
+++ b/ppapi/tests/test_tcp_socket_private.cc |
@@ -51,6 +51,7 @@ void TestTCPSocketPrivate::RunTests(const std::string& filter) { |
RUN_TEST_FORCEASYNC_AND_NOT(ReadWrite, filter); |
RUN_TEST_FORCEASYNC_AND_NOT(ReadWriteSSL, filter); |
RUN_TEST_FORCEASYNC_AND_NOT(ConnectAddress, filter); |
+ RUN_TEST_FORCEASYNC_AND_NOT(SetOption, filter); |
} |
std::string TestTCPSocketPrivate::TestBasic() { |
@@ -160,6 +161,39 @@ std::string TestTCPSocketPrivate::TestConnectAddress() { |
PASS(); |
} |
+std::string TestTCPSocketPrivate::TestSetOption() { |
+ pp::TCPSocketPrivate socket(instance_); |
+ TestCompletionCallback cb(instance_->pp_instance(), force_async_); |
+ |
+ int32_t rv = socket.SetOption(PP_TCPSOCKETOPTION_NO_DELAY, true, cb); |
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING); |
+ if (rv == PP_OK_COMPLETIONPENDING) |
+ rv = cb.WaitForResult(); |
+ ASSERT_EQ(PP_ERROR_FAILED, rv); |
+ |
+ rv = socket.Connect(host_.c_str(), port_, cb); |
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING); |
+ if (rv == PP_OK_COMPLETIONPENDING) |
+ rv = cb.WaitForResult(); |
+ ASSERT_EQ(PP_OK, rv); |
+ |
+ rv = socket.SetOption(PP_TCPSOCKETOPTION_NO_DELAY, true, cb); |
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING); |
+ if (rv == PP_OK_COMPLETIONPENDING) |
+ rv = cb.WaitForResult(); |
+ ASSERT_EQ(PP_OK, rv); |
+ |
+ rv = socket.SetOption(PP_TCPSOCKETOPTION_INVALID, true, cb); |
+ ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING); |
+ if (rv == PP_OK_COMPLETIONPENDING) |
+ rv = cb.WaitForResult(); |
+ ASSERT_EQ(PP_ERROR_BADARGUMENT, rv); |
+ |
+ socket.Disconnect(); |
+ |
+ PASS(); |
+} |
+ |
int32_t TestTCPSocketPrivate::ReadFirstLineFromSocket( |
pp::TCPSocketPrivate* socket, |
std::string* s) { |