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

Unified Diff: ppapi/tests/test_tcp_socket_private.cc

Issue 14139012: PPAPI: More test cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Provide a message loop for "background thread" test so we can use a REQUIRED callback Created 7 years, 8 months 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_tcp_socket_private.cc
diff --git a/ppapi/tests/test_tcp_socket_private.cc b/ppapi/tests/test_tcp_socket_private.cc
index a15c36e1d4395e097b9f673db2261bbb810e9dc1..b6f158f426e5d8fda06084625631fd37b76322be 100644
--- a/ppapi/tests/test_tcp_socket_private.cc
+++ b/ppapi/tests/test_tcp_socket_private.cc
@@ -47,22 +47,20 @@ bool TestTCPSocketPrivate::Init() {
}
void TestTCPSocketPrivate::RunTests(const std::string& filter) {
- RUN_TEST_FORCEASYNC_AND_NOT(Basic, 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);
+ RUN_CALLBACK_TEST(TestTCPSocketPrivate, Basic, filter);
+ RUN_CALLBACK_TEST(TestTCPSocketPrivate, ReadWrite, filter);
+ RUN_CALLBACK_TEST(TestTCPSocketPrivate, ReadWriteSSL, filter);
+ RUN_CALLBACK_TEST(TestTCPSocketPrivate, ConnectAddress, filter);
+ RUN_CALLBACK_TEST(TestTCPSocketPrivate, SetOption, filter);
}
std::string TestTCPSocketPrivate::TestBasic() {
pp::TCPSocketPrivate socket(instance_);
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
- int32_t rv = socket.Connect(host_.c_str(), port_, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ cb.WaitForResult(socket.Connect(host_.c_str(), port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
PP_NetAddress_Private unused;
// TODO(viettrungluu): check the values somehow.
@@ -76,13 +74,11 @@ std::string TestTCPSocketPrivate::TestBasic() {
std::string TestTCPSocketPrivate::TestReadWrite() {
pp::TCPSocketPrivate socket(instance_);
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
- int32_t rv = socket.Connect(host_.c_str(), port_, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ cb.WaitForResult(socket.Connect(host_.c_str(), port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
ASSERT_EQ(PP_OK, WriteStringToSocket(&socket, "GET / HTTP/1.0\r\n\r\n"));
@@ -98,19 +94,16 @@ std::string TestTCPSocketPrivate::TestReadWrite() {
std::string TestTCPSocketPrivate::TestReadWriteSSL() {
pp::TCPSocketPrivate socket(instance_);
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
- int32_t rv = socket.Connect(host_.c_str(), ssl_port_, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ cb.WaitForResult(socket.Connect(host_.c_str(), ssl_port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
- rv = socket.SSLHandshake(host_.c_str(), ssl_port_, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ cb.WaitForResult(
+ socket.SSLHandshake(host_.c_str(), ssl_port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
ASSERT_EQ(PP_OK, WriteStringToSocket(&socket, "GET / HTTP/1.0\r\n\r\n"));
@@ -130,12 +123,10 @@ std::string TestTCPSocketPrivate::TestConnectAddress() {
// First, bring up a connection and grab the address.
{
pp::TCPSocketPrivate socket(instance_);
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
- int32_t rv = socket.Connect(host_.c_str(), port_, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
+ cb.WaitForResult(socket.Connect(host_.c_str(), port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
ASSERT_TRUE(socket.GetRemoteAddress(&address));
// Omit the |Disconnect()| here to make sure we don't crash if we just let
// the resource be destroyed.
@@ -143,12 +134,10 @@ std::string TestTCPSocketPrivate::TestConnectAddress() {
// Connect to that address.
pp::TCPSocketPrivate socket(instance_);
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
- int32_t rv = socket.ConnectWithNetAddress(&address, cb.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_OK, rv);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
+ cb.WaitForResult(socket.ConnectWithNetAddress(&address, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
// Make sure we can read/write to it properly (see |TestReadWrite()|).
ASSERT_EQ(PP_OK, WriteStringToSocket(&socket, "GET / HTTP/1.0\r\n\r\n"));
@@ -163,32 +152,26 @@ std::string TestTCPSocketPrivate::TestConnectAddress() {
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.GetCallback());
- 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.GetCallback());
- 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.GetCallback());
- 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.GetCallback());
- ASSERT_TRUE(!force_async_ || rv == PP_OK_COMPLETIONPENDING);
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- ASSERT_EQ(PP_ERROR_BADARGUMENT, rv);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
+
+ cb.WaitForResult(
+ socket.SetOption(PP_TCPSOCKETOPTION_NO_DELAY, true, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_ERROR_FAILED, cb.result());
+
+ cb.WaitForResult(socket.Connect(host_.c_str(), port_, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
+
+ cb.WaitForResult(
+ socket.SetOption(PP_TCPSOCKETOPTION_NO_DELAY, true, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_OK, cb.result());
+
+ cb.WaitForResult(
+ socket.SetOption(PP_TCPSOCKETOPTION_INVALID, true, cb.GetCallback()));
+ CHECK_CALLBACK_BEHAVIOR(cb);
+ ASSERT_EQ(PP_ERROR_BADARGUMENT, cb.result());
socket.Disconnect();
@@ -203,18 +186,17 @@ int32_t TestTCPSocketPrivate::ReadFirstLineFromSocket(
s->clear();
// Make sure we don't just hang if |Read()| spews.
while (s->size() < 1000000) {
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
int32_t rv = socket->Read(buffer, sizeof(buffer), cb.GetCallback());
- if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
+ if (callback_type() == PP_REQUIRED && rv != PP_OK_COMPLETIONPENDING)
return PP_ERROR_FAILED;
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- if (rv < 0)
- return rv;
- if (rv == 0)
+ cb.WaitForResult(rv);
+ if (cb.result() < 0)
+ return cb.result();
+ if (cb.result() == 0)
return PP_ERROR_FAILED; // Didn't get a \n-terminated line.
- s->reserve(s->size() + rv);
- for (int32_t i = 0; i < rv; i++) {
+ s->reserve(s->size() + cb.result());
+ for (int32_t i = 0; i < cb.result(); i++) {
s->push_back(buffer[i]);
if (buffer[i] == '\n')
return PP_OK;
@@ -228,18 +210,17 @@ int32_t TestTCPSocketPrivate::WriteStringToSocket(pp::TCPSocketPrivate* socket,
const char* buffer = s.data();
size_t written = 0;
while (written < s.size()) {
- TestCompletionCallback cb(instance_->pp_instance(), force_async_);
+ TestCompletionCallback cb(instance_->pp_instance(), callback_type());
int32_t rv = socket->Write(buffer + written, s.size() - written,
cb.GetCallback());
- if (force_async_ && rv != PP_OK_COMPLETIONPENDING)
+ if (callback_type() == PP_REQUIRED && rv != PP_OK_COMPLETIONPENDING)
return PP_ERROR_FAILED;
- if (rv == PP_OK_COMPLETIONPENDING)
- rv = cb.WaitForResult();
- if (rv < 0)
- return rv;
- if (rv == 0)
+ cb.WaitForResult(rv);
+ if (cb.result() < 0)
+ return cb.result();
+ if (cb.result() == 0)
return PP_ERROR_FAILED;
- written += rv;
+ written += cb.result();
}
if (written != s.size())
return PP_ERROR_FAILED;
« no previous file with comments | « ppapi/tests/test_tcp_server_socket_private_disallowed.cc ('k') | ppapi/tests/test_tcp_socket_private_disallowed.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698