Delete FileRotatingStream read support.
Followup to https://webrtc-review.googlesource.com/c/src/+/115302
Bug: webrtc:7811
Change-Id: I81b4eeb4c244b7125ab8e84bc92b03a20e65478f
Reviewed-on: https://webrtc-review.googlesource.com/c/4821
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26156}
diff --git a/rtc_base/filerotatingstream_unittest.cc b/rtc_base/filerotatingstream_unittest.cc
index 07a3e1a..dc23e34 100644
--- a/rtc_base/filerotatingstream_unittest.cc
+++ b/rtc_base/filerotatingstream_unittest.cc
@@ -80,24 +80,9 @@
const size_t expected_length,
const std::string& dir_path,
const char* file_prefix) {
- // TODO(nisse): Delete the part of this method using read-mode
- // FileRotatingStream, together with support for read-mode.
- std::unique_ptr<FileRotatingStream> stream;
- stream.reset(new FileRotatingStream(dir_path, file_prefix));
- ASSERT_TRUE(stream->Open());
- size_t read = 0;
- size_t stream_size = 0;
- EXPECT_TRUE(stream->GetSize(&stream_size));
- std::unique_ptr<uint8_t[]> buffer(new uint8_t[expected_length]);
- EXPECT_EQ(SR_SUCCESS,
- stream->ReadAll(buffer.get(), expected_length, &read, nullptr));
- EXPECT_EQ(0, memcmp(expected_contents, buffer.get(), expected_length));
- EXPECT_EQ(SR_EOS, stream->ReadAll(buffer.get(), 1, nullptr, nullptr));
- EXPECT_EQ(stream_size, read);
-
- // Test also with the FileRotatingStreamReader class.
FileRotatingStreamReader reader(dir_path, file_prefix);
EXPECT_EQ(reader.GetSize(), expected_length);
+ std::unique_ptr<uint8_t[]> buffer(new uint8_t[expected_length]);
memset(buffer.get(), 0, expected_length);
EXPECT_EQ(expected_length, reader.ReadAll(buffer.get(), expected_length));
EXPECT_EQ(0, memcmp(expected_contents, buffer.get(), expected_length));
@@ -109,9 +94,12 @@
std::unique_ptr<uint8_t[]> buffer(new uint8_t[expected_length]);
FileStream stream;
ASSERT_TRUE(stream.Open(file_path, "r", nullptr));
- EXPECT_EQ(rtc::SR_SUCCESS,
- stream.ReadAll(buffer.get(), expected_length, nullptr, nullptr));
- EXPECT_EQ(0, memcmp(expected_contents, buffer.get(), expected_length));
+ size_t size_read = 0;
+ EXPECT_EQ(rtc::SR_SUCCESS, stream.ReadAll(buffer.get(), expected_length,
+ &size_read, nullptr));
+ EXPECT_EQ(size_read, expected_length);
+ EXPECT_EQ(0, memcmp(expected_contents, buffer.get(),
+ std::min(expected_length, size_read)));
size_t file_size = 0;
EXPECT_TRUE(stream.GetSize(&file_size));
EXPECT_EQ(file_size, expected_length);
@@ -302,24 +290,9 @@
void VerifyStreamRead(const char* expected_contents,
const size_t expected_length,
const std::string& dir_path) {
- // TODO(nisse): Delete the part of this method using read-mode
- // CallSessionFileRotatingStream, together with support for read-mode.
- std::unique_ptr<CallSessionFileRotatingStream> stream(
- new CallSessionFileRotatingStream(dir_path));
- ASSERT_TRUE(stream->Open());
- size_t read = 0;
- size_t stream_size = 0;
- EXPECT_TRUE(stream->GetSize(&stream_size));
- std::unique_ptr<uint8_t[]> buffer(new uint8_t[expected_length]);
- EXPECT_EQ(SR_SUCCESS,
- stream->ReadAll(buffer.get(), expected_length, &read, nullptr));
- EXPECT_EQ(0, memcmp(expected_contents, buffer.get(), expected_length));
- EXPECT_EQ(SR_EOS, stream->ReadAll(buffer.get(), 1, nullptr, nullptr));
- EXPECT_EQ(stream_size, read);
-
- // Test also with the CallSessionFileRotatingStreamReader class.
CallSessionFileRotatingStreamReader reader(dir_path);
EXPECT_EQ(reader.GetSize(), expected_length);
+ std::unique_ptr<uint8_t[]> buffer(new uint8_t[expected_length]);
memset(buffer.get(), 0, expected_length);
EXPECT_EQ(expected_length, reader.ReadAll(buffer.get(), expected_length));
EXPECT_EQ(0, memcmp(expected_contents, buffer.get(), expected_length));
@@ -369,17 +342,25 @@
stream_->WriteAll(buffer.get(), buffer_size, nullptr, nullptr));
}
- stream_.reset(new CallSessionFileRotatingStream(dir_path_));
- ASSERT_TRUE(stream_->Open());
- std::unique_ptr<uint8_t[]> expected_buffer(new uint8_t[buffer_size]);
- int expected_vals[] = {0, 1, 2, 6, 7};
+ const int expected_vals[] = {0, 1, 2, 6, 7};
+ const size_t expected_size = buffer_size * arraysize(expected_vals);
+
+ CallSessionFileRotatingStreamReader reader(dir_path_);
+ EXPECT_EQ(reader.GetSize(), expected_size);
+ std::unique_ptr<uint8_t[]> contents(new uint8_t[expected_size + 1]);
+ EXPECT_EQ(reader.ReadAll(contents.get(), expected_size + 1), expected_size);
for (size_t i = 0; i < arraysize(expected_vals); ++i) {
- memset(expected_buffer.get(), expected_vals[i], buffer_size);
- EXPECT_EQ(SR_SUCCESS,
- stream_->ReadAll(buffer.get(), buffer_size, nullptr, nullptr));
- EXPECT_EQ(0, memcmp(buffer.get(), expected_buffer.get(), buffer_size));
+ const uint8_t* block = contents.get() + i * buffer_size;
+ bool match = true;
+ for (size_t j = 0; j < buffer_size; j++) {
+ if (block[j] != expected_vals[i]) {
+ match = false;
+ break;
+ }
+ }
+ // EXPECT call at end of loop, to limit the number of messages on failure.
+ EXPECT_TRUE(match);
}
- EXPECT_EQ(SR_EOS, stream_->ReadAll(buffer.get(), 1, nullptr, nullptr));
}
// Tests that writing and reading to a stream where only the first file is
@@ -396,17 +377,26 @@
stream_->WriteAll(buffer.get(), buffer_size, nullptr, nullptr));
}
- stream_.reset(new CallSessionFileRotatingStream(dir_path_));
- ASSERT_TRUE(stream_->Open());
- std::unique_ptr<uint8_t[]> expected_buffer(new uint8_t[buffer_size]);
- int expected_vals[] = {0, 1};
+ const int expected_vals[] = {0, 1};
+ const size_t expected_size = buffer_size * arraysize(expected_vals);
+
+ CallSessionFileRotatingStreamReader reader(dir_path_);
+ EXPECT_EQ(reader.GetSize(), expected_size);
+ std::unique_ptr<uint8_t[]> contents(new uint8_t[expected_size + 1]);
+ EXPECT_EQ(reader.ReadAll(contents.get(), expected_size + 1), expected_size);
+
for (size_t i = 0; i < arraysize(expected_vals); ++i) {
- memset(expected_buffer.get(), expected_vals[i], buffer_size);
- EXPECT_EQ(SR_SUCCESS,
- stream_->ReadAll(buffer.get(), buffer_size, nullptr, nullptr));
- EXPECT_EQ(0, memcmp(buffer.get(), expected_buffer.get(), buffer_size));
+ const uint8_t* block = contents.get() + i * buffer_size;
+ bool match = true;
+ for (size_t j = 0; j < buffer_size; j++) {
+ if (block[j] != expected_vals[i]) {
+ match = false;
+ break;
+ }
+ }
+ // EXPECT call at end of loop, to limit the number of messages on failure.
+ EXPECT_TRUE(match);
}
- EXPECT_EQ(SR_EOS, stream_->ReadAll(buffer.get(), 1, nullptr, nullptr));
}
} // namespace rtc