summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-21 00:35:39 +0000
committerrch@chromium.org <rch@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-21 00:35:39 +0000
commitd55b30acf681116affd8ce2cc8deec9cae2e124f (patch)
tree936ef6f0cfce9e02f5bf33d8c6e3fdc2cd2bfaf0 /net
parentf98502f4243d2329256f20352148d9cadf38fbdf (diff)
downloadchromium_src-d55b30acf681116affd8ce2cc8deec9cae2e124f.zip
chromium_src-d55b30acf681116affd8ce2cc8deec9cae2e124f.tar.gz
chromium_src-d55b30acf681116affd8ce2cc8deec9cae2e124f.tar.bz2
Modify DeterministicSocketData to verify that the sequence number of reads and writes start at zero and are continuous.
Review URL: https://chromiumcodereview.appspot.com/10795012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147749 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/http/http_proxy_client_socket_pool_spdy2_unittest.cc4
-rw-r--r--net/http/http_proxy_client_socket_pool_spdy3_unittest.cc5
-rw-r--r--net/http/http_stream_parser_unittest.cc2
-rw-r--r--net/socket/deterministic_socket_data_unittest.cc12
-rw-r--r--net/socket/socket_test_util.cc27
-rw-r--r--net/socket/socket_test_util.h4
-rw-r--r--net/spdy/spdy_network_transaction_spdy2_unittest.cc26
-rw-r--r--net/spdy/spdy_network_transaction_spdy3_unittest.cc26
-rw-r--r--net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc6
-rw-r--r--net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc6
10 files changed, 84 insertions, 34 deletions
diff --git a/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc b/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
index a8414ef..50835cd 100644
--- a/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
+++ b/net/http/http_proxy_client_socket_pool_spdy2_unittest.cc
@@ -344,13 +344,13 @@ TEST_P(HttpProxyClientSocketPoolSpdy2Test, HaveAuth) {
TEST_P(HttpProxyClientSocketPoolSpdy2Test, AsyncHaveAuth) {
MockWrite writes[] = {
- MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
+ MockWrite(ASYNC, 0, "CONNECT www.google.com:443 HTTP/1.1\r\n"
"Host: www.google.com\r\n"
"Proxy-Connection: keep-alive\r\n"
"Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
};
MockRead reads[] = {
- MockRead(SYNCHRONOUS, "HTTP/1.1 200 Connection Established\r\n\r\n"),
+ MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
};
scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders,
diff --git a/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc b/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
index f26af33..86ad31d 100644
--- a/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
+++ b/net/http/http_proxy_client_socket_pool_spdy3_unittest.cc
@@ -344,13 +344,14 @@ TEST_P(HttpProxyClientSocketPoolSpdy3Test, HaveAuth) {
TEST_P(HttpProxyClientSocketPoolSpdy3Test, AsyncHaveAuth) {
MockWrite writes[] = {
- MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
+ MockWrite(ASYNC, 0,
+ "CONNECT www.google.com:443 HTTP/1.1\r\n"
"Host: www.google.com\r\n"
"Proxy-Connection: keep-alive\r\n"
"Proxy-Authorization: Basic Zm9vOmJhcg==\r\n\r\n"),
};
MockRead reads[] = {
- MockRead(SYNCHRONOUS, "HTTP/1.1 200 Connection Established\r\n\r\n"),
+ MockRead(ASYNC, 1, "HTTP/1.1 200 Connection Established\r\n\r\n"),
};
scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(kAuthHeaders,
diff --git a/net/http/http_stream_parser_unittest.cc b/net/http/http_stream_parser_unittest.cc
index c337bf5..b6cb778 100644
--- a/net/http/http_stream_parser_unittest.cc
+++ b/net/http/http_stream_parser_unittest.cc
@@ -191,7 +191,7 @@ TEST(HttpStreamParser, AsyncChunkAndAsyncSocket) {
MockRead(ASYNC, 5, "HTTP/1.1 200 OK\r\n"),
MockRead(ASYNC, 6, "Content-Length: 8\r\n\r\n"),
MockRead(ASYNC, 7, "one.html"),
- MockRead(SYNCHRONOUS, 8, 0), // EOF
+ MockRead(SYNCHRONOUS, 0, 8), // EOF
};
DeterministicSocketData data(reads, arraysize(reads),
diff --git a/net/socket/deterministic_socket_data_unittest.cc b/net/socket/deterministic_socket_data_unittest.cc
index e3fa4af..e1f42f4 100644
--- a/net/socket/deterministic_socket_data_unittest.cc
+++ b/net/socket/deterministic_socket_data_unittest.cc
@@ -186,7 +186,11 @@ TEST_F(DeterministicSocketDataTest, SingleSyncReadTooEarly) {
MockRead(SYNCHRONOUS, 0, 2), // EOF
};
- Initialize(reads, arraysize(reads), NULL, 0);
+ MockWrite writes[] = {
+ MockWrite(SYNCHRONOUS, 0, 0)
+ };
+
+ Initialize(reads, arraysize(reads), writes, arraysize(writes));
data_->StopAfter(2);
ASSERT_FALSE(data_->stopped());
@@ -309,7 +313,11 @@ TEST_F(DeterministicSocketDataTest, SingleSyncWriteTooEarly) {
MockWrite(SYNCHRONOUS, kMsg1, kLen1, 1), // Sync Write
};
- Initialize(NULL, 0, writes, arraysize(writes));
+ MockRead reads[] = {
+ MockRead(SYNCHRONOUS, 0, 0)
+ };
+
+ Initialize(reads, arraysize(reads), writes, arraysize(writes));
data_->StopAfter(2);
ASSERT_FALSE(data_->stopped());
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
index ff66830..34af370 100644
--- a/net/socket/socket_test_util.cc
+++ b/net/socket/socket_test_util.cc
@@ -450,6 +450,7 @@ DeterministicSocketData::DeterministicSocketData(MockRead* reads,
stopping_sequence_number_(0),
stopped_(false),
print_debug_(false) {
+ VerifyCorrectSequenceNumbers(reads, reads_count, writes, writes_count);
}
DeterministicSocketData::~DeterministicSocketData() {}
@@ -603,6 +604,32 @@ void DeterministicSocketData::NextStep() {
SetStopped(true);
}
+void DeterministicSocketData::VerifyCorrectSequenceNumbers(
+ MockRead* reads, size_t reads_count,
+ MockWrite* writes, size_t writes_count) {
+ size_t read = 0;
+ size_t write = 0;
+ int expected = 0;
+ while (read < reads_count || write < writes_count) {
+ // Check to see that we have a read or write at the expected
+ // state.
+ if (read < reads_count && reads[read].sequence_number == expected) {
+ ++read;
+ ++expected;
+ continue;
+ }
+ if (write < writes_count && writes[write].sequence_number == expected) {
+ ++write;
+ ++expected;
+ continue;
+ }
+ NOTREACHED() << "Missing sequence number: " << expected;
+ return;
+ }
+ DCHECK_EQ(read, reads_count);
+ DCHECK_EQ(write, writes_count);
+}
+
MockClientSocketFactory::MockClientSocketFactory() {}
MockClientSocketFactory::~MockClientSocketFactory() {}
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h
index 0c7e4cf..171e3c3 100644
--- a/net/socket/socket_test_util.h
+++ b/net/socket/socket_test_util.h
@@ -486,6 +486,9 @@ class DeterministicSocketData
void NextStep();
+ void VerifyCorrectSequenceNumbers(MockRead* reads, size_t reads_count,
+ MockWrite* writes, size_t writes_count);
+
int sequence_number_;
MockRead current_read_;
MockWrite current_write_;
@@ -759,7 +762,6 @@ class MockSSLClientSocket : public MockClientSocket, public AsyncSocket {
SSLCertRequestInfo* cert_request_info) OVERRIDE;
virtual NextProtoStatus GetNextProto(std::string* proto,
std::string* server_protos) OVERRIDE;
- //virtual bool was_npn_negotiated() const OVERRIDE;
virtual bool set_was_npn_negotiated(bool negotiated) OVERRIDE;
virtual void set_protocol_negotiated(
NextProto protocol_negotiated) OVERRIDE;
diff --git a/net/spdy/spdy_network_transaction_spdy2_unittest.cc b/net/spdy/spdy_network_transaction_spdy2_unittest.cc
index 639c818..384ccf5 100644
--- a/net/spdy/spdy_network_transaction_spdy2_unittest.cc
+++ b/net/spdy/spdy_network_transaction_spdy2_unittest.cc
@@ -4879,7 +4879,7 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushClaimBeforeHeaders) {
CreateMockRead(*stream2_headers, 4),
MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
arraysize(kPushBodyFrame), 5),
- MockRead(ASYNC, 0, 5), // EOF
+ MockRead(ASYNC, 0, 6), // EOF
};
HttpResponseInfo response;
@@ -4927,10 +4927,6 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushClaimBeforeHeaders) {
std::string result;
ReadResult(trans, &data, &result);
- // Verify that we consumed all test data.
- EXPECT_TRUE(data.at_read_eof());
- EXPECT_TRUE(data.at_write_eof());
-
// Verify that the received push data is same as the expected push data.
EXPECT_EQ(result2.compare(expected_push_result), 0)
<< "Received data: "
@@ -4952,6 +4948,13 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushClaimBeforeHeaders) {
// Verify the pushed stream.
EXPECT_TRUE(response2.headers != NULL);
EXPECT_EQ("HTTP/1.1 200 OK", response2.headers->GetStatusLine());
+
+ // Read the final EOF (which will close the session)
+ data.RunFor(1);
+
+ // Verify that we consumed all test data.
+ EXPECT_TRUE(data.at_read_eof());
+ EXPECT_TRUE(data.at_write_eof());
}
TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushWithTwoHeaderFrames) {
@@ -5027,7 +5030,7 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushWithTwoHeaderFrames) {
CreateMockRead(*stream2_headers2, 5),
MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
arraysize(kPushBodyFrame), 6),
- MockRead(ASYNC, 0, 6), // EOF
+ MockRead(ASYNC, 0, 7), // EOF
};
HttpResponseInfo response;
@@ -5075,10 +5078,6 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushWithTwoHeaderFrames) {
std::string result;
ReadResult(trans, &data, &result);
- // Verify that we consumed all test data.
- EXPECT_TRUE(data.at_read_eof());
- EXPECT_TRUE(data.at_write_eof());
-
// Verify that the received push data is same as the expected push data.
EXPECT_EQ(result2.compare(expected_push_result), 0)
<< "Received data: "
@@ -5108,6 +5107,13 @@ TEST_P(SpdyNetworkTransactionSpdy2Test, ServerPushWithTwoHeaderFrames) {
EXPECT_TRUE(response2.headers->HasHeaderValue("hello", "bye"));
EXPECT_TRUE(response2.headers->HasHeaderValue("status", "200"));
EXPECT_TRUE(response2.headers->HasHeaderValue("version", "HTTP/1.1"));
+
+ // Read the final EOF (which will close the session)
+ data.RunFor(1);
+
+ // Verify that we consumed all test data.
+ EXPECT_TRUE(data.at_read_eof());
+ EXPECT_TRUE(data.at_write_eof());
}
TEST_P(SpdyNetworkTransactionSpdy2Test, SynReplyWithHeaders) {
diff --git a/net/spdy/spdy_network_transaction_spdy3_unittest.cc b/net/spdy/spdy_network_transaction_spdy3_unittest.cc
index ff9437e..4eadb25 100644
--- a/net/spdy/spdy_network_transaction_spdy3_unittest.cc
+++ b/net/spdy/spdy_network_transaction_spdy3_unittest.cc
@@ -5434,7 +5434,7 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushClaimBeforeHeaders) {
CreateMockRead(*stream2_headers, 4),
MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
arraysize(kPushBodyFrame), 5),
- MockRead(ASYNC, 0, 5), // EOF
+ MockRead(ASYNC, 0, 6), // EOF
};
HttpResponseInfo response;
@@ -5482,10 +5482,6 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushClaimBeforeHeaders) {
std::string result;
ReadResult(trans, &data, &result);
- // Verify that we consumed all test data.
- EXPECT_TRUE(data.at_read_eof());
- EXPECT_TRUE(data.at_write_eof());
-
// Verify that the received push data is same as the expected push data.
EXPECT_EQ(result2.compare(expected_push_result), 0)
<< "Received data: "
@@ -5507,6 +5503,13 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushClaimBeforeHeaders) {
// Verify the pushed stream.
EXPECT_TRUE(response2.headers != NULL);
EXPECT_EQ("HTTP/1.1 200 OK", response2.headers->GetStatusLine());
+
+ // Read the final EOF (which will close the session)
+ data.RunFor(1);
+
+ // Verify that we consumed all test data.
+ EXPECT_TRUE(data.at_read_eof());
+ EXPECT_TRUE(data.at_write_eof());
}
TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushWithTwoHeaderFrames) {
@@ -5583,7 +5586,7 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushWithTwoHeaderFrames) {
CreateMockRead(*stream2_headers2, 5),
MockRead(ASYNC, reinterpret_cast<const char*>(kPushBodyFrame),
arraysize(kPushBodyFrame), 6),
- MockRead(ASYNC, 0, 6), // EOF
+ MockRead(ASYNC, 0, 7), // EOF
};
HttpResponseInfo response;
@@ -5631,10 +5634,6 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushWithTwoHeaderFrames) {
std::string result;
ReadResult(trans, &data, &result);
- // Verify that we consumed all test data.
- EXPECT_TRUE(data.at_read_eof());
- EXPECT_TRUE(data.at_write_eof());
-
// Verify that the received push data is same as the expected push data.
EXPECT_EQ(result2.compare(expected_push_result), 0)
<< "Received data: "
@@ -5667,6 +5666,13 @@ TEST_P(SpdyNetworkTransactionSpdy3Test, ServerPushWithTwoHeaderFrames) {
EXPECT_TRUE(response2.headers->HasHeaderValue("hello", "bye"));
EXPECT_TRUE(response2.headers->HasHeaderValue("status", "200"));
EXPECT_TRUE(response2.headers->HasHeaderValue("version", "HTTP/1.1"));
+
+ // Read the final EOF (which will close the session)
+ data.RunFor(1);
+
+ // Verify that we consumed all test data.
+ EXPECT_TRUE(data.at_read_eof());
+ EXPECT_TRUE(data.at_write_eof());
}
TEST_P(SpdyNetworkTransactionSpdy3Test, SynReplyWithHeaders) {
diff --git a/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc b/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc
index 9d149fb..2ac719d 100644
--- a/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc
+++ b/net/spdy/spdy_proxy_client_socket_spdy2_unittest.cc
@@ -439,7 +439,7 @@ TEST_F(SpdyProxyClientSocketSpdy2Test, ConnectSendsCorrectRequest) {
scoped_ptr<SpdyFrame> resp(ConstructConnectReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
@@ -460,7 +460,7 @@ TEST_F(SpdyProxyClientSocketSpdy2Test, ConnectWithAuthRequested) {
scoped_ptr<SpdyFrame> resp(ConstructConnectAuthReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
@@ -483,7 +483,7 @@ TEST_F(SpdyProxyClientSocketSpdy2Test, ConnectWithAuthCredentials) {
scoped_ptr<SpdyFrame> resp(ConstructConnectReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
diff --git a/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc b/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc
index c0ef4dd..fad8d18 100644
--- a/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc
+++ b/net/spdy/spdy_proxy_client_socket_spdy3_unittest.cc
@@ -442,7 +442,7 @@ TEST_F(SpdyProxyClientSocketSpdy3Test, ConnectSendsCorrectRequest) {
scoped_ptr<SpdyFrame> resp(ConstructConnectReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
@@ -463,7 +463,7 @@ TEST_F(SpdyProxyClientSocketSpdy3Test, ConnectWithAuthRequested) {
scoped_ptr<SpdyFrame> resp(ConstructConnectAuthReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));
@@ -486,7 +486,7 @@ TEST_F(SpdyProxyClientSocketSpdy3Test, ConnectWithAuthCredentials) {
scoped_ptr<SpdyFrame> resp(ConstructConnectReplyFrame());
MockRead reads[] = {
CreateMockRead(*resp, 1, ASYNC),
- MockRead(ASYNC, 0, 3), // EOF
+ MockRead(ASYNC, 0, 2), // EOF
};
Initialize(reads, arraysize(reads), writes, arraysize(writes));