summaryrefslogtreecommitdiff
path: root/src/io/read_test.cpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2013-10-29 15:58:21 -0700
committerBen Longbons <b.r.longbons@gmail.com>2013-11-15 15:45:08 -0800
commit1fb7ce5a604db78c4d02f719053827269705ce13 (patch)
treeab76f3977188a08c9c3c75866091926840a7cdbe /src/io/read_test.cpp
parent8c5e10e8ee6dc0d496d50b5365e6c3be7750fbfa (diff)
downloadtmwa-1fb7ce5a604db78c4d02f719053827269705ce13.tar.gz
tmwa-1fb7ce5a604db78c4d02f719053827269705ce13.tar.bz2
tmwa-1fb7ce5a604db78c4d02f719053827269705ce13.tar.xz
tmwa-1fb7ce5a604db78c4d02f719053827269705ce13.zip
Add classes for reading and writing files
Diffstat (limited to 'src/io/read_test.cpp')
-rw-r--r--src/io/read_test.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/io/read_test.cpp b/src/io/read_test.cpp
new file mode 100644
index 0000000..193777f
--- /dev/null
+++ b/src/io/read_test.cpp
@@ -0,0 +1,59 @@
+#include "read.hpp"
+
+#include <gtest/gtest.h>
+
+#include "../strings/zstring.hpp"
+
+static
+int string_pipe(ZString sz)
+{
+ // if this doesn't work we'll get test failures anyway
+ int pfd[2];
+ pipe(pfd);
+ write(pfd[1], sz.c_str(), sz.size());
+ close(pfd[1]);
+ return pfd[0];
+}
+
+TEST(io, read1)
+{
+ io::ReadFile rf(string_pipe("Hello"));
+ FString hi;
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_EQ(hi, "Hello");
+ EXPECT_FALSE(rf.getline(hi));
+}
+TEST(io, read2)
+{
+ io::ReadFile rf(string_pipe("Hello\n"));
+ FString hi;
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_EQ(hi, "Hello");
+ EXPECT_FALSE(rf.getline(hi));
+}
+TEST(io, read3)
+{
+ io::ReadFile rf(string_pipe("Hello\r"));
+ FString hi;
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_EQ(hi, "Hello");
+ EXPECT_FALSE(rf.getline(hi));
+}
+TEST(io, read4)
+{
+ io::ReadFile rf(string_pipe("Hello\r\n"));
+ FString hi;
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_EQ(hi, "Hello");
+ EXPECT_FALSE(rf.getline(hi));
+}
+TEST(io, read5)
+{
+ io::ReadFile rf(string_pipe("Hello\n\r"));
+ FString hi;
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_EQ(hi, "Hello");
+ EXPECT_TRUE(rf.getline(hi));
+ EXPECT_FALSE(hi);
+ EXPECT_FALSE(rf.getline(hi));
+}