summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-03-03 14:16:32 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-03-03 14:16:32 +0900
commit841fdbb965d0d2db7bd60cda08d138364a5e7366 (patch)
treee06b0a8409646e6558be3e1d14e2af3a4e828230
parent9b9987547840e90cb61c2364926e00dd6b6e2381 (diff)
Add GZipFileTest
For now, it is a copy of BufferedFileTest.cc
-rw-r--r--test/GZipFileTest.cc58
-rw-r--r--test/Makefile.am3
2 files changed, 60 insertions, 1 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
diff --git a/test/Makefile.am b/test/Makefile.am
index 2231fe45..f91cde44 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -102,7 +102,8 @@ if HAVE_ZLIB
aria2c_SOURCES += \
GZipDecoder.cc GZipDecoder.h\
GZipDecoderTest.cc GZipEncoderTest.cc\
- GZipDecodingStreamFilterTest.cc
+ GZipDecodingStreamFilterTest.cc\
+ GZipFileTest.cc
endif # HAVE_ZLIB
if HAVE_SQLITE3