1098320293b1af0db5e839345dd807bb8c9b1b4d
[platform/core/uifw/libtdm.git] / utests / stubs / stub_tdm_thread.h
1 #ifndef STUB_TDM_THREAD_H
2 #define STUB_TDM_THREAD_H
3
4 #include "tdm_private.h"
5 #include <string.h>
6
7 static int TDM_THREAD_HANDLE_ERROR;
8 static int stub_tdm_thread_send_cb_error;
9 static char stub_tdm_thread_send_cb_buff[1024];
10 static int stub_tdm_thread_is_run;
11 static int stub_tdm_thread_ret_fd;
12 static int stub_tdm_thread_display_thread;
13 static int stub_tdm_output_vblank_handler_count;
14 static int stub_tdm_thread_init_init_error;
15
16 static void stub_tdm_thread_init()
17 {
18         TDM_THREAD_HANDLE_ERROR = 0;
19         stub_tdm_thread_send_cb_error = 0;
20         memset(stub_tdm_thread_send_cb_buff, 0, 1024);
21         stub_tdm_thread_is_run = 0;
22         stub_tdm_thread_ret_fd = 1;
23         stub_tdm_thread_display_thread = 0;
24         stub_tdm_output_vblank_handler_count = 0;
25         stub_tdm_thread_init_init_error = 0;
26 }
27
28 static int stub_tdm_thread_get_fd(tdm_private_loop *private_loop)
29 {
30         (void)private_loop;
31
32         return stub_tdm_thread_ret_fd;
33 }
34
35 static tdm_error stub_tdm_thread_handle_cb(tdm_private_loop *private_loop)
36 {
37         (void)private_loop;
38
39         if (TDM_THREAD_HANDLE_ERROR) {
40                 return TDM_ERROR_OPERATION_FAILED;
41         }
42
43         return TDM_ERROR_NONE;
44 }
45
46 static tdm_error
47 stub_tdm_thread_send_cb(tdm_private_loop *private_loop, tdm_thread_cb_base *base)
48 {
49         if (stub_tdm_thread_send_cb_error)
50                 return TDM_ERROR_OPERATION_FAILED;
51
52         memcpy(stub_tdm_thread_send_cb_buff, base, base->length);
53
54         return TDM_ERROR_NONE;
55 }
56
57 static int
58 stub_tdm_thread_is_running(void)
59 {
60         return (stub_tdm_thread_is_run) ? 1 : 0;
61 }
62
63 static int
64 stub_tdm_thread_in_display_thread(pid_t tid)
65 {
66         (void)tid;
67
68         return (stub_tdm_thread_display_thread) ? 1 : 0;
69 }
70
71 static void
72 stub_tdm_output_vblank_handler(tdm_output *output, unsigned int sequence,
73                                                                 unsigned int tv_sec, unsigned int tv_usec,
74                                                                 void *user_data)
75 {
76         (void)output;
77         (void)sequence;
78         (void)tv_sec;
79         (void)tv_usec;
80         (void)user_data;
81
82         stub_tdm_output_vblank_handler_count++;
83 }
84
85 /* XXX: named stub_tdm_thread_init_init since stub_tdm_thread_init has been
86    defined earlier */
87 static tdm_error
88 stub_tdm_thread_init_init(tdm_private_loop *private_loop)
89 {
90         if (stub_tdm_thread_init_init_error)
91                 return TDM_ERROR_OPERATION_FAILED;
92         return TDM_ERROR_NONE;
93 }
94
95 #define tdm_thread_get_fd stub_tdm_thread_get_fd
96 #define tdm_thread_handle_cb stub_tdm_thread_handle_cb
97 #define tdm_thread_send_cb stub_tdm_thread_send_cb
98 #define tdm_thread_is_running stub_tdm_thread_is_running
99 #define tdm_thread_in_display_thread stub_tdm_thread_in_display_thread
100 #define tdm_thread_init stub_tdm_thread_init_init
101
102 #endif // STUB_TDM_THREAD_H