diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2013-10-29 15:58:21 -0700 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2013-11-15 15:45:08 -0800 |
commit | 1fb7ce5a604db78c4d02f719053827269705ce13 (patch) | |
tree | ab76f3977188a08c9c3c75866091926840a7cdbe /src/io/read_test.cpp | |
parent | 8c5e10e8ee6dc0d496d50b5365e6c3be7750fbfa (diff) | |
download | tmwa-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.cpp | 59 |
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)); +} |