tizen 2.3.1 release
[framework/web/wearable/wrt-commons.git] / tests / core / test_log_unhandled_exception.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /*
17  * @file        test_log_unhandled_exception.cpp
18  * @author      Pawel Sikorski (p.marcinkiew@samsung.com)
19  * @version     1.0
20  * @brief
21  */
22 #include <dpl/test/test_runner.h>
23 #include <dpl/exception.h>
24 #include <iostream>
25
26 RUNNER_TEST_GROUP_INIT(DPL)
27
28 class MyException
29 {};
30
31 class MyDPLException
32 {
33   public:
34     DECLARE_EXCEPTION_TYPE(DPL::Exception, Base)
35     DECLARE_EXCEPTION_TYPE(Base, MyException)
36 };
37
38 class MySTDException :
39     public std::exception
40 {
41   public:
42     virtual const char* what() const throw()
43     {
44         return "my std exception occurred";
45     }
46 };
47
48 /*
49 Name: Log_Unknown_Exception
50 Description: tests exceptions catching macros
51 Expected: unknown exception should be catched
52
53 TODO: workaround abort call
54 */
55 RUNNER_TEST(Log_Unknown_Exception)
56 {
57     UNHANDLED_EXCEPTION_HANDLER_BEGIN
58     {
59         //        throw MyException();
60     }
61     UNHANDLED_EXCEPTION_HANDLER_END
62     RUNNER_ASSERT(true);
63 }
64
65 /*
66 Name: Log_DPL_Exception
67 Description: tests exceptions catching macros
68 Expected: DPL exception should be catched
69
70 TODO: workaround abort call
71 */
72 RUNNER_TEST(Log_DPL_Exception)
73 {
74     UNHANDLED_EXCEPTION_HANDLER_BEGIN
75     {
76         //        Throw(MyDPLException::MyException);
77     }
78     UNHANDLED_EXCEPTION_HANDLER_END
79     RUNNER_ASSERT(true);
80 }
81
82 /*
83 Name: Log_STD_Exception
84 Description: tests exceptions catching macros
85 Expected: STD exception should be catched
86
87 TODO: workaround abort call
88 */
89 RUNNER_TEST(Log_STD_Exception)
90 {
91     UNHANDLED_EXCEPTION_HANDLER_BEGIN
92     {
93         //        throw MySTDException();
94     }
95     UNHANDLED_EXCEPTION_HANDLER_END
96     RUNNER_ASSERT(true);
97 }