#include "Exception.h" #include #include #include "DownloadFailureException.h" namespace aria2 { class ExceptionTest:public CppUnit::TestFixture { CPPUNIT_TEST_SUITE(ExceptionTest); CPPUNIT_TEST(testStackTrace); CPPUNIT_TEST_SUITE_END(); public: void setUp() {} void tearDown() {} void testStackTrace(); }; CPPUNIT_TEST_SUITE_REGISTRATION(ExceptionTest); void ExceptionTest::testStackTrace() { DownloadFailureException c1 = DOWNLOAD_FAILURE_EXCEPTION2 ("cause1", error_code::TIME_OUT); DownloadFailureException c2 = DOWNLOAD_FAILURE_EXCEPTION2("cause2", c1); DownloadFailureException e = DOWNLOAD_FAILURE_EXCEPTION2("exception thrown", c2); CPPUNIT_ASSERT_EQUAL (std::string ("Exception: [ExceptionTest.cc:32] errorCode=2 exception thrown\n" " -> [ExceptionTest.cc:30] errorCode=2 cause2\n" " -> [ExceptionTest.cc:29] errorCode=2 cause1\n"), e.stackTrace()); } } // namespace aria2