GZipFileTest.cc 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "GZipFile.h"
  2. #include <iostream>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. #include "File.h"
  5. namespace aria2 {
  6. class GZipFileTest:public CppUnit::TestFixture {
  7. CPPUNIT_TEST_SUITE(GZipFileTest);
  8. CPPUNIT_TEST(testOpen);
  9. CPPUNIT_TEST_SUITE_END();
  10. public:
  11. void testOpen();
  12. };
  13. CPPUNIT_TEST_SUITE_REGISTRATION(GZipFileTest);
  14. void GZipFileTest::testOpen()
  15. {
  16. File f(A2_TEST_OUT_DIR"/aria2_GZipFileTest_testOpen");
  17. f.remove();
  18. GZipFile fail(f.getPath().c_str(), GZipFile::READ);
  19. CPPUNIT_ASSERT(!fail);
  20. GZipFile wr(f.getPath().c_str(), GZipFile::WRITE);
  21. CPPUNIT_ASSERT(wr);
  22. std::string msg = "aria2 rules\nalpha\nbravo\ncharlie";
  23. wr.write(msg.data(), msg.size());
  24. wr.close();
  25. GZipFile rd(f.getPath().c_str(), GZipFile::READ);
  26. char buf[256];
  27. size_t len = rd.read(buf, 11);
  28. CPPUNIT_ASSERT_EQUAL((size_t)11, len);
  29. buf[len] = '\0';
  30. CPPUNIT_ASSERT_EQUAL(std::string("aria2 rules"), std::string(buf));
  31. CPPUNIT_ASSERT(rd.gets(buf, sizeof(buf)));
  32. CPPUNIT_ASSERT_EQUAL(std::string("\n"), std::string(buf));
  33. CPPUNIT_ASSERT(rd.gets(buf, sizeof(buf)));
  34. CPPUNIT_ASSERT_EQUAL(std::string("alpha\n"), std::string(buf));
  35. CPPUNIT_ASSERT(rd.getsn(buf, sizeof(buf)));
  36. CPPUNIT_ASSERT_EQUAL(std::string("bravo"), std::string(buf));
  37. CPPUNIT_ASSERT(rd.getsn(buf, sizeof(buf)));
  38. CPPUNIT_ASSERT_EQUAL(std::string("charlie"), std::string(buf));
  39. CPPUNIT_ASSERT(rd.eof());
  40. }
  41. } // namespace aria2