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