diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-03-03 14:16:32 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-03-03 14:16:32 +0900 |
| commit | 841fdbb965d0d2db7bd60cda08d138364a5e7366 (patch) | |
| tree | e06b0a8409646e6558be3e1d14e2af3a4e828230 /test/GZipFileTest.cc | |
| parent | 9b9987547840e90cb61c2364926e00dd6b6e2381 (diff) | |
Add GZipFileTest
For now, it is a copy of BufferedFileTest.cc
Diffstat (limited to 'test/GZipFileTest.cc')
| -rw-r--r-- | test/GZipFileTest.cc | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/GZipFileTest.cc b/test/GZipFileTest.cc new file mode 100644 index 00000000..9f070a80 --- /dev/null +++ b/test/GZipFileTest.cc @@ -0,0 +1,58 @@ +#include "GZipFile.h" + +#include <iostream> + +#include <cppunit/extensions/HelperMacros.h> + +#include "File.h" + +namespace aria2 { + +class GZipFileTest:public CppUnit::TestFixture { + + CPPUNIT_TEST_SUITE(GZipFileTest); + CPPUNIT_TEST(testOpen); + CPPUNIT_TEST_SUITE_END(); +public: + void testOpen(); +}; + + +CPPUNIT_TEST_SUITE_REGISTRATION(GZipFileTest); + +void GZipFileTest::testOpen() +{ + File f(A2_TEST_OUT_DIR"/aria2_GZipFileTest_testOpen"); + f.remove(); + GZipFile fail(f.getPath().c_str(), GZipFile::READ); + CPPUNIT_ASSERT(!fail); + + GZipFile wr(f.getPath().c_str(), GZipFile::WRITE); + CPPUNIT_ASSERT(wr); + std::string msg = "aria2 rules\nalpha\nbravo\ncharlie"; + wr.write(msg.data(), msg.size()); + wr.close(); + + GZipFile rd(f.getPath().c_str(), GZipFile::READ); + char buf[256]; + size_t len = rd.read(buf, 11); + CPPUNIT_ASSERT_EQUAL((size_t)11, len); + buf[len] = '\0'; + CPPUNIT_ASSERT_EQUAL(std::string("aria2 rules"), std::string(buf)); + + CPPUNIT_ASSERT(rd.gets(buf, sizeof(buf))); + CPPUNIT_ASSERT_EQUAL(std::string("\n"), std::string(buf)); + + CPPUNIT_ASSERT(rd.gets(buf, sizeof(buf))); + CPPUNIT_ASSERT_EQUAL(std::string("alpha\n"), std::string(buf)); + + CPPUNIT_ASSERT(rd.getsn(buf, sizeof(buf))); + CPPUNIT_ASSERT_EQUAL(std::string("bravo"), std::string(buf)); + + CPPUNIT_ASSERT(rd.getsn(buf, sizeof(buf))); + CPPUNIT_ASSERT_EQUAL(std::string("charlie"), std::string(buf)); + + CPPUNIT_ASSERT(rd.eof()); +} + +} // namespace aria2 |
