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

Side by Side Diff: net/dns/dns_transaction_unittest.cc

Issue 2259823002: Re-write many calls to WrapUnique() with MakeUnique() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « net/dns/dns_session.cc ('k') | net/dns/host_resolver_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/dns/dns_transaction.h" 5 #include "net/dns/dns_transaction.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 90
91 // Adds pre-built DnsResponse. 91 // Adds pre-built DnsResponse.
92 void AddResponse(std::unique_ptr<DnsResponse> response, IoMode mode) { 92 void AddResponse(std::unique_ptr<DnsResponse> response, IoMode mode) {
93 uint16_t tcp_length = response->io_buffer()->size(); 93 uint16_t tcp_length = response->io_buffer()->size();
94 AddResponseWithLength(std::move(response), mode, tcp_length); 94 AddResponseWithLength(std::move(response), mode, tcp_length);
95 } 95 }
96 96
97 // Adds pre-built response from |data| buffer. 97 // Adds pre-built response from |data| buffer.
98 void AddResponseData(const uint8_t* data, size_t length, IoMode mode) { 98 void AddResponseData(const uint8_t* data, size_t length, IoMode mode) {
99 CHECK(!provider_.get()); 99 CHECK(!provider_.get());
100 AddResponse(base::WrapUnique(new DnsResponse( 100 AddResponse(base::MakeUnique<DnsResponse>(
101 reinterpret_cast<const char*>(data), length, 0)), 101 reinterpret_cast<const char*>(data), length, 0),
102 mode); 102 mode);
103 } 103 }
104 104
105 // Add no-answer (RCODE only) response matching the query. 105 // Add no-answer (RCODE only) response matching the query.
106 void AddRcode(int rcode, IoMode mode) { 106 void AddRcode(int rcode, IoMode mode) {
107 std::unique_ptr<DnsResponse> response(new DnsResponse( 107 std::unique_ptr<DnsResponse> response(new DnsResponse(
108 query_->io_buffer()->data(), query_->io_buffer()->size(), 0)); 108 query_->io_buffer()->data(), query_->io_buffer()->size(), 0));
109 dns_protocol::Header* header = 109 dns_protocol::Header* header =
110 reinterpret_cast<dns_protocol::Header*>(response->io_buffer()->data()); 110 reinterpret_cast<dns_protocol::Header*>(response->io_buffer()->data());
111 header->flags |= base::HostToNet16(dns_protocol::kFlagResponse | rcode); 111 header->flags |= base::HostToNet16(dns_protocol::kFlagResponse | rcode);
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 TEST_F(DnsTransactionTest, TCPMalformed) { 903 TEST_F(DnsTransactionTest, TCPMalformed) {
904 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, 904 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype,
905 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); 905 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC);
906 std::unique_ptr<DnsSocketData> data( 906 std::unique_ptr<DnsSocketData> data(
907 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true)); 907 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true));
908 // Valid response but length too short. 908 // Valid response but length too short.
909 // This must be truncated in the question section. The DnsResponse doesn't 909 // This must be truncated in the question section. The DnsResponse doesn't
910 // examine the answer section until asked to parse it, so truncating it in 910 // examine the answer section until asked to parse it, so truncating it in
911 // the answer section would result in the DnsTransaction itself succeeding. 911 // the answer section would result in the DnsTransaction itself succeeding.
912 data->AddResponseWithLength( 912 data->AddResponseWithLength(
913 base::WrapUnique( 913 base::MakeUnique<DnsResponse>(
914 new DnsResponse(reinterpret_cast<const char*>(kT0ResponseDatagram), 914 reinterpret_cast<const char*>(kT0ResponseDatagram),
915 arraysize(kT0ResponseDatagram), 0)), 915 arraysize(kT0ResponseDatagram), 0),
916 ASYNC, static_cast<uint16_t>(kT0QuerySize - 1)); 916 ASYNC, static_cast<uint16_t>(kT0QuerySize - 1));
917 AddSocketData(std::move(data)); 917 AddSocketData(std::move(data));
918 918
919 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_DNS_MALFORMED_RESPONSE); 919 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_DNS_MALFORMED_RESPONSE);
920 EXPECT_TRUE(helper0.Run(transaction_factory_.get())); 920 EXPECT_TRUE(helper0.Run(transaction_factory_.get()));
921 } 921 }
922 922
923 TEST_F(DnsTransactionTest, TCPTimeout) { 923 TEST_F(DnsTransactionTest, TCPTimeout) {
924 config_.timeout = TestTimeouts::tiny_timeout(); 924 config_.timeout = TestTimeouts::tiny_timeout();
925 ConfigureFactory(); 925 ConfigureFactory();
926 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, 926 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype,
927 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); 927 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC);
928 AddSocketData(base::WrapUnique( 928 AddSocketData(base::MakeUnique<DnsSocketData>(1 /* id */, kT0HostName,
929 new DnsSocketData(1 /* id */, kT0HostName, kT0Qtype, ASYNC, true))); 929 kT0Qtype, ASYNC, true));
930 930
931 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_DNS_TIMED_OUT); 931 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_DNS_TIMED_OUT);
932 EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get())); 932 EXPECT_TRUE(helper0.RunUntilDone(transaction_factory_.get()));
933 } 933 }
934 934
935 TEST_F(DnsTransactionTest, TCPReadReturnsZeroAsync) { 935 TEST_F(DnsTransactionTest, TCPReadReturnsZeroAsync) {
936 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, 936 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype,
937 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); 937 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC);
938 std::unique_ptr<DnsSocketData> data( 938 std::unique_ptr<DnsSocketData> data(
939 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true)); 939 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true));
940 // Return all but the last byte of the response. 940 // Return all but the last byte of the response.
941 data->AddResponseWithLength( 941 data->AddResponseWithLength(
942 base::WrapUnique( 942 base::MakeUnique<DnsResponse>(
943 new DnsResponse(reinterpret_cast<const char*>(kT0ResponseDatagram), 943 reinterpret_cast<const char*>(kT0ResponseDatagram),
944 arraysize(kT0ResponseDatagram) - 1, 0)), 944 arraysize(kT0ResponseDatagram) - 1, 0),
945 ASYNC, static_cast<uint16_t>(arraysize(kT0ResponseDatagram))); 945 ASYNC, static_cast<uint16_t>(arraysize(kT0ResponseDatagram)));
946 // Then return a 0-length read. 946 // Then return a 0-length read.
947 data->AddReadError(0, ASYNC); 947 data->AddReadError(0, ASYNC);
948 AddSocketData(std::move(data)); 948 AddSocketData(std::move(data));
949 949
950 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_CONNECTION_CLOSED); 950 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_CONNECTION_CLOSED);
951 EXPECT_TRUE(helper0.Run(transaction_factory_.get())); 951 EXPECT_TRUE(helper0.Run(transaction_factory_.get()));
952 } 952 }
953 953
954 TEST_F(DnsTransactionTest, TCPReadReturnsZeroSynchronous) { 954 TEST_F(DnsTransactionTest, TCPReadReturnsZeroSynchronous) {
955 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype, 955 AddAsyncQueryAndRcode(kT0HostName, kT0Qtype,
956 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC); 956 dns_protocol::kRcodeNOERROR | dns_protocol::kFlagTC);
957 std::unique_ptr<DnsSocketData> data( 957 std::unique_ptr<DnsSocketData> data(
958 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true)); 958 new DnsSocketData(0 /* id */, kT0HostName, kT0Qtype, ASYNC, true));
959 // Return all but the last byte of the response. 959 // Return all but the last byte of the response.
960 data->AddResponseWithLength( 960 data->AddResponseWithLength(
961 base::WrapUnique( 961 base::MakeUnique<DnsResponse>(
962 new DnsResponse(reinterpret_cast<const char*>(kT0ResponseDatagram), 962 reinterpret_cast<const char*>(kT0ResponseDatagram),
963 arraysize(kT0ResponseDatagram) - 1, 0)), 963 arraysize(kT0ResponseDatagram) - 1, 0),
964 SYNCHRONOUS, static_cast<uint16_t>(arraysize(kT0ResponseDatagram))); 964 SYNCHRONOUS, static_cast<uint16_t>(arraysize(kT0ResponseDatagram)));
965 // Then return a 0-length read. 965 // Then return a 0-length read.
966 data->AddReadError(0, SYNCHRONOUS); 966 data->AddReadError(0, SYNCHRONOUS);
967 AddSocketData(std::move(data)); 967 AddSocketData(std::move(data));
968 968
969 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_CONNECTION_CLOSED); 969 TransactionHelper helper0(kT0HostName, kT0Qtype, ERR_CONNECTION_CLOSED);
970 EXPECT_TRUE(helper0.Run(transaction_factory_.get())); 970 EXPECT_TRUE(helper0.Run(transaction_factory_.get()));
971 } 971 }
972 972
973 TEST_F(DnsTransactionTest, TCPConnectionClosedAsync) { 973 TEST_F(DnsTransactionTest, TCPConnectionClosedAsync) {
(...skipping 24 matching lines...) Expand all
998 config_.timeout = TestTimeouts::tiny_timeout(); 998 config_.timeout = TestTimeouts::tiny_timeout();
999 ConfigureFactory(); 999 ConfigureFactory();
1000 1000
1001 TransactionHelper helper0(".", dns_protocol::kTypeA, ERR_INVALID_ARGUMENT); 1001 TransactionHelper helper0(".", dns_protocol::kTypeA, ERR_INVALID_ARGUMENT);
1002 EXPECT_TRUE(helper0.Run(transaction_factory_.get())); 1002 EXPECT_TRUE(helper0.Run(transaction_factory_.get()));
1003 } 1003 }
1004 1004
1005 } // namespace 1005 } // namespace
1006 1006
1007 } // namespace net 1007 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/dns_session.cc ('k') | net/dns/host_resolver_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698