27 std::vector<RetainPtr<
const CPDF_Stream>> streams;
28 streams.push_back(pdfium::MakeRetain<CPDF_Stream>());
30 pdfium::MakeRetain<CPDF_SeekableMultiStream>(
std::move(streams));
32 uint8_t output_buffer[16];
33 memset(output_buffer, 0xbd,
sizeof(output_buffer));
34 EXPECT_FALSE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 0));
35 EXPECT_EQ(0xbd, output_buffer[0]);
40 static const char kOne[] =
"one t";
41 static const char kTwo[] =
"wo ";
42 static const char kThree[] =
"three!!!";
44 ByteStringView one_view(kOne);
45 ByteStringView two_view(kTwo);
46 ByteStringView three_view(kThree);
47 auto stream1 = pdfium::MakeRetain<CPDF_Stream>(
48 DataVector<uint8_t>(one_view.begin(), one_view.end()),
49 pdfium::MakeRetain<CPDF_Dictionary>());
50 auto stream2 = pdfium::MakeRetain<CPDF_Stream>(
51 DataVector<uint8_t>(two_view.begin(), two_view.end()),
52 pdfium::MakeRetain<CPDF_Dictionary>());
53 auto stream3 = pdfium::MakeRetain<CPDF_Stream>(
54 DataVector<uint8_t>(three_view.begin(), three_view.end()),
55 pdfium::MakeRetain<CPDF_Dictionary>());
57 std::vector<RetainPtr<
const CPDF_Stream>> streams;
58 streams.push_back(
std::move(stream1));
59 streams.push_back(
std::move(stream2));
60 streams.push_back(
std::move(stream3));
62 pdfium::MakeRetain<CPDF_SeekableMultiStream>(
std::move(streams));
64 uint8_t output_buffer[16];
65 memset(output_buffer, 0xbd,
sizeof(output_buffer));
66 EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 0));
67 EXPECT_EQ(0xbd, output_buffer[0]);
69 memset(output_buffer, 0xbd,
sizeof(output_buffer));
70 EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 0u}, 1));
71 EXPECT_EQ(0xbd, output_buffer[0]);
73 memset(output_buffer, 0xbd,
sizeof(output_buffer));
74 EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 1u}, 0));
75 EXPECT_EQ(0, memcmp(output_buffer,
"o", 1));
76 EXPECT_EQ(0xbd, output_buffer[1]);
78 memset(output_buffer, 0xbd,
sizeof(output_buffer));
79 EXPECT_TRUE(fileread->ReadBlockAtOffset(output_buffer, 0));
80 EXPECT_EQ(0, memcmp(output_buffer,
"one two three!!!", 16));
82 memset(output_buffer, 0xbd,
sizeof(output_buffer));
83 EXPECT_TRUE(fileread->ReadBlockAtOffset({output_buffer, 10u}, 2));
84 EXPECT_EQ(0, memcmp(output_buffer,
"e two thre", 10));
85 EXPECT_EQ(0xbd, output_buffer[11]);
87 memset(output_buffer, 0xbd,
sizeof(output_buffer));
88 EXPECT_FALSE(fileread->ReadBlockAtOffset(output_buffer, 1));
89 EXPECT_EQ(0, memcmp(output_buffer,
"ne two three!!!", 15));
90 EXPECT_EQ(0xbd, output_buffer[15]);