diff options
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp b/Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp index f1ebdc4d798..e5bf646ec90 100644 --- a/Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp +++ b/Build/source/texk/dvisvgm/dvisvgm-src/tests/StreamInputBufferTest.cpp @@ -21,6 +21,7 @@ #include <gtest/gtest.h> #include <map> #include <sstream> +#include <stdexcept> #include <string> #include "InputBuffer.hpp" #include "InputReader.hpp" @@ -83,6 +84,20 @@ TEST(StreamInputBufferTest, skip) { } +TEST(StreamInputBufferTest, readUntil) { + istringstream iss("abcdefghijklmnopqrstuvwxyz"); + StreamInputBuffer buffer(iss, 10); + BufferInputReader in(buffer); + EXPECT_EQ(in.readUntil("ijk"), "abcdefghijk"); + EXPECT_EQ(in.peek(), 'l'); + EXPECT_EQ(in.readUntil("q"), "lmnopq"); + EXPECT_EQ(in.peek(), 'r'); + EXPECT_EQ(in.readUntil("X"), "rstuvwxyz"); + EXPECT_LT(in.peek(), 0); + EXPECT_TRUE(in.eof()); +} + + TEST(StreamInputBufferTest, parseInt) { istringstream iss("1234,-5,+6,10.-"); StreamInputBuffer buffer(iss, 10); @@ -180,16 +195,34 @@ TEST(StreamInputBufferTest, parseDouble) { } -TEST(StreamInputBufferTest, attribs) { - istringstream iss("aaa=1 bbb=2 ccc=3 d e"); +TEST(StreamInputBufferTest, attribs1) { + istringstream iss("aaa=1 bbb=2 c-c-c=3 3d=4 e"); StreamInputBuffer buffer(iss, 10); BufferInputReader in(buffer); map<string,string> attr; - int s = in.parseAttributes(attr); + int s = in.parseAttributes(attr, true); EXPECT_EQ(s, 3); EXPECT_EQ(attr["aaa"], "1"); EXPECT_EQ(attr["bbb"], "2"); - EXPECT_EQ(attr["ccc"], "3"); + EXPECT_EQ(attr["c-c-c"], "3"); + EXPECT_THROW(attr.at("3d"), std::out_of_range); + EXPECT_THROW(attr.at("e"), std::out_of_range); +} + + +TEST(StreamInputBufferTest, attribs2) { + istringstream iss("aaa='1' bbb='2' c-c-c='3' d e='value'"); + StreamInputBuffer buffer(iss, 10); + BufferInputReader in(buffer); + map<string,string> attr; + int s = in.parseAttributes(attr, false, "'"); + EXPECT_EQ(s, 5); + EXPECT_EQ(attr["aaa"], "1"); + EXPECT_EQ(attr["bbb"], "2"); + EXPECT_EQ(attr["c-c-c"], "3"); + EXPECT_EQ(attr["e"], "value"); + EXPECT_NO_THROW(attr.at("d")); + EXPECT_TRUE(attr.at("d").empty()); } |