TEST(BufferedLineReaderTest, BufferSizesMixedEndings)
{
    const char* lines[] = {
        "aaaaaaaaaaaaaaaa",
        "bbbbbbbbbb",
        "ccccccccccccc",
        "",
        "dddddd",
        "eeeeeeeeee",
        "fffffffffffffffffff"
    };
    const LineBreakType breaks[] = { Cr, Lf, CrLf, Cr, Lf, CrLf, Lf };
    const size_t numTestLines = WTF_ARRAY_LENGTH(lines);
    static_assert(numTestLines == WTF_ARRAY_LENGTH(breaks), "number of test lines and breaks should be the same");
    String data = MakeTestData(lines, breaks, numTestLines);

    for (size_t k = 0; k < WTF_ARRAY_LENGTH(blockSizes); ++k) {
        size_t lineCount = 0;
        BufferedLineReader reader;
        size_t blockSize = blockSizes[k];
        for (size_t i = 0; i < data.length(); i += blockSize) {
            reader.append(data.substring(i, blockSize));

            String line;
            while (reader.getLine(line)) {
                ASSERT_LT(lineCount, numTestLines);
                ASSERT_EQ(line, lines[lineCount++]);
            }
        }
        ASSERT_EQ(lineCount, numTestLines);
    }
}
Beispiel #2
0
DateTimeRangeTests::DateTimeRangeTests() : ::testing::Test()
{
   MakeTestData();
}