| 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 ba1c8f1ebddac632d16699951dcae63f10cbab0f..d3efbe335d514ec1c3b105a9a892060b295f2d5f 100644
|
| --- a/ppapi/tests/test_tcp_socket_private.cc
|
| +++ b/ppapi/tests/test_tcp_socket_private.cc
|
| @@ -6,9 +6,11 @@
|
|
|
| #include <stdlib.h>
|
|
|
| +#include <new>
|
| +
|
| #include "ppapi/cpp/private/tcp_socket_private.h"
|
| -#include "ppapi/tests/testing_instance.h"
|
| #include "ppapi/tests/test_utils.h"
|
| +#include "ppapi/tests/testing_instance.h"
|
|
|
| namespace {
|
|
|
| @@ -52,6 +54,7 @@ void TestTCPSocketPrivate::RunTests(const std::string& filter) {
|
| RUN_CALLBACK_TEST(TestTCPSocketPrivate, ReadWriteSSL, filter);
|
| RUN_CALLBACK_TEST(TestTCPSocketPrivate, ConnectAddress, filter);
|
| RUN_CALLBACK_TEST(TestTCPSocketPrivate, SetOption, filter);
|
| + RUN_CALLBACK_TEST(TestTCPSocketPrivate, LargeRead, filter);
|
| }
|
|
|
| std::string TestTCPSocketPrivate::TestBasic() {
|
| @@ -181,6 +184,35 @@ std::string TestTCPSocketPrivate::TestSetOption() {
|
| PASS();
|
| }
|
|
|
| +std::string TestTCPSocketPrivate::TestLargeRead() {
|
| + pp::TCPSocketPrivate socket(instance_);
|
| + {
|
| + 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_EQ(PP_OK, WriteStringToSocket(&socket, "GET / HTTP/1.0\r\n\r\n"));
|
| +
|
| + const size_t kReadSize = 1024 * 1024 + 32;
|
| + // Create large buffer in heap to prevent run-time errors related to
|
| + // limits on stack size.
|
| + char* buffer = new (std::nothrow) char[kReadSize];
|
| + ASSERT_TRUE(buffer != NULL);
|
| +
|
| + TestCompletionCallback cb(instance_->pp_instance(), callback_type());
|
| + cb.WaitForResult(socket.Read(buffer, kReadSize * sizeof(*buffer),
|
| + cb.GetCallback()));
|
| + CHECK_CALLBACK_BEHAVIOR(cb);
|
| + ASSERT_LE(0, cb.result());
|
| +
|
| + delete [] buffer;
|
| +
|
| + PASS();
|
| +}
|
| +
|
| int32_t TestTCPSocketPrivate::ReadFirstLineFromSocket(
|
| pp::TCPSocketPrivate* socket,
|
| std::string* s) {
|
|
|