From 1fb7ce5a604db78c4d02f719053827269705ce13 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 29 Oct 2013 15:58:21 -0700 Subject: Add classes for reading and writing files --- src/io/read_test.cpp | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/io/read_test.cpp (limited to 'src/io/read_test.cpp') 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 + +#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)); +} -- cgit v1.2.3-70-g09d2