]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2369] Check saveLine() + ungetAll()
authorMukund Sivaraman <muks@isc.org>
Mon, 29 Oct 2012 04:15:52 +0000 (09:45 +0530)
committerMukund Sivaraman <muks@isc.org>
Mon, 29 Oct 2012 04:15:52 +0000 (09:45 +0530)
src/lib/dns/tests/inputsource_unittest.cc

index dc0a39a500de91a10ea0f6cd22c2bdfd04c1cfd6..4c7bf5c334724d63a0f21a58b4e622206bba47c0 100644 (file)
@@ -168,4 +168,36 @@ TEST_F(InputSourceTest, lines) {
     EXPECT_EQ(1, source_.getCurrentLine());
 }
 
+// ungetAll() after saveLine() should skip back to the last-saved place.
+TEST_F(InputSourceTest, saveLine) {
+    // First, skip to line 2.
+    while (!source_.atEOF() &&
+           (source_.getCurrentLine() != 2)) {
+        source_.getChar();
+    }
+    EXPECT_FALSE(source_.atEOF());
+    size_t line = source_.getCurrentLine();
+    EXPECT_EQ(2, line);
+
+    // Now, save the line.
+    source_.saveLine();
+
+    // Now, go to EOF
+    while (!source_.atEOF()) {
+        source_.getChar();
+    }
+    line = source_.getCurrentLine();
+
+    // Now, we are at EOF.
+    EXPECT_TRUE(source_.atEOF());
+    EXPECT_EQ(4, line);
+
+    // Now, ungetAll() and check where it goes back.
+    source_.ungetAll();
+
+    // Now we are back to where we last-saved.
+    EXPECT_EQ(2, source_.getCurrentLine());
+    EXPECT_FALSE(source_.atEOF());
+}
+
 } // end namespace