ExceptionTest.cc 1.0 KB

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