ExceptionTest.cc 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "Exception.h"
  2. #include <iostream>
  3. #include <cppunit/extensions/HelperMacros.h>
  4. #include "DownloadFailureException.h"
  5. #include "util.h"
  6. #include "A2STR.h"
  7. namespace aria2 {
  8. class ExceptionTest:public CppUnit::TestFixture {
  9. CPPUNIT_TEST_SUITE(ExceptionTest);
  10. CPPUNIT_TEST(testStackTrace);
  11. CPPUNIT_TEST_SUITE_END();
  12. public:
  13. void setUp() {}
  14. void tearDown() {}
  15. void testStackTrace();
  16. };
  17. CPPUNIT_TEST_SUITE_REGISTRATION(ExceptionTest);
  18. void ExceptionTest::testStackTrace()
  19. {
  20. DownloadFailureException c1 = DOWNLOAD_FAILURE_EXCEPTION2
  21. ("cause1", error_code::TIME_OUT);
  22. DownloadFailureException c2 = DOWNLOAD_FAILURE_EXCEPTION2("cause2", c1);
  23. DownloadFailureException e = DOWNLOAD_FAILURE_EXCEPTION2("exception thrown",
  24. c2);
  25. CPPUNIT_ASSERT_EQUAL
  26. (std::string
  27. ("Exception: [ExceptionTest.cc:34] errorCode=2 exception thrown\n"
  28. " -> [ExceptionTest.cc:32] errorCode=2 cause2\n"
  29. " -> [ExceptionTest.cc:31] errorCode=2 cause1\n"),
  30. util::replace(e.stackTrace(), A2_TEST_DIR+A2STR::SLASH_C, ""));
  31. }
  32. } // namespace aria2