Commit e1812c07 authored by Leonid Baraz's avatar Leonid Baraz Committed by Chromium LUCI CQ

Fix reading bug in StorageQueue.

Bug was detected while working on stress test:
When part of the data is available and we want to read more,
we need to start not from initial 'pos' but shift to the position
after the available data! The original code always started to read
from the initial position - thus reading some data twice.

Also some cleanup done.

BUG: b:177439641
Change-Id: I59c9d36f97d2a7193ff0d211c61f5afb7cf2d60b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2626102Reviewed-by: default avatarZach Trudo <zatrudo@google.com>
Commit-Queue: Leonid Baraz <lbaraz@chromium.org>
Auto-Submit: Leonid Baraz <lbaraz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#843284}
parent 35e8309c
...@@ -72,7 +72,7 @@ void EncryptionModule::EncryptRecord( ...@@ -72,7 +72,7 @@ void EncryptionModule::EncryptRecord(
encrypted_record.mutable_encrypted_wrapped_record()->assign(record.begin(), encrypted_record.mutable_encrypted_wrapped_record()->assign(record.begin(),
record.end()); record.end());
// encryption_info is not set. // encryption_info is not set.
std::move(cb).Run(encrypted_record); std::move(cb).Run(std::move(encrypted_record));
return; return;
} }
......
...@@ -366,8 +366,8 @@ Status StorageQueue::ScanLastFile() { ...@@ -366,8 +366,8 @@ Status StorageQueue::ScanLastFile() {
read_result.ValueOrDie().data(), header.record_size); read_result.ValueOrDie().data(), header.record_size);
if (header.record_hash != actual_record_hash) { if (header.record_hash != actual_record_hash) {
LOG(ERROR) << "Hash mismatch, seq=" << header.record_sequencing_id LOG(ERROR) << "Hash mismatch, seq=" << header.record_sequencing_id
<< " expected_hash=" << std::hex << actual_record_hash << " actual_hash=" << std::hex << actual_record_hash
<< " actual_hash=" << std::hex << header.record_hash; << " expected_hash=" << std::hex << header.record_hash;
break; break;
} }
// Everything looks all right. Advance the sequencing id. // Everything looks all right. Advance the sequencing id.
...@@ -1410,8 +1410,10 @@ StatusOr<base::StringPiece> StorageQueue::SingleFile::Read( ...@@ -1410,8 +1410,10 @@ StatusOr<base::StringPiece> StorageQueue::SingleFile::Read(
data_start_ = 0; data_start_ = 0;
} }
size_t actual_size = data_end_ - data_start_; size_t actual_size = data_end_ - data_start_;
pos += actual_size;
while (actual_size < size) { while (actual_size < size) {
// Read as much as possible. // Read as much as possible.
DCHECK_LT(data_end_, buffer_size_);
const int32_t result = const int32_t result =
handle_->Read(pos, reinterpret_cast<char*>(buffer_.get() + data_end_), handle_->Read(pos, reinterpret_cast<char*>(buffer_.get() + data_end_),
buffer_size_ - data_end_); buffer_size_ - data_end_);
......
...@@ -269,7 +269,7 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> { ...@@ -269,7 +269,7 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> {
.set_single_file_size(GetParam()); .set_single_file_size(GetParam());
} }
void CreateStorageQueueOrDie(const QueueOptions& options) { void CreateTestStorageQueueOrDie(const QueueOptions& options) {
ASSERT_FALSE(storage_queue_) << "StorageQueue already assigned"; ASSERT_FALSE(storage_queue_) << "StorageQueue already assigned";
test_encryption_module_ = test_encryption_module_ =
base::MakeRefCounted<test::TestEncryptionModule>(); base::MakeRefCounted<test::TestEncryptionModule>();
...@@ -285,6 +285,11 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> { ...@@ -285,6 +285,11 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> {
storage_queue_ = std::move(storage_queue_result.ValueOrDie()); storage_queue_ = std::move(storage_queue_result.ValueOrDie());
} }
void ResetTestStorageQueue() {
task_environment_.RunUntilIdle();
storage_queue_.reset();
}
void InjectFailures(std::initializer_list<uint64_t> seq_numbers) { void InjectFailures(std::initializer_list<uint64_t> seq_numbers) {
storage_queue_->TestInjectBlockReadErrors(seq_numbers); storage_queue_->TestInjectBlockReadErrors(seq_numbers);
} }
...@@ -351,50 +356,50 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> { ...@@ -351,50 +356,50 @@ class StorageQueueTest : public ::testing::TestWithParam<size_t> {
base::test::TaskEnvironment::TimeSource::MOCK_TIME}; base::test::TaskEnvironment::TimeSource::MOCK_TIME};
}; };
constexpr std::array<const char*, 3> data = {"Rec1111", "Rec222", "Rec33"}; constexpr std::array<const char*, 3> kData = {"Rec1111", "Rec222", "Rec33"};
constexpr std::array<const char*, 3> more_data = {"More1111", "More222", constexpr std::array<const char*, 3> kMoreData = {"More1111", "More222",
"More33"}; "More33"};
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndReopen) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndReopen) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())).Times(0); EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())).Times(0);
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenAndWriteMore) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenAndWriteMore) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())).Times(0); EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())).Times(0);
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUpload) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUpload) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -402,10 +407,10 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUpload) { ...@@ -402,10 +407,10 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUpload) {
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Inject simulated failures. // Inject simulated failures.
InjectFailures({1}); InjectFailures({1});
...@@ -414,9 +419,9 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) { ...@@ -414,9 +419,9 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.RequiredGap(1, 1) .RequiredGap(1, 1)
.Possible(2, data[2]); // Depending on records binpacking .Possible(2, kData[2]); // Depending on records binpacking
})); }));
// Trigger upload. // Trigger upload.
...@@ -424,28 +429,28 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) { ...@@ -424,28 +429,28 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndUploadWithFailures) {
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndUpload) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndUpload) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -454,15 +459,15 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndUpload) { ...@@ -454,15 +459,15 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndUpload) {
TEST_P(StorageQueueTest, TEST_P(StorageQueueTest,
WriteIntoNewStorageQueueReopenWithMissingMetadataWriteMoreAndUpload) { WriteIntoNewStorageQueueReopenWithMissingMetadataWriteMoreAndUpload) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Save copy of options. // Save copy of options.
const QueueOptions options = storage_queue_->options(); const QueueOptions options = storage_queue_->options();
storage_queue_.reset(); ResetTestStorageQueue();
// Delete all metadata files. // Delete all metadata files.
base::FileEnumerator dir_enum( base::FileEnumerator dir_enum(
...@@ -475,18 +480,18 @@ TEST_P(StorageQueueTest, ...@@ -475,18 +480,18 @@ TEST_P(StorageQueueTest,
} }
// Reopen, starting a new generation. // Reopen, starting a new generation.
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. Previous data is all lost. // Set uploader expectations. Previous data is all lost.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, more_data[0]) .Required(0, kMoreData[0])
.Required(1, more_data[1]) .Required(1, kMoreData[1])
.Required(2, more_data[2]); .Required(2, kMoreData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -495,18 +500,18 @@ TEST_P(StorageQueueTest, ...@@ -495,18 +500,18 @@ TEST_P(StorageQueueTest,
TEST_P(StorageQueueTest, TEST_P(StorageQueueTest,
WriteIntoNewStorageQueueReopenWithMissingDataWriteMoreAndUpload) { WriteIntoNewStorageQueueReopenWithMissingDataWriteMoreAndUpload) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Save copy of options. // Save copy of options.
const QueueOptions options = storage_queue_->options(); const QueueOptions options = storage_queue_->options();
storage_queue_.reset(); ResetTestStorageQueue();
// Reopen with the same generation and sequencing information. // Reopen with the same generation and sequencing information.
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
// Delete the first data file. // Delete the first data file.
base::FilePath full_name = options.directory().Append( base::FilePath full_name = options.directory().Append(
...@@ -514,9 +519,9 @@ TEST_P(StorageQueueTest, ...@@ -514,9 +519,9 @@ TEST_P(StorageQueueTest,
base::DeleteFile(full_name); base::DeleteFile(full_name);
// Write more data. // Write more data.
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. Previous data is all lost. // Set uploader expectations. Previous data is all lost.
// The expected results depend on the test configuration. // The expected results depend on the test configuration.
...@@ -526,11 +531,11 @@ TEST_P(StorageQueueTest, ...@@ -526,11 +531,11 @@ TEST_P(StorageQueueTest,
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.PossibleGap(0, 1) .PossibleGap(0, 1)
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
break; break;
case 256: // two records in file - deletion killed the first two records. case 256: // two records in file - deletion killed the first two records.
...@@ -540,9 +545,9 @@ TEST_P(StorageQueueTest, ...@@ -540,9 +545,9 @@ TEST_P(StorageQueueTest,
.PossibleGap(0, 2) .PossibleGap(0, 2)
.Failure( .Failure(
2, Status(error::DATA_LOSS, "Last record digest mismatch")) 2, Status(error::DATA_LOSS, "Last record digest mismatch"))
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
break; break;
default: // UNlimited file size - deletion above killed all the data. default: // UNlimited file size - deletion above killed all the data.
...@@ -557,18 +562,18 @@ TEST_P(StorageQueueTest, ...@@ -557,18 +562,18 @@ TEST_P(StorageQueueTest,
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndFlush) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndFlush) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Flush manually. // Flush manually.
...@@ -576,28 +581,28 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndFlush) { ...@@ -576,28 +581,28 @@ TEST_P(StorageQueueTest, WriteIntoNewStorageQueueAndFlush) {
} }
TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndFlush) { TEST_P(StorageQueueTest, WriteIntoNewStorageQueueReopenWriteMoreAndFlush) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual());
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
// Flush manually. // Flush manually.
...@@ -609,7 +614,7 @@ TEST_P(StorageQueueTest, ValidateVariousRecordSizes) { ...@@ -609,7 +614,7 @@ TEST_P(StorageQueueTest, ValidateVariousRecordSizes) {
for (size_t i = 16; i < 16 + 16; ++i) { for (size_t i = 16; i < 16 + 16; ++i) {
data.emplace_back(i, 'R'); data.emplace_back(i, 'R');
} }
CreateStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsOnlyManual());
for (const auto& record : data) { for (const auto& record : data) {
WriteStringOrDie(record); WriteStringOrDie(record);
} }
...@@ -628,19 +633,19 @@ TEST_P(StorageQueueTest, ValidateVariousRecordSizes) { ...@@ -628,19 +633,19 @@ TEST_P(StorageQueueTest, ValidateVariousRecordSizes) {
} }
TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) { TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
...@@ -652,8 +657,8 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -652,8 +657,8 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -663,24 +668,24 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -663,24 +668,24 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) {
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client).Required(2, data[2]); MockUploadClient::SetUp(mock_upload_client).Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
// Add more data and verify that #2 and new data are returned. // Add more data and verify that #2 and new data are returned.
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -691,27 +696,27 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -691,27 +696,27 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmations) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
} }
TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) { TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
...@@ -723,8 +728,8 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) { ...@@ -723,8 +728,8 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -734,29 +739,29 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) { ...@@ -734,29 +739,29 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) {
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client).Required(2, data[2]); MockUploadClient::SetUp(mock_upload_client).Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
// Add more data and verify that #2 and new data are returned. // Add more data and verify that #2 and new data are returned.
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -767,28 +772,28 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) { ...@@ -767,28 +772,28 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyUploadWithConfirmationsAndReopen) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
} }
TEST_P(StorageQueueTest, TEST_P(StorageQueueTest,
WriteAndRepeatedlyUploadWithConfirmationsAndReopenWithFailures) { WriteAndRepeatedlyUploadWithConfirmationsAndReopenWithFailures) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
...@@ -800,8 +805,8 @@ TEST_P(StorageQueueTest, ...@@ -800,8 +805,8 @@ TEST_P(StorageQueueTest,
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -811,18 +816,18 @@ TEST_P(StorageQueueTest, ...@@ -811,18 +816,18 @@ TEST_P(StorageQueueTest,
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client).Required(2, data[2]); MockUploadClient::SetUp(mock_upload_client).Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
storage_queue_.reset(); ResetTestStorageQueue();
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
// Add more data and verify that #2 and new data are returned. // Add more data and verify that #2 and new data are returned.
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
// Inject simulated failures. // Inject simulated failures.
InjectFailures({4, 5}); InjectFailures({4, 5});
...@@ -831,10 +836,10 @@ TEST_P(StorageQueueTest, ...@@ -831,10 +836,10 @@ TEST_P(StorageQueueTest,
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
// Gap may be 2 records at once or 2 gaps 1 record each. // Gap may be 2 records at once or 2 gaps 1 record each.
.PossibleGap(4, 2) .PossibleGap(4, 2)
.PossibleGap(4, 1) .PossibleGap(4, 1)
...@@ -852,15 +857,15 @@ TEST_P(StorageQueueTest, ...@@ -852,15 +857,15 @@ TEST_P(StorageQueueTest,
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
} }
TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUpload) { TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUpload) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsImmediate()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsImmediate());
// Upload is initiated asynchronously, so it may happen after the next // Upload is initiated asynchronously, so it may happen after the next
// record is also written. Because of that we set expectations for the // record is also written. Because of that we set expectations for the
...@@ -868,31 +873,31 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUpload) { ...@@ -868,31 +873,31 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUpload) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
} }
TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsImmediate()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsImmediate());
// Upload is initiated asynchronously, so it may happen after the next // Upload is initiated asynchronously, so it may happen after the next
// record is also written. Because of the Confirmation below, we set // record is also written. Because of the Confirmation below, we set
...@@ -901,27 +906,27 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { ...@@ -901,27 +906,27 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(data[0]); WriteStringOrDie(kData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(data[1]); WriteStringOrDie(kData[1]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Required(2, data[2]); // Not confirmed - hence |Required| .Required(2, kData[2]); // Not confirmed - hence |Required|
})); }));
WriteStringOrDie(data[2]); WriteStringOrDie(kData[2]);
// Confirm #1, removing data #0 and #1 // Confirm #1, removing data #0 and #1
ConfirmOrDie(/*seq_number=*/1); ConfirmOrDie(/*seq_number=*/1);
...@@ -933,34 +938,34 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { ...@@ -933,34 +938,34 @@ TEST_P(StorageQueueTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Possible(4, more_data[1]) .Possible(4, kMoreData[1])
.Possible(5, more_data[2]); .Possible(5, kMoreData[2]);
})); }));
WriteStringOrDie(more_data[0]); WriteStringOrDie(kMoreData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Possible(5, more_data[2]); .Possible(5, kMoreData[2]);
})); }));
WriteStringOrDie(more_data[1]); WriteStringOrDie(kMoreData[1]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(NotNull()))
.WillOnce(Invoke([](MockUploadClient* mock_upload_client) { .WillOnce(Invoke([](MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(mock_upload_client) MockUploadClient::SetUp(mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
WriteStringOrDie(more_data[2]); WriteStringOrDie(kMoreData[2]);
} }
TEST_P(StorageQueueTest, WriteEncryptFailure) { TEST_P(StorageQueueTest, WriteEncryptFailure) {
CreateStorageQueueOrDie(BuildStorageQueueOptionsPeriodic()); CreateTestStorageQueueOrDie(BuildStorageQueueOptionsPeriodic());
DCHECK(test_encryption_module_); DCHECK(test_encryption_module_);
EXPECT_CALL(*test_encryption_module_, EncryptRecord(_, _)) EXPECT_CALL(*test_encryption_module_, EncryptRecord(_, _))
.WillOnce(WithArg<1>( .WillOnce(WithArg<1>(
......
...@@ -605,16 +605,16 @@ class StorageTest ...@@ -605,16 +605,16 @@ class StorageTest
set_mock_uploader_expectations_; set_mock_uploader_expectations_;
}; };
constexpr std::array<const char*, 3> data = {"Rec1111", "Rec222", "Rec33"}; constexpr std::array<const char*, 3> kData = {"Rec1111", "Rec222", "Rec33"};
constexpr std::array<const char*, 3> more_data = {"More1111", "More222", constexpr std::array<const char*, 3> kMoreData = {"More1111", "More222",
"More33"}; "More33"};
TEST_P(StorageTest, WriteIntoNewStorageAndReopen) { TEST_P(StorageTest, WriteIntoNewStorageAndReopen) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
EXPECT_CALL(set_mock_uploader_expectations_, Call(_, NotNull())).Times(0); EXPECT_CALL(set_mock_uploader_expectations_, Call(_, NotNull())).Times(0);
WriteStringOrDie(FAST_BATCH, data[0]); WriteStringOrDie(FAST_BATCH, kData[0]);
WriteStringOrDie(FAST_BATCH, data[1]); WriteStringOrDie(FAST_BATCH, kData[1]);
WriteStringOrDie(FAST_BATCH, data[2]); WriteStringOrDie(FAST_BATCH, kData[2]);
ResetTestStorage(); ResetTestStorage();
...@@ -624,32 +624,32 @@ TEST_P(StorageTest, WriteIntoNewStorageAndReopen) { ...@@ -624,32 +624,32 @@ TEST_P(StorageTest, WriteIntoNewStorageAndReopen) {
TEST_P(StorageTest, WriteIntoNewStorageReopenAndWriteMore) { TEST_P(StorageTest, WriteIntoNewStorageReopenAndWriteMore) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
EXPECT_CALL(set_mock_uploader_expectations_, Call(_, NotNull())).Times(0); EXPECT_CALL(set_mock_uploader_expectations_, Call(_, NotNull())).Times(0);
WriteStringOrDie(FAST_BATCH, data[0]); WriteStringOrDie(FAST_BATCH, kData[0]);
WriteStringOrDie(FAST_BATCH, data[1]); WriteStringOrDie(FAST_BATCH, kData[1]);
WriteStringOrDie(FAST_BATCH, data[2]); WriteStringOrDie(FAST_BATCH, kData[2]);
ResetTestStorage(); ResetTestStorage();
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(FAST_BATCH, more_data[0]); WriteStringOrDie(FAST_BATCH, kMoreData[0]);
WriteStringOrDie(FAST_BATCH, more_data[1]); WriteStringOrDie(FAST_BATCH, kMoreData[1]);
WriteStringOrDie(FAST_BATCH, more_data[2]); WriteStringOrDie(FAST_BATCH, kMoreData[2]);
} }
TEST_P(StorageTest, WriteIntoNewStorageAndUpload) { TEST_P(StorageTest, WriteIntoNewStorageAndUpload) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(FAST_BATCH, data[0]); WriteStringOrDie(FAST_BATCH, kData[0]);
WriteStringOrDie(FAST_BATCH, data[1]); WriteStringOrDie(FAST_BATCH, kData[1]);
WriteStringOrDie(FAST_BATCH, data[2]); WriteStringOrDie(FAST_BATCH, kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -658,28 +658,28 @@ TEST_P(StorageTest, WriteIntoNewStorageAndUpload) { ...@@ -658,28 +658,28 @@ TEST_P(StorageTest, WriteIntoNewStorageAndUpload) {
TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndUpload) { TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndUpload) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(FAST_BATCH, data[0]); WriteStringOrDie(FAST_BATCH, kData[0]);
WriteStringOrDie(FAST_BATCH, data[1]); WriteStringOrDie(FAST_BATCH, kData[1]);
WriteStringOrDie(FAST_BATCH, data[2]); WriteStringOrDie(FAST_BATCH, kData[2]);
ResetTestStorage(); ResetTestStorage();
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(FAST_BATCH, more_data[0]); WriteStringOrDie(FAST_BATCH, kMoreData[0]);
WriteStringOrDie(FAST_BATCH, more_data[1]); WriteStringOrDie(FAST_BATCH, kMoreData[1]);
WriteStringOrDie(FAST_BATCH, more_data[2]); WriteStringOrDie(FAST_BATCH, kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -688,9 +688,9 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndUpload) { ...@@ -688,9 +688,9 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndUpload) {
TEST_P(StorageTest, WriteIntoNewStorageAndFlush) { TEST_P(StorageTest, WriteIntoNewStorageAndFlush) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(MANUAL_BATCH, data[0]); WriteStringOrDie(MANUAL_BATCH, kData[0]);
WriteStringOrDie(MANUAL_BATCH, data[1]); WriteStringOrDie(MANUAL_BATCH, kData[1]);
WriteStringOrDie(MANUAL_BATCH, data[2]); WriteStringOrDie(MANUAL_BATCH, kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, EXPECT_CALL(set_mock_uploader_expectations_,
...@@ -698,9 +698,9 @@ TEST_P(StorageTest, WriteIntoNewStorageAndFlush) { ...@@ -698,9 +698,9 @@ TEST_P(StorageTest, WriteIntoNewStorageAndFlush) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -709,16 +709,16 @@ TEST_P(StorageTest, WriteIntoNewStorageAndFlush) { ...@@ -709,16 +709,16 @@ TEST_P(StorageTest, WriteIntoNewStorageAndFlush) {
TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) { TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(MANUAL_BATCH, data[0]); WriteStringOrDie(MANUAL_BATCH, kData[0]);
WriteStringOrDie(MANUAL_BATCH, data[1]); WriteStringOrDie(MANUAL_BATCH, kData[1]);
WriteStringOrDie(MANUAL_BATCH, data[2]); WriteStringOrDie(MANUAL_BATCH, kData[2]);
ResetTestStorage(); ResetTestStorage();
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(MANUAL_BATCH, more_data[0]); WriteStringOrDie(MANUAL_BATCH, kMoreData[0]);
WriteStringOrDie(MANUAL_BATCH, more_data[1]); WriteStringOrDie(MANUAL_BATCH, kMoreData[1]);
WriteStringOrDie(MANUAL_BATCH, more_data[2]); WriteStringOrDie(MANUAL_BATCH, kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, EXPECT_CALL(set_mock_uploader_expectations_,
...@@ -726,12 +726,12 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) { ...@@ -726,12 +726,12 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
// Trigger upload. // Trigger upload.
...@@ -741,18 +741,18 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) { ...@@ -741,18 +741,18 @@ TEST_P(StorageTest, WriteIntoNewStorageReopenWriteMoreAndFlush) {
TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) { TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) {
CreateTestStorageOrDie(BuildTestStorageOptions()); CreateTestStorageOrDie(BuildTestStorageOptions());
WriteStringOrDie(FAST_BATCH, data[0]); WriteStringOrDie(FAST_BATCH, kData[0]);
WriteStringOrDie(FAST_BATCH, data[1]); WriteStringOrDie(FAST_BATCH, kData[1]);
WriteStringOrDie(FAST_BATCH, data[2]); WriteStringOrDie(FAST_BATCH, kData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
...@@ -765,8 +765,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -765,8 +765,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -778,25 +778,25 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -778,25 +778,25 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
// Forward time to trigger upload // Forward time to trigger upload
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
// Add more records and verify that #2 and new records are returned. // Add more records and verify that #2 and new records are returned.
WriteStringOrDie(FAST_BATCH, more_data[0]); WriteStringOrDie(FAST_BATCH, kMoreData[0]);
WriteStringOrDie(FAST_BATCH, more_data[1]); WriteStringOrDie(FAST_BATCH, kMoreData[1]);
WriteStringOrDie(FAST_BATCH, more_data[2]); WriteStringOrDie(FAST_BATCH, kMoreData[2]);
// Set uploader expectations. // Set uploader expectations.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
...@@ -808,9 +808,9 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) { ...@@ -808,9 +808,9 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadWithConfirmations) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1));
} }
...@@ -825,32 +825,32 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUpload) { ...@@ -825,32 +825,32 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUpload) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, WriteStringOrDie(IMMEDIATE,
data[0]); // Immediately uploads and verifies. kData[0]); // Immediately uploads and verifies.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, WriteStringOrDie(IMMEDIATE,
data[1]); // Immediately uploads and verifies. kData[1]); // Immediately uploads and verifies.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, data[0]) .Required(0, kData[0])
.Required(1, data[1]) .Required(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, WriteStringOrDie(IMMEDIATE,
data[2]); // Immediately uploads and verifies. kData[2]); // Immediately uploads and verifies.
} }
TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
...@@ -864,29 +864,29 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { ...@@ -864,29 +864,29 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[0]); WriteStringOrDie(IMMEDIATE, kData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[1]); WriteStringOrDie(IMMEDIATE, kData[1]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[2]); WriteStringOrDie(IMMEDIATE, kData[2]);
// Confirm #1, removing data #0 and #1 // Confirm #1, removing data #0 and #1
ConfirmOrDie(IMMEDIATE, /*sequencing_id=*/1); ConfirmOrDie(IMMEDIATE, /*sequencing_id=*/1);
...@@ -899,32 +899,32 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) { ...@@ -899,32 +899,32 @@ TEST_P(StorageTest, WriteAndRepeatedlyImmediateUploadWithConfirmations) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Possible(4, more_data[1]) .Possible(4, kMoreData[1])
.Possible(5, more_data[2]); .Possible(5, kMoreData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, more_data[0]); WriteStringOrDie(IMMEDIATE, kMoreData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Possible(5, more_data[2]); .Possible(5, kMoreData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, more_data[1]); WriteStringOrDie(IMMEDIATE, kMoreData[1]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(2, data[2]) .Required(2, kData[2])
.Required(3, more_data[0]) .Required(3, kMoreData[0])
.Required(4, more_data[1]) .Required(4, kMoreData[1])
.Required(5, more_data[2]); .Required(5, kMoreData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, more_data[2]); WriteStringOrDie(IMMEDIATE, kMoreData[2]);
} }
TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) { TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) {
...@@ -938,22 +938,22 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) { ...@@ -938,22 +938,22 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[0]); WriteStringOrDie(IMMEDIATE, kData[0]);
WriteStringOrDie(SLOW_BATCH, more_data[0]); WriteStringOrDie(SLOW_BATCH, kMoreData[0]);
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(IMMEDIATE), NotNull()))
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(0, data[0]) .Possible(0, kData[0])
.Possible(1, data[1]) .Possible(1, kData[1])
.Possible(2, data[2]); .Possible(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[1]); WriteStringOrDie(IMMEDIATE, kData[1]);
WriteStringOrDie(SLOW_BATCH, more_data[1]); WriteStringOrDie(SLOW_BATCH, kMoreData[1]);
// Set uploader expectations for SLOW_BATCH. // Set uploader expectations for SLOW_BATCH.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
...@@ -965,8 +965,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) { ...@@ -965,8 +965,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Required(0, more_data[0]) .Required(0, kMoreData[0])
.Required(1, more_data[1]); .Required(1, kMoreData[1]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20));
...@@ -981,11 +981,11 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) { ...@@ -981,11 +981,11 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(priority, mock_upload_client) MockUploadClient::SetUp(priority, mock_upload_client)
.Possible(1, data[1]) .Possible(1, kData[1])
.Required(2, data[2]); .Required(2, kData[2]);
})); }));
WriteStringOrDie(IMMEDIATE, data[2]); WriteStringOrDie(IMMEDIATE, kData[2]);
WriteStringOrDie(SLOW_BATCH, more_data[2]); WriteStringOrDie(SLOW_BATCH, kMoreData[2]);
// Set uploader expectations for SLOW_BATCH. // Set uploader expectations for SLOW_BATCH.
EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull())) EXPECT_CALL(set_mock_uploader_expectations_, Call(Eq(FAST_BATCH), NotNull()))
...@@ -997,8 +997,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) { ...@@ -997,8 +997,8 @@ TEST_P(StorageTest, WriteAndRepeatedlyUploadMultipleQueues) {
.WillOnce( .WillOnce(
Invoke([](Priority priority, MockUploadClient* mock_upload_client) { Invoke([](Priority priority, MockUploadClient* mock_upload_client) {
MockUploadClient::SetUp(SLOW_BATCH, mock_upload_client) MockUploadClient::SetUp(SLOW_BATCH, mock_upload_client)
.Required(1, more_data[1]) .Required(1, kMoreData[1])
.Required(2, more_data[2]); .Required(2, kMoreData[2]);
})); }));
task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20)); task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(20));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment