1 /* This is a small demo of the high-performance GUIX graphics framework. */
2 
3 #include <stdio.h>
4 #include "tx_api.h"
5 #include "gx_api.h"
6 #include "gx_animation.h"
7 #include "gx_canvas.h"
8 #include "gx_widget.h"
9 #include "gx_system.h"
10 #include "gx_utility.h"
11 #include "gx_scroll_wheel.h"
12 #include "gx_multi_line_text_view.h"
13 #include "gx_validation_utility.h"
14 
15 TEST_PARAM test_parameter = {
16     "guix_api_coverage_test_no_output", /* Test name */
17     0, 0, 0, 0  /* Define the coordinates of the capture area.*/
18 };
19 
20 static GX_CHAR test_string[] = "test string";
21 
main(int argc,char ** argv)22 int main(int argc, char ** argv)
23 {
24     /* Start ThreadX system */
25     tx_kernel_enter();
26     return(0);
27 }
28 
29 #if defined (GX_DISABLE_ERROR_CHECKING)
tx_application_define(void * first_unused_memory)30 VOID tx_application_define(void *first_unused_memory)
31 {
32     exit(0);
33 }
34 #else
35 static VOID      control_thread_entry(ULONG);
36 static UINT failed_tests;
37 extern volatile ULONG      _tx_thread_system_state;
38 extern ULONG             _tx_timer_created_count;
39 extern ULONG             _tx_queue_created_count;
40 
widget_event_process_function(GX_WIDGET * widget,GX_EVENT * event)41 UINT widget_event_process_function(GX_WIDGET *widget, GX_EVENT *event)
42 {
43     return 0;
44 }
45 
display_driver_row_pitch_get(USHORT input)46 static USHORT display_driver_row_pitch_get(USHORT input)
47 {
48     return 0;
49 }
50 
tx_application_define(void * first_unused_memory)51 VOID tx_application_define(void *first_unused_memory)
52 {
53 
54     /* Create a dedicated thread to perform various operations
55        on the line drawing example. These operations simulate
56        user input. */
57     gx_validation_control_thread_create(control_thread_entry);
58 }
59 
60 #include "gx_validation_wrapper.h"
61 #include "demo_guix_all_widgets.c"
62 
63 extern UINT gx_validation_display_driver_setup_24xrgb(GX_DISPLAY *display);
64 extern VOID gx_validation_graphics_driver_cleanup_24xrgb(GX_DISPLAY *display);
callback_fun(GX_TEXT_SCROLL_WHEEL * param1,INT param2)65 static GX_CONST GX_CHAR *          callback_fun(GX_TEXT_SCROLL_WHEEL * param1, INT param2) {return GX_NULL;}
memory_allocate(ULONG size)66 static VOID *                      memory_allocate(ULONG size){ GX_PARAMETER_NOT_USED(size); return GX_NULL;}
memory_free(VOID * ptr)67 static VOID                        memory_free(VOID * ptr){GX_PARAMETER_NOT_USED(ptr);}
draw_func(GX_WIDGET * widget)68 static VOID                        draw_func(GX_WIDGET * widget){}
event_process_func(GX_WIDGET * widget,GX_EVENT * event)69 static UINT                        event_process_func(GX_WIDGET *widget, GX_EVENT *event){ return 0;}
display_cleanup_func(GX_DISPLAY * display)70 static VOID                        display_cleanup_func(GX_DISPLAY *display) { memset(display, 0, sizeof(GX_DISPLAY));}
write_data_callback(GX_UBYTE * byte_data,UINT data_count)71 static UINT                        write_data_callback(GX_UBYTE *byte_data, UINT data_count){return GX_SUCCESS;}
72 
control_thread_entry(ULONG input)73 static VOID control_thread_entry(ULONG input)
74 {
75 GX_ACCORDION_MENU           accordion_menu;
76 GX_ANIMATION                animation;
77 GX_ANIMATION                animation1;
78 GX_ANIMATION                animation2;
79 GX_ANIMATION               *animation_ptr;
80 GX_ANIMATION_INFO           animation_info;
81 GX_LINE_CHART_INFO          line_chart_info;
82 
83 GX_BUTTON                   button;
84 GX_CHECKBOX                 checkbox;
85 GX_CIRCULAR_GAUGE           circular_gauge;
86 GX_CIRCULAR_GAUGE_INFO      circular_gauge_info;
87 GX_DROP_LIST                drop_list;
88 GX_HORIZONTAL_LIST          horizontal_list;
89 GX_ICON_BUTTON              icon_button;
90 GX_ICON                     icon;
91 GX_IMAGE_READER             image_reader;
92 GX_LINE_CHART               line_chart;
93 GX_MENU                     menu;
94 GX_MULTI_LINE_TEXT_BUTTON   multi_line_text_button;
95 GX_MULTI_LINE_TEXT_INPUT    multi_line_text_input;
96 GX_MULTI_LINE_TEXT_VIEW     multi_line_text_view;
97 GX_NUMERIC_PIXELMAP_PROMPT  numeric_pixelmap_prompt;
98 GX_NUMERIC_PROMPT           numeric_prompt;
99 GX_NUMERIC_SCROLL_WHEEL     numeric_scroll_wheel;
100 GX_PIXELMAP_BUTTON          pixelmap_button;
101 GX_PIXELMAP_PROMPT          pixelmap_prompt;
102 GX_PIXELMAP_SLIDER          pixelmap_slider;
103 GX_SLIDER_INFO              slider_info;
104 GX_PIXELMAP_SLIDER_INFO     pixelmap_slider_info;
105 GX_PROGRESS_BAR             progress_bar;
106 GX_PROGRESS_BAR_INFO        progress_bar_info;
107 GX_PROMPT                   prompt;
108 GX_RADIAL_PROGRESS_BAR      radial_progress_bar;
109 GX_RADIAL_PROGRESS_BAR_INFO radial_progress_bar_info;
110 GX_RADIAL_SLIDER            radial_slider;
111 GX_RADIAL_SLIDER_INFO      *radial_slider_info;
112 GX_RADIO_BUTTON             radio_button;
113 GX_SCREEN_STACK_CONTROL     screen_stack_control;
114 GX_SCROLL_THUMB             scroll_thumb;
115 GX_SCROLLBAR                scrollbar;
116 GX_SCROLLBAR_APPEARANCE     scrollbar_appearance;
117 GX_SCROLL_INFO              scroll_info;
118 GX_SCROLL_WHEEL             scroll_wheel;
119 GX_SINGLE_LINE_TEXT_INPUT   single_line_text_input;
120 GX_SLIDER                   slider;
121 GX_SPRITE                   sprite;
122 GX_STRING_SCROLL_WHEEL      string_scroll_wheel;
123 GX_TEXT_BUTTON              text_button;
124 GX_TEXT_INPUT_CURSOR        text_input_cursor;
125 GX_TEXT_SCROLL_WHEEL        text_scroll_wheel;
126 GX_GRADIENT                 gradient;
127 GX_TREE_VIEW                tree_view;
128 GX_VERTICAL_LIST            vertical_list;
129 GX_WINDOW                   window;
130 GX_WINDOW_ROOT              window_root;
131 
132 GX_BRUSH *                  brush;
133 GX_CANVAS                   canvas;
134 GX_DISPLAY                  display;
135 GX_DISPLAY                  default_display;
136 GX_DISPLAY                  display_1;
137 GX_DISPLAY                  display_2;
138 GX_DISPLAY_LAYER_SERVICES   display_layer_service;
139 GX_DRAW_CONTEXT             default_context;
140 GX_EVENT                    my_event;
141 GX_FONT                     font;
142 GX_PEN_CONFIGURATION        pen_config;
143 GX_PIXELMAP                 pixelmap;
144 GX_PIXELMAP                 destination_pixelmap;
145 GX_PIXELMAP                *return_pixelmap;
146 GX_POINT                    point;
147 GX_RECTANGLE                size, rec1, rec2;
148 GX_THEME *                  returned_theme = GX_NULL;
149 GX_TIMER *                  timer, gtimer;
150 GX_UBYTE ***                returned_language_table = GX_NULL;
151 GX_CHAR **                  langugage_table = GX_NULL;
152 GX_WIDGET                   parent;
153 GX_WIDGET                   widget;
154 GX_WIDGET *                 widget_ptr;
155 GX_COLOR                    color;
156 GX_COLOR                    canvas_memory[1];
157 GX_UBYTE *                  byte_data = (GX_UBYTE *)canvas_memory;
158 GX_RESOURCE_ID              ulong_data;
159 UINT                        status;
160 GX_CHAR                     buffer[32], *buffer_ptr;
161 GX_CHAR_CODE                glyph_value;
162 GX_UBYTE                    return_utf8_str[6];
163 UINT                        return_utf8_size, character_count;
164 GX_MULTI_LINE_TEXT_INFO     text_info;
165 GX_POINT                    cursor_pos;
166 GX_STRING                   string;
167 
168     gx_system_initialize();     /* Initialize GUIX.  */
169     gx_display_create(&default_display, "linux_display", gx_validation_display_driver_setup_24xrgb, 0, 0); //create display
170 
171     /* accordion_menu */
172     printf("accordion_menu\n");
173     memset(&accordion_menu, 0, sizeof(GX_ACCORDION_MENU));
174     /* accordion menu create*/
175     status = gx_accordion_menu_create(GX_NULL, GX_NULL, GX_NULL, GX_NULL, GX_NULL, GX_NULL); // first parameter GX_ACCORDION_MENU * is null;
176     EXPECT_EQ(GX_PTR_ERROR, status);
177 
178     accordion_menu.gx_widget_type = GX_TYPE_ACCORDION_MENU;
179     status = gx_accordion_menu_create(&accordion_menu, GX_NULL, GX_NULL, GX_NULL, GX_NULL, &size); // gx_widget_type of accordion_menu is not 0; should return GX_ALREADY_CREATED
180     EXPECT_EQ(GX_ALREADY_CREATED, status);
181 
182     accordion_menu.gx_widget_type = 0;
183     status = _gxe_accordion_menu_create(&accordion_menu, GX_NULL, GX_NULL, GX_NULL, GX_NULL, &size, 0); // control block size is 0; should return GX_INVALID_SIZE
184     EXPECT_EQ(GX_INVALID_SIZE, status);
185 
186     status = gx_accordion_menu_create(&accordion_menu, GX_NULL, GX_NULL, GX_NULL, GX_NULL, &size); // should return GX_SUCCESS
187     EXPECT_EQ(GX_SUCCESS, status);
188 
189     gx_accordion_menu_event_process(0, 0); // event_process
190     status = gx_accordion_menu_event_process(&accordion_menu, 0); // event_process
191     EXPECT_EQ(GX_PTR_ERROR, status);
192 
193     accordion_menu.gx_widget_parent = 0;
194     my_event.gx_event_type = 0;
195     status = gx_accordion_menu_event_process(&accordion_menu, &my_event); // event_process
196     EXPECT_EQ(GX_SUCCESS, status);
197 
198     status = gx_accordion_menu_position(0);
199     EXPECT_EQ(GX_PTR_ERROR, status);
200 
201     /* animation */
202     printf("animation\n");
203     memset(&animation, 0, sizeof(GX_ANIMATION));
204     memset(&canvas, 0, sizeof(GX_CANVAS));
205     status = gx_animation_canvas_define(0, 0); // should return GX_PTR_ERROR
206     EXPECT_EQ(GX_PTR_ERROR, status);
207 
208     status = gx_animation_canvas_define(&animation, 0); // canvas == GX_NULL
209     EXPECT_EQ(GX_PTR_ERROR, status);
210 
211     status = gx_animation_canvas_define(&animation, &canvas); // should return GX_PTR_ERROR because display is null
212     EXPECT_EQ(GX_PTR_ERROR, status);
213 
214     canvas.gx_canvas_display = &default_display;
215     canvas.gx_canvas_x_resolution = 1;
216     canvas.gx_canvas_y_resolution = 1;
217     canvas.gx_canvas_memory_size = 0;
218     status = gx_animation_canvas_define(&animation, &canvas); // should return GX_INVALID_MEMORY_SIZE
219     EXPECT_EQ(GX_INVALID_MEMORY_SIZE, status);
220 
221     status = gx_animation_create(0); // should return GX_PTR_ERROR
222     EXPECT_EQ(GX_PTR_ERROR, status);
223 
224     animation.gx_animation_status = GX_ANIMATION_IDLE;
225     status = gx_animation_create(&animation); // should return GX_ALREADY_CREATED
226     EXPECT_EQ(GX_ALREADY_CREATED, status);
227 
228     status = gx_animation_drag_disable(0, 0); // should return GX_PTR_ERROR
229     EXPECT_EQ(GX_PTR_ERROR, status);
230 
231     status = gx_animation_drag_disable(&animation, 0); // widget == GX_NULL
232     EXPECT_EQ(GX_PTR_ERROR, status);
233 
234     animation.gx_animation_original_event_process_function = 0;
235     status = gx_animation_drag_disable(&animation, &widget); // gx_animation_original_event_process_function == GX_NULL
236     EXPECT_EQ(GX_INVALID_ANIMATION, status);
237 
238     status = gx_animation_drag_enable(0, 0, 0); // animation == GX_NULL
239     EXPECT_EQ(GX_PTR_ERROR, status);
240 
241     status = gx_animation_drag_enable(&animation, 0, 0); // widget == GX_NULL
242     EXPECT_EQ(GX_PTR_ERROR, status);
243 
244     status = gx_animation_drag_enable(&animation, &widget, 0); // info == GX_NULL
245     EXPECT_EQ(GX_PTR_ERROR, status);
246 
247     animation.gx_animation_original_event_process_function = (UINT (* )(struct GX_WIDGET_STRUCT *, GX_EVENT *))0x04;
248     status = gx_animation_drag_enable(&animation, &widget, &animation_info); // animation -> gx_animation_original_event_process_function != GX_NULL
249     EXPECT_EQ(GX_INVALID_ANIMATION, status);
250 
251     memset(&animation, 0, sizeof(animation));
252     memset(&animation_info, 0, sizeof(GX_ANIMATION_INFO));
253     animation_info.gx_animation_style |= GX_ANIMATION_EASING_FUNC_MASK;
254     status = gx_animation_drag_enable(&animation, &widget, &animation_info); // animation_info -> gx_animation_style & GX_ANIMATION_EASING_FUNC_MASK
255     EXPECT_EQ(GX_INVALID_VALUE, status);
256 
257     animation_info.gx_animation_steps = 3;
258     animation_info.gx_animation_frame_interval = 0;
259     status = gx_animation_drag_enable(&animation, &widget, &animation_info); // animation_info -> gx_animation_style & GX_ANIMATION_EASING_FUNC_MASK
260     EXPECT_EQ(GX_INVALID_VALUE, status);
261 
262     memset(&animation_info, 0, sizeof(GX_ANIMATION_INFO));
263     animation_info.gx_animation_frame_interval = 0;
264     status = gx_animation_drag_enable(&animation, &widget, &animation_info); // should return GX_INVALID_VALUE
265     EXPECT_EQ(GX_INVALID_VALUE, status);
266 
267     animation_info.gx_animation_frame_interval = 1;
268     status = gx_animation_drag_enable(&animation, &widget, &animation_info); // should return GX_INVALID_WIDGET
269     EXPECT_EQ(GX_INVALID_WIDGET, status);
270 
271     status = gx_animation_landing_speed_set(0, 0); //should return GX_PTR_ERROR
272     EXPECT_EQ(GX_PTR_ERROR, status);
273 
274     status = gx_animation_landing_speed_set(&animation, 0); // should return GX_INVALID_VALUE
275     EXPECT_EQ(GX_INVALID_VALUE, status);
276 
277     status = gx_animation_landing_speed_set(&animation, 1); // should return GX_SUCCESS
278     EXPECT_EQ(GX_SUCCESS, status);
279 
280     status = gx_animation_start(0, 0); // should return GX_PTR_ERROR
281     EXPECT_EQ(GX_PTR_ERROR, status);
282 
283     status = gx_animation_start(&animation, 0); // info == GX_NULL
284     EXPECT_EQ(GX_PTR_ERROR, status);
285 
286     memset(&animation_info, 0, sizeof(GX_ANIMATION_INFO));
287     animation_info.gx_animation_steps = 1;
288     status = gx_animation_start(&animation, &animation_info); // should return GX_INVALID_VALUE
289     EXPECT_EQ(GX_INVALID_VALUE, status);
290 
291     animation_info.gx_animation_steps = 2;
292     animation_info.gx_animation_frame_interval = 0;
293     status = gx_animation_start(&animation, &animation_info); // gx_animation_frame_interval < 1
294     EXPECT_EQ(GX_INVALID_VALUE, status);
295 
296     animation_info.gx_animation_steps = 2;
297     animation_info.gx_animation_frame_interval = 1;
298     animation_info.gx_animation_start_alpha = 0;
299     animation_info.gx_animation_end_alpha = 0;
300     status = gx_animation_start(&animation, &animation_info); // should return GX_INVALID_VALUE
301     EXPECT_EQ(GX_INVALID_VALUE, status);
302 
303     animation_info.gx_animation_end_alpha = 1;
304     animation_info.gx_animation_start_alpha = 1;
305     animation_info.gx_animation_target  = 0;
306     status = gx_animation_start(&animation, &animation_info); // should return GX_INVALID_WIDGET
307     EXPECT_EQ(GX_INVALID_WIDGET, status);
308 
309     memset(&widget, 0, sizeof(GX_WIDGET));
310     animation_info.gx_animation_target = &widget;
311     widget.gx_widget_type = 0;
312     status = gx_animation_start(&animation, &animation_info); // should return GX_INVALID_WIDGET
313     EXPECT_EQ(GX_INVALID_WIDGET, status);
314 
315     widget.gx_widget_type = GX_TYPE_WINDOW;
316     animation.gx_animation_status = GX_ANIMATION_IDLE + 1;
317     status = gx_animation_start(&animation, &animation_info); // should return GX_INVALID_STATUS
318     EXPECT_EQ(GX_INVALID_STATUS, status);
319 
320     gx_animation_stop(0); // should return GX_PTR_ERROR
321     animation.gx_animation_status = GX_ANIMATION_ACTIVE + 1;
322     status = gx_animation_stop(&animation); // should return GX_INVALID_STATUS
323     EXPECT_EQ(GX_INVALID_STATUS, status);
324 
325     memset(&animation, 0, sizeof(GX_ANIMATION));
326     animation.gx_animation_status = GX_ANIMATION_ACTIVE;
327     _gx_system_animation_list = &animation;
328     status = gx_animation_stop(&animation); // should return GX_INVALID_STATUS
329     EXPECT_EQ(GX_SUCCESS, status);
330 
331     memset(&animation, 0, sizeof(GX_ANIMATION));
332     memset(&animation1, 0, sizeof(GX_ANIMATION));
333     memset(&animation2, 0, sizeof(GX_ANIMATION));
334     animation.gx_animation_status = GX_ANIMATION_ACTIVE;
335     _gx_system_animation_list = &animation2;
336     animation2.gx_animation_next = &animation1;
337     animation1.gx_animation_next = &animation;
338     status = gx_animation_stop(&animation); // should return GX_INVALID_STATUS
339     EXPECT_EQ(GX_SUCCESS, status);
340 
341     /* binary */
342     printf("binary\n");
343     status = gx_binres_language_table_load(0, &returned_language_table); // should return GX_PTR_ERROR
344     EXPECT_EQ(GX_PTR_ERROR, status);
345 
346     status = gx_binres_language_table_load((GX_UBYTE *)0x60000, 0); // should return GX_PTR_ERROR;
347     EXPECT_EQ(GX_PTR_ERROR, status);
348 
349     _gx_system_memory_allocator = memory_allocate;
350     _gx_system_memory_free = 0;
351     status = gx_binres_language_table_load((GX_UBYTE *)0x60000, &returned_language_table); // _gx_system_memory_free == GX_NULL
352     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
353 
354     _gx_system_memory_free = memory_free;
355     _gx_system_memory_allocator = 0;
356     status = gx_binres_language_table_load((GX_UBYTE *)0x60000, &returned_language_table); // _gx_system_memory_allocate == GX_NULL
357     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
358 
359     gx_binres_theme_load(0, 0, 0); // should return GX_PTR_ERROR
360     status = gx_binres_theme_load((GX_UBYTE *)buffer, 0, 0); // returned_theme is NULL
361     EXPECT_EQ(GX_PTR_ERROR, status);
362 
363     status = gx_binres_theme_load((GX_UBYTE *)buffer, -1, &returned_theme); // theme_id < 0
364     EXPECT_EQ(GX_INVALID_VALUE, status);
365 
366     _gx_system_memory_allocator = 0;
367     status = gx_binres_theme_load((GX_UBYTE *)buffer, 0, &returned_theme); // _gx_system_memory_allocator == GX_NULL
368     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
369 
370     _gx_system_memory_allocator = memory_allocate;
371     _gx_system_memory_free = 0;
372     status = gx_binres_theme_load((GX_UBYTE *)buffer, 0, &returned_theme); // _gx_system_memory_free == GX_NULL
373     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
374 
375     _gx_system_memory_free = memory_free;
376     _gx_system_memory_allocator = 0;
377 
378     status = gx_binres_pixelmap_load(GX_NULL, 0, GX_NULL);
379     EXPECT_EQ(GX_PTR_ERROR, status);
380 
381     status = gx_binres_pixelmap_load(0x80000, 0, GX_NULL);
382     EXPECT_EQ(GX_PTR_ERROR, status);
383 
384     status = gx_binres_font_load(GX_NULL, 0, GX_NULL, GX_NULL);
385     EXPECT_EQ(GX_PTR_ERROR, status);
386 
387     status = gx_binres_font_load(0x80000, 0, GX_NULL, GX_NULL);
388     EXPECT_EQ(GX_PTR_ERROR, status);
389 
390     status = gx_binres_font_load(0x80000, 0, (GX_UBYTE *)buffer, 0);
391     EXPECT_EQ(GX_PTR_ERROR, status);
392 
393     /* brush */
394     printf("brush\n");
395     status = gx_brush_default(0); // should return GX_PTR_ERROR
396     EXPECT_EQ(GX_PTR_ERROR, status);
397 
398     status = gx_brush_default(&default_context.gx_draw_context_brush); // should return GX_SUCCESS
399     EXPECT_EQ(GX_SUCCESS, status);
400 
401     status = gx_brush_define(0, 0, 0, 0); // should return GX_PTR_ERROR
402     EXPECT_EQ(GX_PTR_ERROR, status);
403 
404     status = gx_brush_define(&default_context.gx_draw_context_brush, 0, 0, 0); // should return GX_PTR_ERROR
405     EXPECT_EQ(GX_SUCCESS, status);
406 
407     /* button */
408     printf("button\n");
409     status = gx_button_create(0, 0, 0, 0, 0, 0); // button is NULL
410     EXPECT_EQ(GX_PTR_ERROR, status);
411 
412     status = gx_button_create(&button, 0, 0, 0, 0, 0); // size is NULL
413     EXPECT_EQ(GX_PTR_ERROR, status);
414 
415     status = _gxe_button_create(&button, 0, 0, 0, 0, &size, 0); // should return GX_INVALID_SIZE
416     EXPECT_EQ(GX_INVALID_SIZE, status);
417 
418     button.gx_widget_type = GX_TYPE_BUTTON;
419     status = gx_button_create(&button, 0, 0, 0, 0, &size); // should return GX_ALREADY_CREATED
420     EXPECT_EQ(GX_ALREADY_CREATED, status);
421 
422     memset(&button, 0, sizeof(GX_BUTTON));
423     memset(&parent, 0, sizeof(GX_WIDGET));
424     status = gx_button_deselect(&button, GX_TRUE); // should return GX_PTR_ERROR
425     EXPECT_EQ(GX_PTR_ERROR, status);
426 
427     button.gx_widget_parent = &parent;
428     status = gx_button_deselect(&button, GX_TRUE); // should return GX_INVALID_WIDGET
429     EXPECT_EQ(GX_INVALID_WIDGET, status);
430 
431     parent.gx_widget_type = GX_TYPE_WIDGET;
432     button.gx_widget_type = 0;
433     status = gx_button_deselect(&button, GX_TRUE); // should return GX_INVALID_WIDGET
434     EXPECT_EQ(GX_INVALID_WIDGET, status);
435 
436     button.gx_widget_type = GX_TYPE_WIDGET;
437     status = gx_button_deselect(&button, GX_TRUE); // should return GX_SUCCESS
438     EXPECT_EQ(GX_SUCCESS, status);
439 
440     status = gx_button_event_process(0, 0); // should return GX_PTR_ERROR
441     EXPECT_EQ(GX_PTR_ERROR, status);
442 
443     status = gx_button_event_process(&button, 0); // event_ptr is GX_NULL
444     EXPECT_EQ(GX_PTR_ERROR, status);
445 
446     memset(&button, 0, sizeof(GX_BUTTON));
447     button.gx_widget_parent = 0;
448     my_event.gx_event_type = 0;
449     status = gx_button_event_process(&button, &my_event); // should return GX_SUCCESS
450     EXPECT_EQ(GX_SUCCESS, status);
451 
452     memset(&button, 0, sizeof(GX_BUTTON));
453     status = gx_button_select(&button); // should return GX_PTR_ERROR
454     EXPECT_EQ(GX_PTR_ERROR, status);
455 
456     button.gx_widget_parent = &parent; // should return GX_INVALID_WIDGET
457     button.gx_widget_type = 0;
458     status = gx_button_select(&button); // should return GX_INVALID_WIDGET
459     EXPECT_EQ(GX_INVALID_WIDGET, status);
460 
461     parent.gx_widget_type = 0;
462     button.gx_widget_type = GX_TYPE_BUTTON;
463     status = gx_button_select(&button); // should return GX_INVALID_WIDGET
464     EXPECT_EQ(GX_INVALID_WIDGET, status);
465 
466     parent.gx_widget_type = GX_TYPE_BUTTON;
467     button.gx_widget_style = GX_STYLE_BUTTON_PUSHED;
468     status = gx_button_select(&button); // should return GX_SUCCESS
469     EXPECT_EQ(GX_SUCCESS, status);
470 
471     /* canvas */
472     printf("canvas\n");
473     status = gx_canvas_alpha_set(0, 0); // should return GX_PTR_ERROR
474     EXPECT_EQ(GX_PTR_ERROR, status);
475 
476     memset(&canvas, 0, sizeof(GX_CANVAS));
477     status = gx_canvas_alpha_set(&canvas, 0); // should return GX_INVALID_CANVAS
478     EXPECT_EQ(GX_INVALID_CANVAS, status);
479 
480     status = gx_canvas_arc_draw(0, 0, 0, 0, 0); // should return GX_INVALID_VALUE
481     EXPECT_EQ(GX_INVALID_VALUE, status);
482 
483     status = gx_canvas_arc_draw(0, 0, 1, 0, 0); // should return GX_INVALID_CONTEXT
484     EXPECT_EQ(GX_INVALID_CONTEXT, status);
485 
486     status = gx_canvas_block_move(0, 0, 0, 0); //should return GX_PTR_ERROR
487     EXPECT_EQ(GX_PTR_ERROR, status);
488 
489     _gx_system_current_draw_context = 0;
490     status = gx_canvas_block_move(&size, 0, 0, 0); //should return GX_FAILURE
491     EXPECT_EQ(GX_FAILURE, status);
492 
493     status = gx_canvas_circle_draw(0, 0, 0); // should return GX_INVALID_VALUE
494     EXPECT_EQ(GX_INVALID_VALUE, status);
495 
496     status = gx_canvas_circle_draw(0, 0, 1); // should return GX_INVALID_CONTEXT
497     EXPECT_EQ(GX_INVALID_CONTEXT, status);
498 
499     status = gx_canvas_create(0, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
500     EXPECT_EQ(GX_PTR_ERROR, status);
501 
502     status = gx_canvas_create(&canvas, 0, 0, 0, 0, 0, 0, 0); // display == GX_NULL
503     EXPECT_EQ(GX_PTR_ERROR, status);
504 
505     memset(&canvas, 0, sizeof(GX_CANVAS));
506     status = _gxe_canvas_create(&canvas, 0, &default_display, 0, 0, 0, 0, 0, 0); //should return GX_INVALID_CANVAS_SIZE
507     EXPECT_EQ(GX_INVALID_CANVAS_SIZE, status);
508 
509     canvas.gx_canvas_display = &default_display;
510     status = gx_canvas_create(&canvas, 0, &default_display, 0, 0, 0, 0, 0); //should return GX_ALREADY_CREATED
511     EXPECT_EQ(GX_ALREADY_CREATED, status);
512 
513     canvas.gx_canvas_display = 0;
514     status = gx_canvas_create(&canvas, 0, &default_display, (~((UINT)(GX_CANVAS_SIMPLE | GX_CANVAS_MANAGED | GX_CANVAS_VISIBLE | GX_CANVAS_MODIFIED | GX_CANVAS_COMPOSITE))),
515                               0, 0, 0, 0); //should return GX_INVALID_TYPE
516     EXPECT_EQ(GX_INVALID_TYPE, status);
517 
518     memset(&canvas, 0, sizeof(GX_CANVAS));
519     status = gx_canvas_create(&canvas, "canvas", &default_display, GX_CANVAS_SIMPLE, 10, 10, &color, 4); //should return GX_INVALID_SIZE
520     EXPECT_EQ(GX_INVALID_SIZE, status);
521 
522     gx_canvas_delete(0); //should return GX_PTR_ERROR
523     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
524     gx_canvas_delete(&canvas); //should return GX_INVALID_CANVAS
525 
526     memset(&canvas, 0, sizeof(GX_CANVAS));
527     status = gx_canvas_drawing_complete(&canvas, 0);// canvas -> gx_canvas_display is NULL
528     EXPECT_EQ(GX_PTR_ERROR, status);
529 
530     canvas.gx_canvas_display = &display;
531     status = gx_canvas_drawing_complete(&canvas, 0);// canvas -> gx_canvas_memory is NULL
532     EXPECT_EQ(GX_PTR_ERROR, status);
533 
534     status = gx_canvas_drawing_initiate(&canvas, 0, 0); //should return GX_PTR_ERROR
535     EXPECT_EQ(GX_PTR_ERROR, status);
536 
537     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
538     status = gx_canvas_drawing_initiate(&canvas, 0, &size); //should return GX_INVALID_CANVAS
539     EXPECT_EQ(GX_INVALID_CANVAS, status);
540 
541     status = gx_canvas_ellipse_draw(0, 0, 0, 1); // should return GX_INVALID_VALUE
542     EXPECT_EQ(GX_INVALID_VALUE, status);
543 
544     status = gx_canvas_ellipse_draw(0, 0, 1, 1); // should return GX_INVALID_CONTEXT
545     EXPECT_EQ(GX_INVALID_CONTEXT, status);
546 
547     status = gx_canvas_hardware_layer_bind(0, 1);//should return GX_PTR_ERROR
548     EXPECT_EQ(GX_PTR_ERROR, status);
549 
550     memset(&canvas, 0, sizeof(GX_CANVAS));
551     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
552     status = gx_canvas_hardware_layer_bind(&canvas, 1);//should return GX_INVALID_CANVAS
553     EXPECT_EQ(GX_INVALID_CANVAS, status);
554 
555     canvas.gx_canvas_id = GX_CANVAS_ID;
556     status = gx_canvas_hardware_layer_bind(&canvas, 1);//should return GX_INVALID_DISPLAY
557     EXPECT_EQ(GX_INVALID_DISPLAY, status);
558 
559     memset(&display, 0, sizeof(GX_DISPLAY));
560     canvas.gx_canvas_display = &display;
561     status = gx_canvas_hardware_layer_bind(&canvas, 0);//should return GX_NOT_SUPPORTED
562     EXPECT_EQ(GX_NOT_SUPPORTED, status);
563 
564     status = gx_canvas_hide(0);//should return GX_PTR_ERROR
565     EXPECT_EQ(GX_PTR_ERROR, status);
566 
567     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
568     status = gx_canvas_hide(&canvas);//should return GX_INVALID_CANVAS
569     EXPECT_EQ(GX_INVALID_CANVAS, status);
570 
571     canvas.gx_canvas_id = GX_CANVAS_ID;
572     canvas.gx_canvas_hardware_layer = 1;
573     canvas.gx_canvas_display = &display;
574     display.gx_display_layer_services = &display_layer_service;
575     display_layer_service.gx_display_layer_hide = GX_NULL;
576     status = gx_canvas_hide(&canvas);
577     EXPECT_EQ(GX_SUCCESS, status);
578 
579     status = gx_canvas_line_draw(0,0,0,0);//should return GX_INVALID_CONTEXT
580     EXPECT_EQ(GX_INVALID_CONTEXT, status);
581 
582     _gx_system_current_draw_context = &default_context;
583     memset(&default_context, 0, sizeof(GX_DRAW_CONTEXT));
584     status = gx_canvas_line_draw(0,0,0,0);//should return GX_INVALID_WIDTH
585     EXPECT_EQ(GX_SUCCESS, status);
586 
587     /* gx_canvas_memory_define. */
588     status = gx_canvas_memory_define(GX_NULL, GX_NULL, 0);
589     EXPECT_EQ(GX_PTR_ERROR, status);
590 
591     canvas.gx_canvas_id = 0;
592     status = gx_canvas_memory_define(&canvas, GX_NULL, 0);
593     EXPECT_EQ(GX_INVALID_CANVAS, status);
594 
595     status = gx_canvas_offset_set(0, 0, 0);//should return GX_PTR_ERROR
596     EXPECT_EQ(GX_PTR_ERROR, status);
597 
598     memset(&canvas, 0, sizeof(GX_CANVAS));
599     canvas.gx_canvas_display = &display;
600     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
601     canvas.gx_canvas_memory = canvas_memory;
602     status = gx_canvas_offset_set(&canvas, 0, 0);//should return GX_INVALID_CANVAS
603     EXPECT_EQ(GX_INVALID_CANVAS, status);
604 
605     canvas.gx_canvas_display = 0;
606     status = gx_canvas_offset_set(&canvas, 0, 0);// gx_canvas_display == GX_NULL
607     EXPECT_EQ(GX_PTR_ERROR, status);
608 
609     canvas.gx_canvas_display = &display;
610     canvas.gx_canvas_memory = 0;
611     status = gx_canvas_offset_set(&canvas, 0, 0);// gx_canvas_memory == GX_NULL
612     EXPECT_EQ(GX_PTR_ERROR, status);
613 
614     canvas.gx_canvas_id = GX_CANVAS_ID;
615     canvas.gx_canvas_display = &display;
616     canvas.gx_canvas_memory = canvas_memory;
617     canvas.gx_canvas_hardware_layer = 1;
618     display.gx_display_layer_services = &display_layer_service;
619     display_layer_service.gx_display_layer_offset_set = 0;
620     canvas.gx_canvas_status &= ~GX_CANVAS_MANAGED;
621     status = gx_canvas_offset_set(&canvas, 0, 0);
622     EXPECT_EQ(GX_SUCCESS, status);
623 
624     status = gx_canvas_pie_draw(0, 0, 0, 0, 0); //should return GX_INVALID_VALUE
625     EXPECT_EQ(GX_INVALID_VALUE, status);
626 
627     _gx_system_current_draw_context = GX_NULL;
628     status = gx_canvas_pie_draw(0, 0, 10, 0, 0); //should return GX_INVALID_CONTEXT
629     EXPECT_EQ(GX_INVALID_CONTEXT, status);
630 
631     status = gx_canvas_pixel_draw(point); //should return GX_INVALID_CONTEXT
632     EXPECT_EQ(GX_INVALID_CONTEXT, status);
633 
634     memset(&point, 0, sizeof(GX_POINT));
635     memset(&default_context, 0, sizeof(GX_DRAW_CONTEXT));
636     memset(&display, 0, sizeof(GX_DISPLAY));
637     _gx_system_current_draw_context = &default_context;
638     default_context.gx_draw_context_display = &display;
639     status = gx_canvas_pixel_draw(point); //should return GX_SUCCESS
640     EXPECT_EQ(GX_SUCCESS, status);
641 
642     status = gx_canvas_pixelmap_blend(0, 0, 0, 0); //should return GX_PTR_ERROR
643     EXPECT_EQ(GX_PTR_ERROR, status);
644 
645     _gx_system_current_draw_context = 0;
646     status = gx_canvas_pixelmap_blend(0, 0, &pixelmap, 0); //should return GX_INVALID_CONTEXT
647     EXPECT_EQ(GX_INVALID_CONTEXT, status);
648 
649     _gx_system_current_draw_context = &default_context;
650     status = gx_canvas_pixelmap_blend(0, 0, &pixelmap, 0); //should return GX_INVALID_CONTEXT
651     EXPECT_EQ(GX_SUCCESS, status);
652 
653     status = gx_canvas_pixelmap_draw(0, 0, 0); //should return GX_PTR_ERROR
654     EXPECT_EQ(GX_PTR_ERROR, status);
655 
656     _gx_system_current_draw_context = 0;
657     status = gx_canvas_pixelmap_draw(0, 0, &pixelmap); //should return GX_INVALID_CONTEXT
658     EXPECT_EQ(GX_INVALID_CONTEXT, status);
659 
660     _gx_system_current_draw_context = &default_context;
661     status = gx_canvas_pixelmap_draw(0, 0, &pixelmap); //should return GX_INVALID_CONTEXT
662     EXPECT_EQ(GX_SUCCESS, status);
663 
664     status = gx_canvas_pixelmap_get(0); //should return GX_PTR_ERROR
665     EXPECT_EQ(GX_PTR_ERROR, status);
666 
667     _gx_system_current_draw_context = &default_context;
668     default_context.gx_draw_context_canvas = &canvas;
669     default_context.gx_draw_context_display = &display;
670     status = gx_canvas_pixelmap_get(&pixelmap); //should return GX_PTR_ERROR
671     EXPECT_EQ(GX_SUCCESS, status);
672 
673     status = gx_canvas_pixelmap_rotate(0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
674     EXPECT_EQ(GX_PTR_ERROR, status);
675 
676     _gx_system_current_draw_context = 0;
677     status = gx_canvas_pixelmap_rotate(0, 0, &pixelmap, 0, 0, 0); //should return GX_INVALID_CONTEXT
678     EXPECT_EQ(GX_INVALID_CONTEXT, status);
679 
680     _gx_system_current_draw_context = &default_context;
681     status = gx_canvas_pixelmap_rotate(0, 0, &pixelmap, 0, 0, 0); //should return GX_INVALID_CONTEXT
682     EXPECT_EQ(GX_SUCCESS, status);
683 
684     status = gx_canvas_pixelmap_tile(0, 0); //should return GX_PTR_ERROR
685     EXPECT_EQ(GX_PTR_ERROR, status);
686 
687     status = gx_canvas_pixelmap_tile(&size, 0); //should return GX_INVALID_CONTEXT
688     EXPECT_EQ(GX_PTR_ERROR, status);
689 
690     _gx_system_current_draw_context = 0;
691     status = gx_canvas_pixelmap_tile(&size, &pixelmap); //should return GX_INVALID_CONTEXT
692     EXPECT_EQ(GX_INVALID_CONTEXT, status);
693 
694     _gx_system_current_draw_context = &default_context;
695     size.gx_rectangle_bottom = size.gx_rectangle_right = 0;
696     size.gx_rectangle_left = size.gx_rectangle_right + 1;
697     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
698     status = gx_canvas_pixelmap_tile(&size, &pixelmap); //should return GX_INVALID_VALUE
699     EXPECT_EQ(GX_INVALID_VALUE, status);
700 
701     size.gx_rectangle_left = size.gx_rectangle_right = 0;
702     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
703     status = gx_canvas_pixelmap_tile(&size, &pixelmap); //should return GX_INVALID_VALUE
704     EXPECT_EQ(GX_INVALID_VALUE, status);
705 
706     memset(&size, 0, sizeof(GX_RECTANGLE));
707     memset(&default_context.gx_draw_context_dirty, 0, sizeof(GX_RECTANGLE));
708     _gx_system_current_draw_context = &default_context;
709     memset(&pixelmap, 0, sizeof(GX_PIXELMAP));
710     status = gx_canvas_pixelmap_tile(&size, &pixelmap); //should return GX_SUCCESS
711     EXPECT_EQ(GX_FAILURE, status);
712 
713     memset(&pixelmap, 0, sizeof(GX_PIXELMAP));
714     pixelmap.gx_pixelmap_width = 1;
715     pixelmap.gx_pixelmap_height = 0;
716     status = gx_canvas_pixelmap_tile(&size, &pixelmap);
717     EXPECT_EQ(GX_FAILURE, status);
718 
719     status = gx_canvas_polygon_draw(0, 0); // should return GX_PTR_ERROR
720     EXPECT_EQ(GX_PTR_ERROR, status);
721 
722     _gx_system_current_draw_context = GX_NULL;
723     status = gx_canvas_polygon_draw(&point, 0); // should return GX_INVALID_CONTEXT
724     EXPECT_EQ(GX_INVALID_CONTEXT, status);
725 
726     status = gx_canvas_rectangle_draw(0); //should return GX_PTR_ERROR
727     EXPECT_EQ(GX_PTR_ERROR, status);
728 
729     _gx_system_current_draw_context = GX_NULL;
730     status = gx_canvas_rectangle_draw(&size); //should return GX_INVALID_CONTEXT
731     EXPECT_EQ(GX_INVALID_CONTEXT, status);
732 
733     status = gx_canvas_rotated_text_draw(0, 0, 0, 0);//should return GX_PTR_ERROR
734     EXPECT_EQ(GX_PTR_ERROR, status);
735 
736     status = gx_canvas_rotated_text_draw("rotate text", 0, 0, 0);// _gx_system_memory_allocator is GX_NULL
737     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
738 
739     _gx_system_memory_allocator = memory_allocate;
740     _gx_system_memory_free = 0;
741     status = gx_canvas_rotated_text_draw("rotate text", 0, 0, 0);// _gx_system_memory_allocator is GX_NULL
742     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
743 
744     _gx_system_memory_allocator = 0;
745 
746     status = gx_canvas_shift(0, 0, 0); //should return GX_PTR_ERROR
747     EXPECT_EQ(GX_PTR_ERROR, status);
748 
749     canvas.gx_canvas_display = 0;
750     status = gx_canvas_shift(&canvas, 0, 0);
751     EXPECT_EQ(GX_PTR_ERROR, status);
752 
753     canvas.gx_canvas_display = &default_display;
754     canvas.gx_canvas_memory = 0;
755     status = gx_canvas_shift(&canvas, 0, 0);
756     EXPECT_EQ(GX_PTR_ERROR, status);
757 
758     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
759     canvas.gx_canvas_display = &display;
760     canvas.gx_canvas_memory = (VOID *)buffer;
761     status = gx_canvas_shift(&canvas, 0, 0); //should return GX_INVALID_CANVAS
762     EXPECT_EQ(GX_INVALID_CANVAS, status);
763 
764     gx_canvas_show(0); //should return GX_PTR_ERROR
765     canvas.gx_canvas_id = GX_CANVAS_ID + 1;
766     status = gx_canvas_show(&canvas); //should return GX_INVALID_CANVAS
767     EXPECT_EQ(GX_INVALID_CANVAS, status);
768 
769     memset(&canvas, 0, sizeof(GX_CANVAS));
770     canvas.gx_canvas_id = GX_CANVAS_ID;
771     canvas.gx_canvas_hardware_layer = -1;
772     status = gx_canvas_show(&canvas);
773     EXPECT_EQ(GX_SUCCESS, status);
774 
775     status = gx_canvas_hide(&canvas);
776     EXPECT_EQ(GX_SUCCESS, status);
777 
778     canvas.gx_canvas_id = GX_CANVAS_ID;
779     canvas.gx_canvas_hardware_layer = 1;
780     canvas.gx_canvas_display = &display;
781     display.gx_display_layer_services = &display_layer_service;
782     display_layer_service.gx_display_layer_hide = GX_NULL;
783     status = gx_canvas_show(&canvas);
784     EXPECT_EQ(GX_SUCCESS, status);
785 
786     status = gx_canvas_text_draw(0, 0, 0, 0);//should return GX_PTR_ERROR
787     EXPECT_EQ(GX_PTR_ERROR, status);
788 
789     _gx_system_current_draw_context = GX_NULL;
790     status = gx_canvas_text_draw(0, 0, "text", 0);//should return GX_INVALID_CONTEXT
791     EXPECT_EQ(GX_INVALID_CONTEXT, status);
792 
793     /* checkbox */
794     printf("checkbox\n");
795     memset(&checkbox, 0, sizeof(GX_CHECKBOX));
796     gx_checkbox_create(0, "checkbox", 0, 0, 0, 0, 0); // should return GX_PTR_ERROR
797     status = gx_checkbox_create(&checkbox, "checkbox", 0, 0, 0, 0, 0); // size is NULL
798     EXPECT_EQ(GX_PTR_ERROR, status);
799 
800     status = _gxe_checkbox_create(&checkbox, "checkbox", 0, 0, 0, 0, &size, 0); // should return GX_INVALID_SIZE
801     EXPECT_EQ(GX_INVALID_SIZE, status);
802 
803     checkbox.gx_widget_type = GX_TYPE_CHECKBOX;
804     status = gx_checkbox_create(&checkbox, "checkbox", 0, 0, 0, 0, &size); // should return GX_ALREADY_CREATED
805     EXPECT_EQ(GX_ALREADY_CREATED, status);
806 
807     memset(&checkbox, 0, sizeof(GX_CHECKBOX));
808     status = gx_checkbox_create(&checkbox, "checkbox", 0, 0, 0, 0, &size); // parent is NULL
809     EXPECT_EQ(GX_SUCCESS, status);
810 
811     gx_checkbox_event_process(&checkbox, 0); // should return GX_PTR_ERROR
812     checkbox.gx_widget_parent = &parent;
813     checkbox.gx_widget_type = 0;
814     status = gx_checkbox_event_process(&checkbox, &my_event); // should return GX_INVALID_WIDGET
815     EXPECT_EQ(GX_INVALID_WIDGET, status);
816 
817     checkbox.gx_widget_type = GX_TYPE_CHECKBOX;
818     parent.gx_widget_type = 0;
819     status = gx_checkbox_event_process(&checkbox, &my_event); // should return GX_INVALID_WIDGET
820     EXPECT_EQ(GX_INVALID_WIDGET, status);
821 
822     parent.gx_widget_type = GX_TYPE_WIDGET;
823     my_event.gx_event_type = 0;
824     gx_widget_event_process_set(&parent, event_process_func);
825     gx_checkbox_event_process(&checkbox, &my_event); // should return GX_INVALID_WIDGET
826     checkbox.gx_widget_parent = &parent;
827     status = gx_checkbox_event_process(&checkbox, 0); // event_ptr is NULL
828     EXPECT_EQ(GX_PTR_ERROR, status);
829 
830     gx_checkbox_pixelmap_set(0, 0, 0, 0, 0); // should return GX_PTR_ERROR
831 
832     memset(&checkbox, 0, sizeof(GX_CHECKBOX));
833     status = gx_checkbox_select(&checkbox);// should return GX_PTR_ERROR
834     EXPECT_EQ(GX_PTR_ERROR, status);
835 
836     checkbox.gx_widget_parent = &parent;
837     parent.gx_widget_type = 0;
838     status = gx_checkbox_select(&checkbox);// should return GX_INVALID_WIDGET
839     EXPECT_EQ(GX_INVALID_WIDGET, status);
840 
841     parent.gx_widget_type = GX_TYPE_WIDGET;
842     checkbox.gx_widget_type = 0;
843     status = gx_checkbox_select(&checkbox);// should return GX_INVALID_WIDGET
844     EXPECT_EQ(GX_INVALID_WIDGET, status);
845 
846     checkbox.gx_widget_parent = &parent;
847     checkbox.gx_widget_type = GX_TYPE_CHECKBOX;
848     status = gx_checkbox_select(&checkbox);// should return GX_SUCCESS
849     EXPECT_EQ(GX_SUCCESS, status);
850 
851     /* circular gauge */
852     printf("circular gauge\n");
853     memset(&circular_gauge, 0, sizeof(GX_CIRCULAR_GAUGE));
854     status = gx_circular_gauge_angle_get(&circular_gauge, 0);//// should return GX_PTR_ERROR
855     EXPECT_EQ(GX_PTR_ERROR, status);
856 
857     status = gx_circular_gauge_angle_get(&circular_gauge, (INT *)&color);//// should return GX_SUCCESS
858     EXPECT_EQ(GX_SUCCESS, status);
859 
860     status = gx_circular_gauge_angle_set(0, 10);//should return GX_PTR_ERROR
861     EXPECT_EQ(GX_PTR_ERROR, status);
862 
863     memset(&circular_gauge, 0, sizeof(GX_CIRCULAR_GAUGE));
864     status = gx_circular_gauge_animation_set(0, 10, 10); //should return GX_PTR_ERROR
865     EXPECT_EQ(GX_PTR_ERROR, status);
866 
867     status = gx_circular_gauge_animation_set(&circular_gauge, 10, 0); //should return GX_INVALID_VALUE
868     EXPECT_EQ(GX_INVALID_VALUE, status);
869 
870     status = gx_circular_gauge_animation_set(&circular_gauge, 0, 0); //should return GX_SUCCESS
871     EXPECT_EQ(GX_SUCCESS, status);
872 
873     status = gx_circular_gauge_create(0, 0, 0, 0, 0, 0, 0, 0, 0); // circular_gauge is NULL
874     EXPECT_EQ(GX_PTR_ERROR, status);
875 
876     status = gx_circular_gauge_create(&circular_gauge, 0, 0, 0, 0, 0, 0, 0, 0); // circular_gauge_info is NULL
877     EXPECT_EQ(GX_PTR_ERROR, status);
878 
879     status = _gxe_circular_gauge_create(&circular_gauge, 0, 0, &circular_gauge_info, 0, 0, 0, 0, 0, 0); // should return GX_INVALID_SIZE
880     EXPECT_EQ(GX_INVALID_SIZE, status);
881 
882     circular_gauge.gx_widget_type = GX_TYPE_CIRCULAR_GAUGE;
883     status = gx_circular_gauge_create(&circular_gauge, 0, 0, &circular_gauge_info, 0, 0, 0, 0, 0); // should return GX_PTR_ERROR
884     EXPECT_EQ(GX_ALREADY_CREATED, status);
885 
886     memset(&circular_gauge, 0, sizeof(circular_gauge));
887     status = gx_circular_gauge_create(&circular_gauge, 0, 0, &circular_gauge_info, 0, 0, 0, 0, 0); // parent is NULL
888     EXPECT_EQ(GX_SUCCESS, status);
889 
890     status = gx_circular_gauge_event_process(&circular_gauge, 0); // should return GX_PTR_ERROR
891     EXPECT_EQ(GX_PTR_ERROR, status);
892 
893     my_event.gx_event_type = 0;
894     status = gx_circular_gauge_event_process(&circular_gauge, &my_event); // should return GX_PTR_ERROR
895     EXPECT_EQ(GX_SUCCESS, status);
896 
897     /* context brush */
898     printf("context brush\n");
899     status = gx_context_brush_default(0);// should return GX_PTR_ERROR
900     EXPECT_EQ(GX_PTR_ERROR, status);
901 
902     status = gx_context_brush_default(&default_context);// should return GX_PTR_ERROR
903     EXPECT_EQ(GX_SUCCESS, status);
904 
905     _gx_system_current_draw_context = GX_NULL;
906     status = gx_context_brush_define(0, 0, 0);// should return GX_PTR_ERROR
907     EXPECT_EQ(GX_INVALID_CONTEXT, status);
908 
909     status = gx_context_brush_get(0);//should return GX_PTR_ERROR
910     EXPECT_EQ(GX_PTR_ERROR, status);
911 
912     _gx_system_current_draw_context = &default_context;
913     default_context.gx_draw_context_display = &default_display;
914     default_display.gx_display_color_table_size = 0;
915     status = gx_context_color_get(1, &color); // should return GX_INVALID_RESOURCE_ID
916     EXPECT_EQ(GX_INVALID_RESOURCE_ID, status);
917 
918     _gx_system_current_draw_context = &default_context;
919     memset(&default_context, 0, sizeof(GX_DRAW_CONTEXT));
920     status = gx_context_color_get(1, &color);//should return GX_INVALID_CONTEXT
921     EXPECT_EQ(GX_INVALID_DISPLAY, status);
922 
923     _gx_system_current_draw_context = &default_context;
924     default_context.gx_draw_context_display = &display;
925     display.gx_display_color_table_size = 4;
926     display.gx_display_color_table = 0;
927     status = gx_context_color_get(1, &color);
928     EXPECT_EQ(GX_INVALID_RESOURCE_ID, status);
929 
930     _gx_system_current_draw_context = GX_NULL; // following functions need the _gx_system_current_draw_context to be NULL
931     // start
932     status = gx_context_brush_get(&brush); // should return GX_INVALID_CONTEXT
933     EXPECT_EQ(GX_INVALID_CONTEXT, status);
934 
935     status = gx_context_brush_pattern_set(0); // should return GX_INVALID_CONTEXT
936     EXPECT_EQ(GX_INVALID_CONTEXT, status);
937 
938     status = gx_context_brush_set(0); //should return GX_PTR_ERROR
939     EXPECT_EQ(GX_PTR_ERROR, status);
940 
941     status = gx_context_brush_set(&default_context.gx_draw_context_brush); //should return GX_INVALID_CONTEXT
942     EXPECT_EQ(GX_INVALID_CONTEXT, status);
943 
944     status = gx_context_brush_style_set(0);//should return GX_INVALID_CONTEXT
945     EXPECT_EQ(GX_INVALID_CONTEXT, status);
946 
947     status = gx_context_brush_width_set(0);//should return GX_INVALID_CONTEXT
948     EXPECT_EQ(GX_INVALID_CONTEXT, status);
949 
950     status = gx_context_color_get(1, 0); //should return GX_PTR_ERROR
951     EXPECT_EQ(GX_PTR_ERROR, status);
952 
953     status = gx_context_color_get(1, &color);//should return GX_INVALID_CONTEXT
954     EXPECT_EQ(GX_INVALID_CONTEXT, status);
955 
956     status = gx_context_fill_color_set(0);//should return GX_INVALID_CONTEXT
957     EXPECT_EQ(GX_INVALID_CONTEXT, status);
958 
959     status = gx_context_font_get(1, 0); //should return GX_PTR_ERROR
960     EXPECT_EQ(GX_PTR_ERROR, status);
961 
962     status = gx_context_font_get(1, &default_context.gx_draw_context_brush.gx_brush_font);//should return GX_INVALID_CONTEXT
963     EXPECT_EQ(GX_INVALID_CONTEXT, status);
964 
965     status = gx_context_font_set(0);//should return GX_INVALID_CONTEXT
966     EXPECT_EQ(GX_INVALID_CONTEXT, status);
967 
968     status = gx_context_line_color_set(1);//should return GX_INVALID_CONTEXT
969     EXPECT_EQ(GX_INVALID_CONTEXT, status);
970 
971     status = gx_context_pixelmap_get(1, 0);//should return GX_PTR_ERROR
972     EXPECT_EQ(GX_PTR_ERROR, status);
973 
974     status = gx_context_pixelmap_get(1, &default_context.gx_draw_context_brush.gx_brush_pixelmap);//should return GX_INVALID_CONTEXT
975     EXPECT_EQ(GX_INVALID_CONTEXT, status);
976 
977     status = gx_context_pixelmap_set(1);//should return GX_INVALID_CONTEXT
978     EXPECT_EQ(GX_INVALID_CONTEXT, status);
979 
980     status = gx_context_raw_brush_define(1, 1, 1);//should return GX_INVALID_CONTEXT
981     EXPECT_EQ(GX_INVALID_CONTEXT, status);
982 
983     status = gx_context_raw_fill_color_set(1); //should return GX_INVALID_CONTEXT
984     EXPECT_EQ(GX_INVALID_CONTEXT, status);
985 
986     status = gx_context_raw_line_color_set(1); //should return GX_INVALID_CONTEXT
987     EXPECT_EQ(GX_INVALID_CONTEXT, status);
988     //end
989 
990     _gx_system_current_draw_context = &default_context;
991     default_context.gx_draw_context_display = &display;
992     display.gx_display_pixelmap_table_size = 0;
993     status = gx_context_pixelmap_get(1, &return_pixelmap);
994     EXPECT_EQ(GX_INVALID_RESOURCE_ID, status);
995 
996     /* display */
997     printf("display\n");
998     status = gx_display_active_language_set(0, 0); //should return GX_PTR_ERROR
999     EXPECT_EQ(GX_PTR_ERROR, status);
1000 
1001     memset(&display, 0, sizeof(GX_DISPLAY));
1002     status = gx_display_active_language_set(&display, 0); //should return GX_PTR_ERROR
1003     EXPECT_EQ(GX_PTR_ERROR, status);
1004 
1005 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
1006     display.gx_display_language_table_deprecated = (GX_CONST GX_CHAR ***)&langugage_table;
1007     display.gx_display_language_table_size = 0;
1008     status = gx_display_active_language_set(&display, 1); //should return GX_INVALID_VALUE
1009     EXPECT_EQ(GX_INVALID_VALUE, status);
1010 #endif
1011 
1012     status = gx_display_color_set(0, 1, 1);//should return GX_INVALID_DISPLAY
1013     EXPECT_EQ(GX_INVALID_DISPLAY, status);
1014 
1015     memset(&default_display, 0, sizeof(GX_DISPLAY));
1016     status = gx_display_color_set(&default_display, 1024, 1);//should return GX_INVALID_RESOURCE_ID
1017     EXPECT_EQ(GX_INVALID_RESOURCE_ID, status);
1018 
1019     status = gx_display_color_table_set(0, 0, 2); // should return GX_PTR_ERROR
1020     EXPECT_EQ(GX_PTR_ERROR, status);
1021 
1022     status = gx_display_color_table_set(0, &color, 1); // should return GX_INVALID_DISPLAY
1023     EXPECT_EQ(GX_INVALID_DISPLAY, status);
1024 
1025     status = gx_display_create(0, 0, 0, 0, 0); // should return GX_PTR_ERROR
1026     EXPECT_EQ(GX_PTR_ERROR, status);
1027 
1028     status = _gxe_display_create(&display, "linux_display", gx_validation_display_driver_setup_24xrgb, 0, 0, 0); // Should return GX_INVALID_SIZE
1029     EXPECT_EQ(GX_INVALID_SIZE, status);
1030 
1031     /* display delete coverage */
1032     status = gx_display_delete(0, 0);//should return GX_PTR_ERROR
1033     EXPECT_EQ(GX_PTR_ERROR, status);
1034 
1035     status = gx_display_delete(&display, 0);// display_driver_cleanup == GX_NULL
1036     EXPECT_EQ(GX_PTR_ERROR, status);
1037 
1038     status = gx_display_create(&display, "display_1", 0, 0, 0); // display_driver_setup is NULL
1039     EXPECT_EQ(GX_PTR_ERROR, status);
1040 
1041     gx_display_create(&display, "display_1", gx_validation_display_driver_setup_24xrgb, 0, 0); //create display
1042     gx_display_create(&display_1, "display_1", gx_validation_display_driver_setup_24xrgb, 0, 0); //create display
1043     gx_display_create(&display_2, "display_2", gx_validation_display_driver_setup_24xrgb, 0, 0); //create display
1044     status = gx_display_delete(&display, display_cleanup_func);//should return GX_SUCCESS
1045     EXPECT_EQ(GX_SUCCESS, status);
1046 
1047     gx_display_delete(&display, display_cleanup_func); //should return GX_SUCCESS
1048     EXPECT_EQ(GX_SUCCESS, status);
1049 
1050     status = gx_display_delete(&display_1, display_cleanup_func); //should return GX_SUCCESS
1051     EXPECT_EQ(GX_SUCCESS, status);
1052 
1053     status = gx_display_delete(&display_2, display_cleanup_func); //should return GX_SUCCESS
1054     EXPECT_EQ(GX_SUCCESS, status);
1055 
1056     status = gx_display_font_table_set(0, 0, 1);//should return GX_PTR_ERROR
1057     EXPECT_EQ(GX_PTR_ERROR, status);
1058 
1059     status = gx_display_language_table_get(0, 0, 0, 0); // _gx_system_display_created_list == GX_NULL
1060     EXPECT_EQ(GX_PTR_ERROR, status);
1061 
1062     _gx_system_display_created_list = &default_display;
1063     status = gx_display_language_table_get(0, 0, 0, 0); // display == GX_NULL
1064     EXPECT_EQ(GX_PTR_ERROR, status);
1065 
1066     status = gx_display_language_table_get(&default_display, (GX_CHAR ****)&default_display.gx_display_language_table, &default_display.gx_display_language_table_size, &default_display.gx_display_string_table_size);//should return GX_SUCCESS
1067     EXPECT_EQ(GX_SUCCESS, status);
1068 
1069     _gx_system_display_created_list = &default_display;
1070     status = gx_display_language_table_get(&default_display, (GX_CHAR ****)&default_display.gx_display_language_table, &default_display.gx_display_language_table_size, &default_display.gx_display_string_table_size);//should return GX_SUCCESS
1071     EXPECT_EQ(GX_SUCCESS, status);
1072 
1073     status = gx_display_language_table_set(0, 0, 0, 0); //should return GX_PTR_ERROR
1074     EXPECT_EQ(GX_PTR_ERROR, status);
1075 
1076     status = gx_display_language_table_set(&display, 0, 0, 0); // number_of_strings == 0
1077     EXPECT_EQ(GX_SUCCESS, status);
1078 
1079     status = gx_display_language_table_set(&display, 0, 0, 1); //should return GX_PTR_ERROR
1080     EXPECT_EQ(GX_PTR_ERROR, status);
1081 
1082     status = gx_display_pixelmap_table_set(0, 0, 1);//should return GX_PTR_ERROR
1083     EXPECT_EQ(GX_PTR_ERROR, status);
1084 
1085 
1086     status = gx_display_string_table_get(0, 0, 0, 0); //should return GX_PTR_ERROR
1087     EXPECT_EQ(GX_PTR_ERROR, status);
1088 
1089     memset(&display, 0, sizeof(GX_DISPLAY));
1090     status = gx_display_string_table_get(&display, 0, 0, 0); //should return GX_NOT_FOUND
1091     EXPECT_EQ(GX_NOT_FOUND, status);
1092 
1093 #if defined(GX_ENABLE_DEPRECATED_STRING_API)
1094     display.gx_display_language_table_deprecated = (GX_CONST GX_CHAR ***)&langugage_table;
1095     display.gx_display_language_table_size = 1;
1096     status = gx_display_string_table_get(&display, 0, &langugage_table, (UINT *)&color); //should return GX_SUCCESS
1097     EXPECT_EQ(GX_SUCCESS, status);
1098 #endif
1099 
1100     status = gx_display_theme_install(0, 0);//should return GX_INVALID_DISPLAY
1101     EXPECT_EQ(GX_INVALID_DISPLAY, status);
1102 
1103     status = gx_display_theme_install(&display, 0);//should return GX_PTR_ERROR
1104     EXPECT_EQ(GX_PTR_ERROR, status);
1105 
1106     printf("drop list\n");
1107     status = gx_drop_list_close(0);//should return GX_PTR_ERROR
1108     EXPECT_EQ(GX_PTR_ERROR, status);
1109 
1110     drop_list.gx_drop_list_popup_open = 0;
1111     status = gx_drop_list_close(&drop_list);//should return GX_SUCCESS
1112     EXPECT_EQ(GX_SUCCESS, status);
1113 
1114     status = gx_drop_list_create(&drop_list, 0, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1115     EXPECT_EQ(GX_PTR_ERROR, status);
1116 
1117     status = _gxe_drop_list_create(&drop_list, 0, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
1118     EXPECT_EQ(GX_INVALID_SIZE, status);
1119 
1120     drop_list.gx_widget_type = GX_TYPE_DROP_LIST;
1121     status = gx_drop_list_create(&drop_list, 0, 0, 0, 0, 0, 0, 0, &size); //should return GX_PTR_ERROR
1122     EXPECT_EQ(GX_ALREADY_CREATED, status);
1123 
1124     memset(&drop_list, 0, sizeof(drop_list));
1125     status = gx_drop_list_create(&drop_list, 0, 0, 0, 0, 0, 0, 0, &size); // no parent
1126     EXPECT_EQ(GX_SUCCESS, status);
1127 
1128     status = gx_drop_list_event_process(&drop_list, 0); //should return GX_PTR_ERROR
1129     EXPECT_EQ(GX_PTR_ERROR, status);
1130 
1131     drop_list.gx_widget_parent = 0;
1132     my_event.gx_event_type = 0;
1133     status = gx_drop_list_event_process(&drop_list, &my_event); //should return GX_PTR_ERROR
1134     EXPECT_EQ(GX_SUCCESS, status);
1135 
1136     status = gx_drop_list_open(0);//should return GX_PTR_ERROR
1137     EXPECT_EQ(GX_PTR_ERROR, status);
1138 
1139     drop_list.gx_drop_list_popup.gx_popup_list_list.gx_widget_status = GX_STATUS_VISIBLE;
1140     status = gx_drop_list_open(&drop_list);//should return GX_SUCCESS
1141     EXPECT_EQ(GX_SUCCESS, status);
1142 
1143     status = gx_drop_list_pixelmap_set(0, 1);//should return GX_PTR_ERROR
1144     EXPECT_EQ(GX_PTR_ERROR, status);
1145 
1146     status = gx_drop_list_popup_get(0, 0);//should return GX_PTR_ERROR
1147     EXPECT_EQ(GX_PTR_ERROR, status);
1148 
1149     status = gx_drop_list_popup_get(&drop_list, 0);//should return GX_PTR_ERROR
1150     EXPECT_EQ(GX_PTR_ERROR, status);
1151 
1152     /* horizontal list */
1153     printf("horizontal list\n");
1154     status = gx_horizontal_list_children_position(0); //should return GX_PTR_ERROR
1155     EXPECT_EQ(GX_PTR_ERROR, status);
1156 
1157     memset(&horizontal_list, 0, sizeof(GX_HORIZONTAL_LIST));
1158     status = gx_horizontal_list_children_position(&horizontal_list); //should return GX_PTR_ERROR
1159     EXPECT_EQ(GX_SUCCESS, status);
1160 
1161     memset(&horizontal_list, 0, sizeof(GX_HORIZONTAL_LIST));
1162     status = gx_horizontal_list_create(&horizontal_list, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1163     EXPECT_EQ(GX_PTR_ERROR, status);
1164 
1165     status = _gxe_horizontal_list_create(&horizontal_list, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
1166     EXPECT_EQ(GX_INVALID_SIZE, status);
1167 
1168     horizontal_list.gx_widget_type = GX_TYPE_HORIZONTAL_LIST;
1169     status = gx_horizontal_list_create(&horizontal_list, 0, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
1170     EXPECT_EQ(GX_ALREADY_CREATED, status);
1171 
1172     horizontal_list.gx_widget_type = 0;
1173     status = gx_horizontal_list_create(&horizontal_list, 0, 0, 0, 0, 0, 0, &size); //should return GX_INVALID_VALUE
1174     EXPECT_EQ(GX_INVALID_VALUE, status);
1175 
1176     memset(&horizontal_list, 0, sizeof(GX_HORIZONTAL_LIST));
1177     status = gx_horizontal_list_create(&horizontal_list, 0, 0, 1, 0, 0, 0, &size); // parent is NULL
1178     EXPECT_EQ(GX_SUCCESS, status);
1179 
1180     status = gx_horizontal_list_event_process(0, 0); //should return GX_PTR_ERROR
1181     EXPECT_EQ(GX_PTR_ERROR, status);
1182 
1183     status = gx_horizontal_list_event_process(&horizontal_list, 0); // event_ptr == GX_NULL
1184     EXPECT_EQ(GX_PTR_ERROR, status);
1185 
1186     horizontal_list.gx_widget_parent = 0;
1187     my_event.gx_event_type = 0;
1188     status = gx_horizontal_list_event_process(&horizontal_list, &my_event); //should return GX_PTR_ERROR
1189     EXPECT_EQ(GX_SUCCESS, status);
1190 
1191     status = gx_horizontal_list_page_index_set(0, 0); //should return GX_PTR_ERROR
1192     EXPECT_EQ(GX_PTR_ERROR, status);
1193 
1194     status = gx_horizontal_list_page_index_set(&horizontal_list, -1); //should return GX_INVALID_VALUE
1195     EXPECT_EQ(GX_INVALID_VALUE, status);
1196 
1197     status = gx_horizontal_list_selected_index_get(0, 0); //should return GX_PTR_ERROR
1198     EXPECT_EQ(GX_PTR_ERROR, status);
1199 
1200     status = gx_horizontal_list_selected_index_get(&horizontal_list, (INT *)&color); //should return GX_SUCCESS
1201     EXPECT_EQ(GX_SUCCESS, status);
1202 
1203     status = gx_horizontal_list_selected_index_get((VOID *)0x01, 0); // return_list_entry == GX_NULL
1204     EXPECT_EQ(GX_PTR_ERROR, status);
1205 
1206     status = gx_horizontal_list_selected_set(0, 0); //should return GX_PTR_ERROR
1207     EXPECT_EQ(GX_PTR_ERROR, status);
1208 
1209     horizontal_list.gx_widget_type = 0;
1210     status = gx_horizontal_list_selected_set(&horizontal_list, 0); //should return GX_INVALID_WIDGET
1211     EXPECT_EQ(GX_INVALID_WIDGET, status);
1212 
1213     status = gx_horizontal_list_selected_widget_get(0, 0); //should return GX_PTR_ERROR
1214     EXPECT_EQ(GX_PTR_ERROR, status);
1215 
1216     status = gx_horizontal_list_selected_widget_get((VOID *)0x01, 0); // return_list_entry == GX_NULL
1217     EXPECT_EQ(GX_PTR_ERROR, status);
1218 
1219     status = gx_horizontal_list_total_columns_set(0, 10); //should return GX_PTR_ERROR
1220     EXPECT_EQ(GX_PTR_ERROR, status);
1221 
1222     status = gx_horizontal_list_total_columns_set(&horizontal_list, -10); //should return GX_INVALID_VALUE
1223     EXPECT_EQ(GX_INVALID_VALUE, status);
1224 
1225     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
1226     status = gx_horizontal_scrollbar_create(0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1227     EXPECT_EQ(GX_PTR_ERROR, status);
1228 
1229     status = _gxe_horizontal_scrollbar_create(&scrollbar, 0, 0, 0, 0, 0);//should return GX_INVALID_SIZE
1230     EXPECT_EQ(GX_INVALID_SIZE, status);
1231 
1232     scrollbar.gx_widget_type = GX_TYPE_HORIZONTAL_SCROLL;
1233     status = gx_horizontal_scrollbar_create(&scrollbar, 0, 0, 0, 0);//should return GX_ALREADY_CREATED
1234     EXPECT_EQ(GX_ALREADY_CREATED, status);
1235 
1236     /* icon */
1237     printf("icon button\n");
1238     memset(&icon_button, 0, sizeof(GX_ICON_BUTTON));
1239     status = gx_icon_button_create(&icon_button, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1240     EXPECT_EQ(GX_PTR_ERROR, status);
1241 
1242     status = _gxe_icon_button_create(&icon_button, 0, 0, 0, 0, 0, &size, 0);//should return GX_INVALID_SIZE
1243     EXPECT_EQ(GX_INVALID_SIZE, status);
1244 
1245     icon_button.gx_widget_type = GX_TYPE_ICON_BUTTON;
1246     status = gx_icon_button_create(&icon_button, 0, 0, 0, 0, 0, &size);//should return GX_ALREADY_CREATED
1247     EXPECT_EQ(GX_ALREADY_CREATED, status);
1248 
1249     memset(&icon_button, 0, sizeof(GX_ICON_BUTTON));
1250     status = gx_icon_button_create(&icon_button, 0, 0, 0, 0, 0, &size);// parent is NULL
1251     EXPECT_EQ(GX_SUCCESS, status);
1252 
1253     status = gx_icon_button_pixelmap_set(0, 1);//should return GX_PTR_ERROR
1254     EXPECT_EQ(GX_PTR_ERROR, status);
1255 
1256     /* icon */
1257     printf("icon\n");
1258     memset(&icon, 0, sizeof(GX_ICON));
1259     status = gx_icon_create(0, 0, 0, 0, 0, 0, 0, 0); // should return GX_PTR_ERROR
1260     EXPECT_EQ(GX_PTR_ERROR, status);
1261 
1262     status = _gxe_icon_create(&icon, 0, 0, 0, 0, 0, 0, 0, 0); // should return GX_INVALID_SIZE
1263     EXPECT_EQ(GX_INVALID_SIZE, status);
1264 
1265     icon.gx_widget_type = GX_TYPE_ICON;
1266     status = gx_icon_create(&icon, 0, 0, 0, 0, 0, 0, 0); // should return GX_PTR_ERROR
1267     EXPECT_EQ(GX_ALREADY_CREATED, status);
1268 
1269     status = gx_icon_event_process(&icon, 0); //should return GX_PTR_ERROR
1270     EXPECT_EQ(GX_PTR_ERROR, status);
1271 
1272     icon.gx_widget_parent = 0;
1273     my_event.gx_event_type = 0;
1274     status = gx_icon_event_process(&icon, &my_event); //should return GX_PTR_ERROR
1275     EXPECT_EQ(GX_SUCCESS, status);
1276 
1277     status = gx_icon_pixelmap_set(0, 0, 0); //should return GX_PTR_ERROR
1278     EXPECT_EQ(GX_PTR_ERROR, status);
1279 
1280     /* image reader */
1281     printf("image reader\n");
1282     status = gx_image_reader_create(&image_reader, 0, 0, 0, 0);//should return GX_PTR_ERROR
1283     EXPECT_EQ(GX_PTR_ERROR, status);
1284 
1285     status = gx_image_reader_create(&image_reader, (GX_CONST GX_UBYTE *)byte_data, 0, 0, 0);//should return GX_INVALID_VALUE
1286     EXPECT_EQ(GX_INVALID_VALUE, status);
1287 
1288     status = gx_image_reader_palette_set(&image_reader, 0, 0); //should return GX_PTR_ERROR
1289     EXPECT_EQ(GX_PTR_ERROR, status);
1290 
1291     status = gx_image_reader_palette_set(&image_reader, canvas_memory, 0);//should return GX_INVALID_VALUE
1292     EXPECT_EQ(GX_INVALID_VALUE, status);
1293 
1294     status = gx_image_reader_start(&image_reader, 0);//should return GX_PTR_ERROR
1295     EXPECT_EQ(GX_PTR_ERROR, status);
1296 
1297     /* line chart */
1298     printf("line chart\n");
1299     memset(&line_chart, 0, sizeof(GX_LINE_CHART));
1300     status = gx_line_chart_create(&line_chart, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1301     EXPECT_EQ(GX_PTR_ERROR, status);
1302 
1303     status = _gxe_line_chart_create(&line_chart, 0, 0, 0, 0, 0, &size, 0);//should return GX_INVALID_SIZE
1304     EXPECT_EQ(GX_INVALID_SIZE, status);
1305 
1306     line_chart.gx_widget_type = GX_TYPE_LINE_CHART;
1307     status = gx_line_chart_create(&line_chart, 0, 0, 0, 0, 0, &size);//should return GX_PTR_ERROR
1308     EXPECT_EQ(GX_ALREADY_CREATED, status);
1309 
1310     memset(&line_chart, 0, sizeof(GX_LINE_CHART));
1311     status = gx_line_chart_create(&line_chart, 0, 0, &line_chart_info, 0, 0, &size);// parent is NULL
1312     EXPECT_EQ(GX_SUCCESS, status);
1313 
1314     status = gx_line_chart_update(0, 0, 0); //should return GX_PTR_ERROR
1315     EXPECT_EQ(GX_PTR_ERROR, status);
1316 
1317     gx_line_chart_y_scale_calculate(0, 0); //should return GX_PTR_ERROR
1318     status = gx_line_chart_y_scale_calculate(&line_chart, 0); // return_value == GX_NULL
1319     EXPECT_EQ(GX_PTR_ERROR, status);
1320 
1321     /* menu */
1322     printf("menu\n");
1323     memset(&menu, 0, sizeof(GX_MENU));
1324     status = gx_menu_create(&menu, 0, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1325     EXPECT_EQ(GX_PTR_ERROR, status);
1326 
1327     status = _gxe_menu_create(&menu, 0, 0, 0, 0, 0, 0, &size, 0);//should return GX_INVALID_SIZE
1328     EXPECT_EQ(GX_INVALID_SIZE, status);
1329 
1330     menu.gx_widget_type = GX_TYPE_MENU;
1331     status = gx_menu_create(&menu, 0, 0, 0, 0, 0, 0, &size);//should return GX_ALREADY_CREATED
1332     EXPECT_EQ(GX_ALREADY_CREATED, status);
1333 
1334     memset(&menu, 0, sizeof(GX_MENU));
1335     status = gx_menu_create(&menu, 0, 0, 0, 0, 0, 0, &size);// parent is NULL
1336     EXPECT_EQ(GX_SUCCESS, status);
1337 
1338     gx_menu_insert(0, 0); // should return GX_PTR_ERROR
1339     status = gx_menu_insert(&menu, 0); // widget == GX_NULL
1340     EXPECT_EQ(GX_PTR_ERROR, status);
1341 
1342     gx_menu_remove(0, 0); // should return GX_PTR_ERROR
1343     status = gx_menu_remove(&menu, 0); // widget == GX_NULL
1344     EXPECT_EQ(GX_PTR_ERROR, status);
1345 
1346     memset(&menu, 0, sizeof(GX_MENU));
1347     memset(&widget, 0, sizeof(GX_WIDGET));
1348     status = gx_menu_remove(&menu, &widget); // should return GX_PTR_ERROR
1349     EXPECT_EQ(GX_SUCCESS, status);
1350 
1351     status = gx_menu_text_offset_set(0, 1, 2);// should return GX_PTR_ERROR
1352     EXPECT_EQ(GX_PTR_ERROR, status);
1353 
1354     /* multi line text button */
1355     printf("multi line text button\n");
1356     memset(&multi_line_text_button, 0, sizeof(GX_MULTI_LINE_TEXT_BUTTON));
1357     status = gx_multi_line_text_button_create(&multi_line_text_button, 0, 0, 0, 0, 0, 0);// should return GX_PTR_ERROR
1358     EXPECT_EQ(GX_PTR_ERROR, status);
1359 
1360     status = _gxe_multi_line_text_button_create(&multi_line_text_button, 0, 0, 0, 0, 0, &size, 0);// should return GX_INVALID_SIZE
1361     EXPECT_EQ(GX_INVALID_SIZE, status);
1362 
1363     multi_line_text_button.gx_widget_type = GX_TYPE_MULTI_LINE_TEXT_BUTTON;
1364     status = gx_multi_line_text_button_create(&multi_line_text_button, 0, 0, 0, 0, 0, &size);// should return GX_ALREADY_CREATED
1365     EXPECT_EQ(GX_ALREADY_CREATED, status);
1366 
1367     memset(&multi_line_text_button, 0, sizeof(GX_MULTI_LINE_TEXT_BUTTON));
1368     status = gx_multi_line_text_button_create(&multi_line_text_button, 0, 0, 0, 0, 0, &size);// parent is NULL
1369     EXPECT_EQ(GX_SUCCESS, status);
1370 
1371     status = gx_multi_line_text_button_event_process(&multi_line_text_button, 0); // should return GX_PTR_ERROR
1372     EXPECT_EQ(GX_PTR_ERROR, status);
1373 
1374     my_event.gx_event_type = 0;
1375     status = gx_multi_line_text_button_event_process(&multi_line_text_button, &my_event); // should return GX_PTR_ERROR
1376     EXPECT_EQ(GX_SUCCESS, status);
1377 
1378     status = gx_multi_line_text_button_text_id_set(0, 1); // should return GX_PTR_ERROR
1379     EXPECT_EQ(GX_PTR_ERROR, status);
1380 
1381     status = gx_multi_line_text_button_text_set(0, 0); // should return GX_PTR_ERROR
1382     EXPECT_EQ(GX_PTR_ERROR, status);
1383 
1384     memset(&multi_line_text_button, 0, sizeof(GX_MULTI_LINE_TEXT_BUTTON));
1385     multi_line_text_button.gx_widget_style = GX_STYLE_TEXT_COPY;
1386     _gx_system_memory_allocator = GX_NULL;
1387     status = gx_multi_line_text_button_text_set(&multi_line_text_button, 0); // should return GX_SYSTEM_MEMORY_ERROR
1388     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
1389 
1390     /* multi line text input */
1391     memset(&multi_line_text_input, 0, sizeof(GX_MULTI_LINE_TEXT_INPUT));
1392 
1393     status = gx_multi_line_text_input_backspace(&multi_line_text_input);
1394     EXPECT_EQ(GX_INVALID_WIDGET, status);
1395 
1396     status = gx_multi_line_text_input_buffer_clear(0); // should return GX_PTR_ERROR
1397     EXPECT_EQ(GX_PTR_ERROR, status);
1398 
1399     status = gx_multi_line_text_input_char_insert(&multi_line_text_input, GX_NULL, 0);
1400     EXPECT_EQ(GX_PTR_ERROR, status);
1401 
1402     status = gx_multi_line_text_input_char_insert(&multi_line_text_input, byte_data, 0);
1403     EXPECT_EQ(GX_INVALID_VALUE, status);
1404 
1405     status = gx_multi_line_text_input_char_insert(&multi_line_text_input, byte_data, 1);
1406     EXPECT_EQ(GX_INVALID_WIDGET, status);
1407 
1408     status = gx_multi_line_text_input_buffer_get(0, 0, 0, 0); // should return GX_PTR_ERROR
1409     EXPECT_EQ(GX_PTR_ERROR, status);
1410 
1411     status = gx_multi_line_text_input_create(&multi_line_text_input, 0, 0, (GX_CHAR *)byte_data, 0, 0, 0, 0);// size == GX_NULL
1412     EXPECT_EQ(GX_PTR_ERROR, status);
1413 
1414     status = _gxe_multi_line_text_input_create(&multi_line_text_input, 0, 0, (GX_CHAR *)byte_data, 0, 0, 0, &size, 0);// should return GX_INVALID_SIZE
1415     EXPECT_EQ(GX_INVALID_SIZE, status);
1416 
1417     parent.gx_widget_type = 0;
1418     status = gx_multi_line_text_input_create(&multi_line_text_input, 0, &parent, (GX_CHAR *)byte_data, 0, 0, 0, &size);// should return GX_INVALID_WIDGET
1419     EXPECT_EQ(GX_INVALID_WIDGET, status);
1420 
1421     multi_line_text_input.gx_widget_type = GX_TYPE_MULTI_LINE_TEXT_INPUT;
1422     status = gx_multi_line_text_input_create(&multi_line_text_input, 0, 0, (GX_CHAR *)byte_data, 0, 0, 0, &size);// should return GX_ALREADY_CREATED
1423     EXPECT_EQ(GX_ALREADY_CREATED, status);
1424 
1425     status = gx_multi_line_text_input_cursor_pos_get(GX_NULL, GX_NULL);
1426     EXPECT_EQ(GX_PTR_ERROR, status);
1427 
1428     status = gx_multi_line_text_input_cursor_pos_get(&multi_line_text_input, GX_NULL);
1429     EXPECT_EQ(GX_PTR_ERROR, status);
1430 
1431     status = gx_multi_line_text_input_cursor_pos_get(&multi_line_text_input, &cursor_pos);
1432     EXPECT_EQ(GX_SUCCESS, status);
1433     EXPECT_EQ(multi_line_text_input.gx_multi_line_text_input_cursor_instance.gx_text_input_cursor_pos.gx_point_x, cursor_pos.gx_point_x);
1434     EXPECT_EQ(multi_line_text_input.gx_multi_line_text_input_cursor_instance.gx_text_input_cursor_pos.gx_point_y, cursor_pos.gx_point_y);
1435 
1436     multi_line_text_input.gx_widget_type = 0;
1437     status = gx_multi_line_text_input_cursor_pos_get(&multi_line_text_input, &cursor_pos);
1438     EXPECT_EQ(GX_INVALID_WIDGET, status);
1439 
1440     status = gx_multi_line_text_input_delete(&multi_line_text_input);
1441     EXPECT_EQ(GX_INVALID_WIDGET, status);
1442 
1443     status = gx_multi_line_text_input_down_arrow(&multi_line_text_input);
1444     EXPECT_EQ(GX_INVALID_WIDGET, status);
1445 
1446     status = gx_multi_line_text_input_end(&multi_line_text_input);
1447     EXPECT_EQ(GX_INVALID_WIDGET, status);
1448 
1449     status = gx_multi_line_text_input_event_process(0, 0);//should return GX_PTR_ERROR
1450     EXPECT_EQ(GX_PTR_ERROR, status);
1451 
1452     status = gx_multi_line_text_input_event_process(&multi_line_text_input, 0);//should return GX_PTR_ERROR
1453     EXPECT_EQ(GX_PTR_ERROR, status);
1454 
1455     status = gx_multi_line_text_input_event_process(&multi_line_text_input, &my_event);//should return GX_INVALID_WIDGET
1456     EXPECT_EQ(GX_INVALID_WIDGET, status);
1457 
1458     status = gx_multi_line_text_input_fill_color_set(0, 1, 2, 3, 4);// should return GX_PTR_ERROR
1459     EXPECT_EQ(GX_PTR_ERROR, status);
1460 
1461     status = gx_multi_line_text_input_fill_color_set(&multi_line_text_input, 1, 2, 3, 4);// should return GX_PTR_ERROR
1462     EXPECT_EQ(GX_SUCCESS, 0);
1463 
1464     status = gx_multi_line_text_input_home(&multi_line_text_input);
1465     EXPECT_EQ(GX_INVALID_WIDGET, status);
1466 
1467     status = gx_multi_line_text_input_left_arrow(&multi_line_text_input);
1468     EXPECT_EQ(GX_INVALID_WIDGET, status);
1469 
1470     status = gx_multi_line_text_input_right_arrow(&multi_line_text_input);
1471     EXPECT_EQ(GX_INVALID_WIDGET, status);
1472 
1473     status = gx_multi_line_text_input_style_add(0, 1);// should return GX_PTR_ERROR
1474     EXPECT_EQ(GX_PTR_ERROR, status);
1475 
1476     status = gx_multi_line_text_input_style_remove(0, 1);// should return GX_PTR_ERROR
1477     EXPECT_EQ(GX_PTR_ERROR, status);
1478 
1479     status = gx_multi_line_text_input_style_set(0, 1);// should return GX_PTR_ERROR
1480     EXPECT_EQ(GX_PTR_ERROR, status);
1481 
1482     status = gx_multi_line_text_input_style_set(&multi_line_text_input, 0); //should return GX_SUCCESS
1483     EXPECT_EQ(GX_SUCCESS, status);
1484 
1485     status = gx_multi_line_text_input_text_color_set(0, 1, 2, 3, 4);// should return GX_PTR_ERROR
1486     EXPECT_EQ(GX_PTR_ERROR, status);
1487 
1488     status = gx_multi_line_text_input_text_select(0, 0, 0); //should return GX_PTR_ERROR
1489     EXPECT_EQ(GX_PTR_ERROR, status);
1490 
1491     status = gx_multi_line_text_input_text_select(&multi_line_text_input, 0, 0); //should return GX_INVALID_WIDGET
1492     EXPECT_EQ(GX_INVALID_WIDGET, status);
1493 
1494     multi_line_text_input.gx_widget_type = GX_TYPE_MULTI_LINE_TEXT_INPUT;
1495     status = gx_multi_line_text_input_text_select(&multi_line_text_input, 0, 0); // start_index >= string_byte_count
1496     EXPECT_EQ(GX_INVALID_VALUE, status);
1497 
1498     multi_line_text_input.gx_multi_line_text_view_text.gx_string_length = 1;
1499     status = gx_multi_line_text_input_text_select(&multi_line_text_input, 0, 2); // end_index >= string_byte_count
1500     EXPECT_EQ(GX_INVALID_VALUE, status);
1501 
1502     status = gx_multi_line_text_input_text_set(0, (GX_CONST GX_CHAR *)byte_data);// should return GX_PTR_ERROR
1503     EXPECT_EQ(GX_PTR_ERROR, status);
1504 
1505     multi_line_text_input.gx_widget_type = 0;
1506     status = gx_multi_line_text_input_up_arrow(&multi_line_text_input);
1507     EXPECT_EQ(GX_INVALID_WIDGET, status);
1508 
1509     /* multi line text view */
1510     memset(&multi_line_text_view, 0, sizeof(GX_MULTI_LINE_TEXT_VIEW));
1511     status = gx_multi_line_text_view_create(&multi_line_text_view, 0, 0, 0, 0, 0, 0);// should return GX_PTR_ERROR
1512     EXPECT_EQ(GX_PTR_ERROR, status);
1513 
1514     status = _gxe_multi_line_text_view_create(&multi_line_text_view, 0, 0, 0, 0, 0, &size, 0);// should return GX_INVALID_SIZE
1515     EXPECT_EQ(GX_INVALID_SIZE, status);
1516 
1517     multi_line_text_view.gx_widget_type = GX_TYPE_MULTI_LINE_TEXT_VIEW;
1518     status = gx_multi_line_text_view_create(&multi_line_text_view, 0, 0, 0, 0, 0, &size);// should return GX_ALREADY_CREATED
1519     EXPECT_EQ(GX_ALREADY_CREATED, status);
1520 
1521     status = gx_multi_line_text_view_event_process(&multi_line_text_view, 0);// should return GX_PTR_ERROR
1522     EXPECT_EQ(GX_PTR_ERROR, status);
1523 
1524     multi_line_text_view.gx_widget_type = 0;
1525     status = gx_multi_line_text_view_event_process(&multi_line_text_view, &my_event);// should return GX_INVALID_WIDGET
1526     EXPECT_EQ(GX_INVALID_WIDGET, status);
1527 
1528     multi_line_text_view.gx_widget_type = GX_TYPE_MULTI_LINE_TEXT_VIEW;
1529     my_event.gx_event_type = 0;
1530     status = gx_multi_line_text_view_event_process(&multi_line_text_view, &my_event);// should return GX_SUCCESS
1531     EXPECT_EQ(GX_SUCCESS, status);
1532 
1533     status = gx_multi_line_text_view_font_set(0, 1);// should return GX_PTR_ERROR
1534     EXPECT_EQ(GX_PTR_ERROR, status);
1535 
1536     status = gx_multi_line_text_view_line_space_set(0, 1);// should return GX_PTR_ERROR
1537     EXPECT_EQ(GX_PTR_ERROR, status);
1538 
1539     status = gx_multi_line_text_view_scroll_info_get(&multi_line_text_view, 0, 0);// should return GX_PTR_ERROR
1540     EXPECT_EQ(GX_PTR_ERROR, status);
1541 
1542     status = gx_multi_line_text_view_scroll_info_get(&multi_line_text_view, 0, &scroll_info);// should return GX_PTR_ERROR
1543     EXPECT_EQ(GX_FAILURE, status);
1544 
1545     status = gx_multi_line_text_view_text_color_set(0, 1, 2, 3);// should return GX_PTR_ERROR
1546     EXPECT_EQ(GX_PTR_ERROR, status);
1547 
1548     status = gx_multi_line_text_view_text_id_set(0, 1);// should return GX_PTR_ERROR
1549     EXPECT_EQ(GX_PTR_ERROR, status);
1550 
1551     status = gx_multi_line_text_view_text_set(0, (GX_CONST GX_CHAR *)byte_data);// should return GX_PTR_ERROR
1552     EXPECT_EQ(GX_PTR_ERROR, status);
1553 
1554     multi_line_text_view.gx_widget_style = GX_STYLE_TEXT_COPY;
1555     _gx_system_memory_allocator = GX_NULL;
1556     status = gx_multi_line_text_view_text_set(&multi_line_text_view, (GX_CONST GX_CHAR *)byte_data);// should return GX_SYSTEM_MEMORY_ERROR
1557     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
1558 
1559     status = gx_multi_line_text_view_whitespace_set(0, 1);// should return GX_PTR_ERROR
1560     EXPECT_EQ(GX_PTR_ERROR, status);
1561 
1562     /* numeric pixelmap prompt */
1563     printf("numeric pixelmap prompt\n");
1564     memset(&numeric_pixelmap_prompt, 0, sizeof(GX_NUMERIC_PIXELMAP_PROMPT));
1565     status = gx_numeric_pixelmap_prompt_create(&numeric_pixelmap_prompt, 0, 0, 0, 0, 0, 0, 0);// should return GX_PTR_ERROR
1566     EXPECT_EQ(GX_PTR_ERROR, status);
1567 
1568     status = _gxe_numeric_pixelmap_prompt_create(&numeric_pixelmap_prompt, 0, 0, 0, 0, 0, 0, &size, 0);// should return GX_INVALID_SIZE
1569     EXPECT_EQ(GX_INVALID_SIZE, status);
1570 
1571     numeric_pixelmap_prompt.gx_widget_type = GX_TYPE_NUMERIC_PIXELMAP_PROMPT;
1572     status = gx_numeric_pixelmap_prompt_create(&numeric_pixelmap_prompt, 0, 0, 0, 0, 0, 0, &size);// should return GX_PTR_ERROR
1573     EXPECT_EQ(GX_ALREADY_CREATED, status);
1574 
1575     memset(&numeric_pixelmap_prompt, 0, sizeof(GX_NUMERIC_PIXELMAP_PROMPT));
1576     status = gx_numeric_pixelmap_prompt_create(&numeric_pixelmap_prompt, 0, 0, 0, 0, 0, 0, &size);// parent is NULL
1577     EXPECT_EQ(GX_SUCCESS, status);
1578 
1579     status = gx_numeric_pixelmap_prompt_format_function_set(&numeric_pixelmap_prompt, 0); // should return GX_PTR_ERROR
1580     EXPECT_EQ(GX_PTR_ERROR, status);
1581 
1582     status = gx_numeric_pixelmap_prompt_value_set(0, 0);// should return GX_PTR_ERROR
1583     EXPECT_EQ(GX_PTR_ERROR, status);
1584 
1585     /* numeric prompt */
1586     printf("numeric prompt\n");
1587     memset(&numeric_prompt, 0, sizeof(GX_NUMERIC_PROMPT));
1588     status = gx_numeric_prompt_create(&numeric_prompt, 0, 0, 0, 0, 0, 0);// should return GX_PTR_ERROR
1589     EXPECT_EQ(GX_PTR_ERROR, status);
1590 
1591     status = _gxe_numeric_prompt_create(&numeric_prompt, 0, 0, 0, 0, 0, &size, 0);// should return GX_INVALID_SIZE
1592     EXPECT_EQ(GX_INVALID_SIZE, status);
1593 
1594     numeric_prompt.gx_widget_type = GX_TYPE_NUMERIC_PROMPT;
1595     status = gx_numeric_prompt_create(&numeric_prompt, 0, 0, 0, 0, 0, &size);// should return GX_ALREADY_CREATED
1596     EXPECT_EQ(GX_ALREADY_CREATED, status);
1597 
1598     memset(&numeric_prompt, 0, sizeof(GX_NUMERIC_PROMPT));
1599     status = gx_numeric_prompt_create(&numeric_prompt, 0, 0, 0, 0, 0, &size);// parent is NULL
1600     EXPECT_EQ(GX_SUCCESS, status);
1601 
1602     status = gx_numeric_prompt_format_function_set(&numeric_prompt, 0); // should return GX_PTR_ERROR
1603     EXPECT_EQ(GX_PTR_ERROR, status);
1604 
1605     status = gx_numeric_prompt_value_set(0, 0);// should return GX_PTR_ERROR
1606     EXPECT_EQ(GX_PTR_ERROR, status);
1607 
1608     /* numeric scroll wheel */
1609     printf("numeric scroll wheel\n");
1610     memset(&numeric_scroll_wheel, 0, sizeof(GX_NUMERIC_SCROLL_WHEEL));
1611     status = gx_numeric_scroll_wheel_create(&numeric_scroll_wheel, 0, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1612     EXPECT_EQ(GX_PTR_ERROR, status);
1613 
1614     status = _gxe_numeric_scroll_wheel_create(&numeric_scroll_wheel, 0, 0, 0, 0, 0, 0, &size, 0);//should return GX_INVALID_SIZE
1615     EXPECT_EQ(GX_INVALID_SIZE, status);
1616 
1617     numeric_scroll_wheel.gx_widget_type = GX_TYPE_NUMERIC_SCROLL_WHEEL;
1618     status = gx_numeric_scroll_wheel_create(&numeric_scroll_wheel, 0, 0, 0, 0, 0, 0, &size);//should return GX_ALREADY_CREATED
1619     EXPECT_EQ(GX_ALREADY_CREATED, status);
1620 
1621     memset(&numeric_scroll_wheel, 0, sizeof(GX_NUMERIC_SCROLL_WHEEL));
1622     status = gx_numeric_scroll_wheel_create(&numeric_scroll_wheel, 0, 0, 0, 0, 0, 0, &size);// parent is NULL
1623     EXPECT_EQ(GX_SUCCESS, status);
1624 
1625     status = gx_numeric_scroll_wheel_range_set(0, 1, 0); //should return GX_PTR_ERROR
1626     EXPECT_EQ(GX_PTR_ERROR, status);
1627 
1628     /* pixelmap button */
1629     printf("pixelmap button\n");
1630     status = gx_pixelmap_button_create(&pixelmap_button, 0, 0, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1631     EXPECT_EQ(GX_PTR_ERROR, status);
1632 
1633     memset(&pixelmap_button, 0, sizeof(GX_PIXELMAP_BUTTON));
1634     status = _gxe_pixelmap_button_create(&pixelmap_button, 0, 0, 0, 0, 0, 0, 0,&size, 0);//should return GX_INVALID_SIZE
1635     EXPECT_EQ(GX_INVALID_SIZE, status);
1636 
1637     pixelmap_button.gx_widget_type = GX_TYPE_PIXELMAP_BUTTON;
1638     status = gx_pixelmap_button_create(&pixelmap_button, 0, 0, 0, 0, 0, 0, 0, &size);//should return GX_ALREADY_CREATED
1639     EXPECT_EQ(GX_ALREADY_CREATED, status);
1640 
1641     memset(&pixelmap_button, 0, sizeof(GX_PIXELMAP_BUTTON));
1642     status = gx_pixelmap_button_create(&pixelmap_button, 0, 0, 0, 0, 0, 0, 0, &size);// parent is NULL
1643     EXPECT_EQ(GX_SUCCESS, status);
1644 
1645     status = gx_pixelmap_button_event_process(&pixelmap_button, 0); // should return GX_PTR_ERROR
1646     EXPECT_EQ(GX_PTR_ERROR, status);
1647 
1648     pixelmap_button.gx_widget_type = 0;
1649     status = gx_pixelmap_button_event_process(&pixelmap_button, &my_event); //should return GX_INVALID_WIDGET
1650     EXPECT_EQ(GX_SUCCESS, status);
1651 
1652     pixelmap_button.gx_widget_type = GX_TYPE_PIXELMAP_BUTTON;
1653     my_event.gx_event_type = 0;
1654     status = gx_pixelmap_button_event_process(&pixelmap_button, &my_event); //should return GX_SUCCESS
1655     EXPECT_EQ(GX_SUCCESS, status);
1656 
1657     status = gx_pixelmap_button_pixelmap_set(&pixelmap_button, 0, 0, 0);//should return GX_PTR_ERROR
1658     EXPECT_EQ(GX_SUCCESS, status);
1659 
1660     /* pixelmap prompt */
1661     printf("pixelmap prompt\n");
1662     memset(&pixelmap_prompt, 0, sizeof(GX_PIXELMAP_PROMPT));
1663     status = gx_pixelmap_prompt_create(&pixelmap_prompt, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1664     EXPECT_EQ(GX_PTR_ERROR, status);
1665 
1666     status = _gxe_pixelmap_prompt_create(&pixelmap_prompt, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
1667     EXPECT_EQ(GX_INVALID_SIZE, status);
1668 
1669     pixelmap_prompt.gx_widget_type = GX_TYPE_PIXELMAP_PROMPT;
1670     status = gx_pixelmap_prompt_create(&pixelmap_prompt, 0, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
1671     EXPECT_EQ(GX_ALREADY_CREATED, status);
1672 
1673     status = gx_pixelmap_prompt_pixelmap_set(0, 1, 2, 3, 4, 5, 6); //should return GX_PTR_ERROR
1674     EXPECT_EQ(GX_PTR_ERROR, status);
1675 
1676     /* pixelmap slider */
1677     printf("pixelmap slider\n");
1678     memset(&pixelmap_slider, 0, sizeof(GX_PIXELMAP_SLIDER));
1679     status = gx_pixelmap_slider_create(&pixelmap_slider, 0, 0, &slider_info, 0, 0, 0, &size); // should return GX_PTR_ERROR
1680     EXPECT_EQ(GX_PTR_ERROR, status);
1681 
1682     status = gx_pixelmap_slider_create(&pixelmap_slider, 0, 0, &slider_info, 0, 0, 0, 0); // size == GX_NULL
1683     EXPECT_EQ(GX_PTR_ERROR, status);
1684 
1685     status = gx_pixelmap_slider_create(&pixelmap_slider, 0, 0, 0, 0, 0, 0, &size); // info == GX_NULL
1686     EXPECT_EQ(GX_PTR_ERROR, status);
1687 
1688     status = _gxe_pixelmap_slider_create(&pixelmap_slider, 0, 0, &slider_info, &pixelmap_slider_info, 0, 0, &size, 0); // should return GX_INVALID_SIZE
1689     EXPECT_EQ(GX_INVALID_SIZE, status);
1690 
1691     pixelmap_slider.gx_widget_type = GX_TYPE_PIXELMAP_SLIDER;
1692     status = gx_pixelmap_slider_create(&pixelmap_slider, 0, 0, &slider_info, &pixelmap_slider_info, 0, 0, &size); // should return GX_ALREADY_CREATED
1693     EXPECT_EQ(GX_ALREADY_CREATED, status);
1694 
1695     memset(&pixelmap_slider, 0, sizeof(GX_PIXELMAP_SLIDER));
1696     status = gx_pixelmap_slider_create(&pixelmap_slider, 0, 0, &slider_info, &pixelmap_slider_info, 0, 0, &size); // parent is NULL
1697     EXPECT_EQ(GX_SUCCESS, status);
1698 
1699     status = gx_pixelmap_slider_event_process(&pixelmap_slider, 0); //should return GX_PTR_ERROR
1700     EXPECT_EQ(GX_PTR_ERROR, status);
1701 
1702     pixelmap_slider.gx_widget_type = 0;
1703     status = gx_pixelmap_slider_event_process(&pixelmap_slider, &my_event); //should return GX_INVALID_WIDGET
1704     EXPECT_EQ(GX_INVALID_WIDGET, status);
1705 
1706     pixelmap_slider.gx_widget_type = GX_TYPE_PIXELMAP_SLIDER;
1707     my_event.gx_event_type = 0;
1708     status = gx_pixelmap_slider_event_process(&pixelmap_slider, &my_event); //should return GX_SUCCESS
1709     EXPECT_EQ(GX_SUCCESS, status);
1710 
1711     status = gx_pixelmap_slider_pixelmap_set(&pixelmap_slider, 0); //should return GX_PTR_ERROR
1712     EXPECT_EQ(GX_PTR_ERROR, status);
1713 
1714     /* progress bar */
1715     printf("progress bar\n");
1716     memset(&progress_bar, 0, sizeof(GX_PROGRESS_BAR));
1717     status = gx_progress_bar_create(&progress_bar, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1718     EXPECT_EQ(GX_PTR_ERROR, status);
1719 
1720     status = _gxe_progress_bar_create(&progress_bar, 0, 0, &progress_bar_info, 0, 0, &size, 0); //should return GX_INVALID_SIZE
1721     EXPECT_EQ(GX_INVALID_SIZE, status);
1722 
1723     status = gx_progress_bar_create(&progress_bar, 0, 0, &progress_bar_info, 0, 0, &size); //should return GX_INVALID_WIDGET
1724     EXPECT_EQ(GX_SUCCESS, status);
1725 
1726     progress_bar.gx_widget_type = GX_TYPE_PROGRESS_BAR;
1727     status = gx_progress_bar_create(&progress_bar, 0, &parent, &progress_bar_info, 0, 0, &size); //should return GX_ALREADY_CREATED
1728     EXPECT_EQ(GX_ALREADY_CREATED, status);
1729 
1730     progress_bar.gx_widget_type = 0;
1731     parent.gx_widget_type = 0;
1732     status = gx_progress_bar_create(&progress_bar, 0, &parent, &progress_bar_info, 0, 0, &size); //should return GX_INVALID_WIDGET
1733     EXPECT_EQ(GX_INVALID_WIDGET, status);
1734 
1735     status = gx_progress_bar_create(&progress_bar, 0, 0, &progress_bar_info, 0, 0, &size); //should return GX_SUCCESS
1736     EXPECT_EQ(GX_SUCCESS, status);
1737 
1738     status = gx_widget_delete(&progress_bar);
1739     EXPECT_EQ(GX_SUCCESS, status);
1740 
1741     status = gx_progress_bar_create(&progress_bar, 0, 0, 0, 0, 0, &size); //should return GX_SUCCESS
1742     EXPECT_EQ(GX_SUCCESS, status);
1743 
1744     status = gx_progress_bar_event_process(&progress_bar, 0); //should return GX_PTR_ERROR
1745     EXPECT_EQ(GX_PTR_ERROR, status);
1746 
1747     progress_bar.gx_widget_type = GX_TYPE_PROGRESS_BAR;
1748     my_event.gx_event_type = 0;
1749     memset(&progress_bar, 0, sizeof(GX_PROGRESS_BAR));
1750     status = gx_progress_bar_event_process(&progress_bar, &my_event); //should return GX_PTR_ERROR
1751     EXPECT_EQ(GX_SUCCESS, status);
1752 
1753     status = gx_progress_bar_font_set(0, 1);//should return GX_PTR_ERROR
1754     EXPECT_EQ(GX_PTR_ERROR, status);
1755 
1756     status = gx_progress_bar_info_set(0, &progress_bar_info); //should return GX_PTR_ERROR
1757     EXPECT_EQ(GX_PTR_ERROR, status);
1758 
1759     status = gx_progress_bar_info_set(&progress_bar, 0); //should return GX_PTR_ERROR
1760     EXPECT_EQ(GX_PTR_ERROR, status);
1761 
1762     progress_bar.gx_widget_status = 0;
1763     status = gx_progress_bar_info_set(&progress_bar, &progress_bar_info); //should return GX_PTR_ERROR
1764     EXPECT_EQ(GX_SUCCESS, status);
1765 
1766     status = gx_progress_bar_pixelmap_set(0, 1);//should return GX_PTR_ERROR
1767     EXPECT_EQ(GX_PTR_ERROR, status);
1768 
1769     status = gx_progress_bar_range_set(0, 10, 1);//should return GX_PTR_ERROR
1770     EXPECT_EQ(GX_PTR_ERROR, status);
1771 
1772     status = gx_progress_bar_text_color_set(0, 1, 2, 3);//should return GX_PTR_ERROR
1773     EXPECT_EQ(GX_PTR_ERROR, status);
1774 
1775     progress_bar.gx_widget_type = 0;
1776     status = gx_progress_bar_text_color_set(&progress_bar, 1, 2, 3);//should return GX_PTR_ERROR
1777     EXPECT_EQ(GX_SUCCESS, status);
1778 
1779     status = gx_progress_bar_value_set(0, 1);//should return GX_PTR_ERROR
1780     EXPECT_EQ(GX_PTR_ERROR, status);
1781 
1782     /* prompt */
1783     printf("prompt\n");
1784     memset(&prompt, 0, sizeof(GX_PROMPT));
1785     status = gx_prompt_create(&prompt, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1786     EXPECT_EQ(GX_PTR_ERROR, status);
1787 
1788     status = _gxe_prompt_create(&prompt, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
1789     EXPECT_EQ(GX_INVALID_SIZE, status);
1790 
1791     prompt.gx_widget_type = GX_TYPE_PROMPT;
1792     status = gx_prompt_create(&prompt, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
1793     EXPECT_EQ(GX_ALREADY_CREATED, status);
1794 
1795     status = gx_prompt_font_set(0, 1);//should return GX_PTR_ERROR
1796     EXPECT_EQ(GX_PTR_ERROR, status);
1797 
1798     prompt.gx_widget_type = 0;
1799     status = gx_prompt_font_set(&prompt, 0);//should return GX_INVALID_WIDGET
1800     EXPECT_EQ(GX_INVALID_WIDGET, status);
1801 
1802     prompt.gx_widget_type = GX_TYPE_PROMPT;
1803     status = gx_prompt_font_set(&prompt, 0);//should return GX_SUCCESS
1804     EXPECT_EQ(GX_SUCCESS, status);
1805 
1806     status = gx_prompt_text_color_set(0, 1, 2, 3); //should return GX_PTR_ERROR
1807     EXPECT_EQ(GX_PTR_ERROR, status);
1808 
1809     prompt.gx_widget_type = 0;
1810     status = gx_prompt_text_color_set(&prompt, 1, 2, 3); //should return GX_INVALID_WIDGET
1811     EXPECT_EQ(GX_INVALID_WIDGET, status);
1812 
1813     prompt.gx_widget_type = GX_TYPE_PROMPT;
1814     status = gx_prompt_text_color_set(&prompt, 1, 2, 3); //should return GX_SUCCESS
1815     EXPECT_EQ(GX_SUCCESS, status);
1816 
1817 #ifdef GX_ENABLE_DEPRECATED_STRING_API
1818     status = gx_prompt_text_get(0, (GX_CONST GX_CHAR **)&byte_data);//should return GX_PTR_ERROR
1819     EXPECT_EQ(GX_PTR_ERROR, status);
1820 
1821     prompt.gx_widget_type = 0;
1822     status = gx_prompt_text_get(&prompt, (GX_CONST GX_CHAR **)&byte_data);//should return GX_INVALID_WIDGET
1823     EXPECT_EQ(GX_INVALID_WIDGET, status);
1824 
1825     memset(&prompt, 0, sizeof(GX_PROMPT));
1826     prompt.gx_widget_type = GX_TYPE_PROMPT;
1827     status = gx_prompt_text_get(&prompt, (GX_CONST GX_CHAR **)&byte_data);//should return GX_SUCCESS
1828     EXPECT_EQ(GX_SUCCESS, status);
1829 #endif
1830     status = gx_prompt_text_get_ext(0, &string);//should return GX_PTR_ERROR
1831     EXPECT_EQ(GX_PTR_ERROR, status);
1832 
1833     memset(&prompt, 0, sizeof(GX_PROMPT));
1834     status = gx_prompt_text_get_ext(&prompt, &string);//should return GX_INVALID_WIDGET
1835     EXPECT_EQ(GX_INVALID_WIDGET, status);
1836 
1837     gx_utility_rectangle_define(&size, 0, 0, 100, 100);
1838     gx_prompt_create(&prompt, "test_prompt", GX_NULL, 0, 0, 1024, &size);
1839     string.gx_string_ptr = test_string;
1840     string.gx_string_length = sizeof(test_string) - 1;
1841     gx_prompt_text_set_ext(&prompt, &string);
1842 
1843     memset(&string, 0, sizeof(GX_STRING));
1844     status = gx_prompt_text_get_ext(&prompt, &string);//should return GX_SUCCESSI
1845     EXPECT_EQ(GX_SUCCESS, status);
1846 
1847     if(strcmp(string.gx_string_ptr, test_string) != 0)
1848     {
1849         printf("\nERROR! File: %s Line: %d\n", __FILE__, __LINE__); \
1850         printf("Retrieved prompt text is not correct");
1851 
1852         failed_tests++;
1853     }
1854 
1855     status = gx_prompt_text_id_set(0, 1); //should return GX_PTR_ERROR
1856     EXPECT_EQ(GX_PTR_ERROR, status);
1857 
1858     _gx_system_memory_free = 0;
1859     prompt.gx_widget_style = GX_STYLE_TEXT_COPY;
1860     prompt.gx_prompt_string.gx_string_ptr = (GX_CONST GX_CHAR *)&color;
1861     status = gx_prompt_text_id_set(&prompt, 1); //should return GX_SYSTEM_MEMORY_ERROR
1862     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
1863 
1864     _gx_system_memory_free = memory_free;
1865     status = gx_prompt_text_id_set(&prompt, 1);
1866     EXPECT_EQ(GX_SUCCESS, status);
1867 
1868     prompt.gx_widget_style = GX_STYLE_TEXT_COPY;
1869     prompt.gx_prompt_string.gx_string_ptr = 0;
1870     prompt.gx_prompt_string.gx_string_length = 0;
1871     status = gx_prompt_text_id_set(&prompt, 1);
1872     EXPECT_EQ(GX_SUCCESS, status);
1873 
1874     prompt.gx_widget_style = 0;
1875     prompt.gx_prompt_string.gx_string_ptr = buffer;
1876     prompt.gx_prompt_string.gx_string_length = 1;
1877     status = gx_prompt_text_id_set(&prompt, 1);
1878     EXPECT_EQ(GX_SUCCESS, status);
1879 
1880     status = gx_prompt_text_set(0,  (GX_CONST GX_CHAR *)byte_data);//should return GX_PTR_ERROR
1881     EXPECT_EQ(GX_PTR_ERROR, status);
1882 
1883     prompt.gx_widget_style = GX_STYLE_TEXT_COPY;
1884     _gx_system_memory_allocator = 0;
1885     status = gx_prompt_text_set(&prompt,  (GX_CONST GX_CHAR *)byte_data);//should return GX_SYSTEM_MEMORY_ERROR
1886     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
1887 
1888     /* radial progress bar */
1889     printf("radial progress bar\n");
1890     status = gx_radial_progress_bar_anchor_set(0, 1);//should return GX_PTR_ERROR
1891     EXPECT_EQ(GX_PTR_ERROR, status);
1892 
1893     memset(&radial_progress_bar, 0, sizeof(GX_RADIAL_PROGRESS_BAR));
1894     status = gx_radial_progress_bar_anchor_set(&radial_progress_bar, 1);//should return GX_INVALID_WIDGET
1895     EXPECT_EQ(GX_INVALID_WIDGET, status);
1896 
1897     status = gx_radial_progress_bar_create(&radial_progress_bar, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
1898     EXPECT_EQ(GX_PTR_ERROR, status);
1899 
1900     status = _gxe_radial_progress_bar_create(&radial_progress_bar, 0, 0, &radial_progress_bar_info, 0, 0, 0);//should return GX_INVALID_SIZE
1901     EXPECT_EQ(GX_INVALID_SIZE, status);
1902 
1903     parent.gx_widget_type = 0;
1904     status = gx_radial_progress_bar_create(&radial_progress_bar, 0, &parent, &radial_progress_bar_info, 0, 0);//should return GX_INVALID_WIDGET
1905     EXPECT_EQ(GX_INVALID_WIDGET, status);
1906 
1907     radial_progress_bar.gx_widget_type = GX_TYPE_RADIAL_PROGRESS_BAR;
1908     status = gx_radial_progress_bar_create(&radial_progress_bar, 0, 0, &radial_progress_bar_info, 0, 0);//should return GX_ALREADY_CREATED
1909     EXPECT_EQ(GX_ALREADY_CREATED, status);
1910 
1911     memset(&radial_progress_bar, 0, sizeof(GX_RADIAL_PROGRESS_BAR));
1912     status = gx_radial_progress_bar_create(&radial_progress_bar, 0, 0, &radial_progress_bar_info, 0, 0);// parent is NULL
1913     EXPECT_EQ(GX_SUCCESS, status);
1914 
1915     status = gx_radial_progress_bar_event_process(&radial_progress_bar, 0); //should return GX_PTR_ERROR
1916     EXPECT_EQ(GX_PTR_ERROR, status);
1917 
1918     memset(&my_event, 0, sizeof(GX_EVENT));
1919     radial_progress_bar.gx_widget_type = 0;
1920     status = gx_radial_progress_bar_event_process(&radial_progress_bar, &my_event); //should return GX_INVALID_WIDGET
1921     EXPECT_EQ(GX_INVALID_WIDGET, status);
1922 
1923     memset(&radial_progress_bar, 0, sizeof(GX_RADIAL_PROGRESS_BAR));
1924     radial_progress_bar.gx_widget_type = GX_TYPE_RADIAL_PROGRESS_BAR;
1925     status = gx_radial_progress_bar_event_process(&radial_progress_bar, &my_event); //should return GX_SUCCESS
1926     EXPECT_EQ(GX_SUCCESS, status);
1927 
1928     status = gx_radial_progress_bar_font_set(0, 1);//should return GX_PTR_ERROR
1929     EXPECT_EQ(GX_PTR_ERROR, status);
1930 
1931     radial_progress_bar.gx_widget_type = 0;
1932     status = gx_radial_progress_bar_font_set(&radial_progress_bar, 1);//should return GX_PTR_ERROR
1933     EXPECT_EQ(GX_INVALID_WIDGET, status);
1934 
1935     status = gx_radial_progress_bar_info_set(&radial_progress_bar, 0); //should return GX_PTR_ERROR
1936     EXPECT_EQ(GX_PTR_ERROR, status);
1937 
1938     radial_progress_bar.gx_widget_type = 0;
1939     status = gx_radial_progress_bar_info_set(&radial_progress_bar, &radial_progress_bar_info); //should return GX_INVALID_WIDGET
1940     EXPECT_EQ(GX_INVALID_WIDGET, status);
1941 
1942     status = gx_radial_progress_bar_text_color_set(0, 1, 2, 3);//should return GX_PTR_ERROR
1943     EXPECT_EQ(GX_PTR_ERROR, status);
1944 
1945     radial_progress_bar.gx_widget_type = 0;
1946     status = gx_radial_progress_bar_text_color_set(&radial_progress_bar, 1, 2, 3);//should return GX_PTR_ERROR
1947     EXPECT_EQ(GX_INVALID_WIDGET, status);
1948 
1949     status = gx_radial_progress_bar_value_set(0, 1);//should return GX_PTR_ERROR
1950     EXPECT_EQ(GX_PTR_ERROR, status);
1951 
1952     radial_progress_bar.gx_widget_type = 0;
1953     status = gx_radial_progress_bar_value_set(&radial_progress_bar, 1);//should return GX_PTR_ERROR
1954     EXPECT_EQ(GX_INVALID_WIDGET, status);
1955 
1956     /* radial slider */
1957     printf("radial slider\n");
1958     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
1959     status = gx_radial_slider_anchor_angles_set(0, 0, 0); //should return GX_PTR_ERROR
1960     EXPECT_EQ(GX_PTR_ERROR, status);
1961 
1962     status = gx_radial_slider_anchor_angles_set(&radial_slider, (GX_VALUE *)&color, 0); //should return GX_INVALID_VALUE
1963     EXPECT_EQ(GX_INVALID_VALUE, status);
1964 
1965     status = gx_radial_slider_anchor_angles_set(&radial_slider, GX_NULL, 0); //should return GX_INVALID_WIDGET
1966     EXPECT_EQ(GX_INVALID_WIDGET, status);
1967 
1968     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
1969     status = gx_radial_slider_anchor_angles_set(&radial_slider, GX_NULL, 0); //should return GX_SUCCESS
1970     EXPECT_EQ(GX_SUCCESS, status);
1971 
1972     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
1973     status = gx_radial_slider_angle_set(0, 0); //should return GX_PTR_ERROR
1974     EXPECT_EQ(GX_PTR_ERROR, status);
1975 
1976     status = gx_radial_slider_angle_set(&radial_slider, 0); //should return GX_INVALID_WIDGET
1977     EXPECT_EQ(GX_INVALID_WIDGET, status);
1978 
1979     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
1980     status = gx_radial_slider_angle_set(&radial_slider, 0); //should return GX_SUCCESS
1981     EXPECT_EQ(GX_SUCCESS, status);
1982 
1983     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
1984     status = gx_radial_slider_animation_set(0, 0, 0, 0, 0); //should return GX_PTR_ERROR
1985     EXPECT_EQ(GX_PTR_ERROR, status);
1986 
1987     status = gx_radial_slider_animation_set(&radial_slider, 0, 0, 0, 0); //should return GX_INVALID_WIDGET
1988     EXPECT_EQ(GX_INVALID_WIDGET, status);
1989 
1990     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
1991     status = gx_radial_slider_animation_set(&radial_slider, 0, 0, 0, 0); //should return GX_SUCCESS
1992     EXPECT_EQ(GX_SUCCESS, status);
1993 
1994     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
1995     status = gx_radial_slider_animation_start(GX_NULL, 0); //should return GX_PTR_ERROR
1996     EXPECT_EQ(GX_PTR_ERROR, status);
1997 
1998     status = gx_radial_slider_animation_start(&radial_slider, 0); //should return GX_INVALID_WIDGET
1999     EXPECT_EQ(GX_INVALID_WIDGET, status);
2000 
2001     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2002     status = gx_radial_slider_animation_start(&radial_slider, 0); //should return GX_SUCCESS
2003     EXPECT_EQ(GX_SUCCESS, status);
2004 
2005     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
2006     status = gx_radial_slider_create(GX_NULL, GX_NULL, GX_NULL, GX_NULL, 0, 0, GX_NULL); //should return GX_PTR_ERROR
2007     EXPECT_EQ(GX_PTR_ERROR, status);
2008 
2009     status = gx_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, GX_NULL, 0, 0, GX_NULL); //should return GX_PTR_ERROR
2010     EXPECT_EQ(GX_PTR_ERROR, status);
2011 
2012     status = gx_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, GX_NULL, 0, 0, &size); // info is GX_NULL
2013     EXPECT_EQ(GX_PTR_ERROR, status);
2014 
2015     status = gx_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, &radial_slider.gx_radial_slider_info, 0, 0, GX_NULL); //should return GX_PTR_ERROR
2016     EXPECT_EQ(GX_PTR_ERROR, status);
2017 
2018     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2019     status = gx_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, &radial_slider.gx_radial_slider_info, 0, 0, &size); //should return GX_ALREADY_CREATED
2020     EXPECT_EQ(GX_ALREADY_CREATED, status);
2021 
2022     radial_slider.gx_widget_type = 0;
2023     status = _gxe_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, &radial_slider.gx_radial_slider_info, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2024     EXPECT_EQ(GX_INVALID_SIZE, status);
2025 
2026     parent.gx_widget_type = 0;
2027     status = gx_radial_slider_create(&radial_slider, GX_NULL, &parent, &radial_slider.gx_radial_slider_info, 0, 0, &size); //should return GX_INVALID_WIDGET
2028     EXPECT_EQ(GX_INVALID_WIDGET, status);
2029 
2030     parent.gx_widget_type = GX_TYPE_WIDGET;
2031     status = gx_radial_slider_create(&radial_slider, GX_NULL, &parent, &radial_slider.gx_radial_slider_info, 0, 0, &size); //should return GX_SUCCESS
2032     EXPECT_EQ(GX_SUCCESS, status);
2033 
2034     radial_slider.gx_widget_type = 0;
2035     status = gx_radial_slider_create(&radial_slider, GX_NULL, GX_NULL, &radial_slider.gx_radial_slider_info, 0, 0, &size); // parent is GX_NULL
2036     EXPECT_EQ(GX_SUCCESS, status);
2037 
2038     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
2039     status = gx_radial_slider_event_process(GX_NULL, GX_NULL);
2040     EXPECT_EQ(GX_PTR_ERROR, status);
2041 
2042     status = gx_radial_slider_event_process(&radial_slider, GX_NULL); //should return GX_PTR_ERROR
2043     EXPECT_EQ(GX_PTR_ERROR, status);
2044 
2045     radial_slider.gx_widget_type = 0;
2046     status = gx_radial_slider_event_process(&radial_slider, &my_event); //should return GX_INVALID_WIDGET
2047     EXPECT_EQ(GX_INVALID_WIDGET, status);
2048 
2049     memset(&my_event, 0, sizeof(GX_EVENT));
2050     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2051     status = gx_radial_slider_event_process(&radial_slider, &my_event); //should return GX_SUCCESS
2052     EXPECT_EQ(GX_SUCCESS, status);
2053 
2054     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
2055     status = gx_radial_slider_info_get(GX_NULL, GX_NULL); //should return GX_PTR_ERROR
2056     EXPECT_EQ(GX_PTR_ERROR, status);
2057 
2058     status = gx_radial_slider_info_get(&radial_slider, GX_NULL); //should return GX_PTR_ERROR
2059     EXPECT_EQ(GX_PTR_ERROR, status);
2060 
2061     radial_slider.gx_widget_type = 0;
2062     status = gx_radial_slider_info_get(&radial_slider, &radial_slider_info); //should return GX_PTR_ERROR
2063     EXPECT_EQ(GX_INVALID_WIDGET, status);
2064 
2065     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2066     status = gx_radial_slider_info_get(&radial_slider, &radial_slider_info); //should return GX_SUCCESS
2067     EXPECT_EQ(GX_SUCCESS, status);
2068 
2069     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
2070     status = gx_radial_slider_info_set(GX_NULL, GX_NULL);//should return GX_PTR_ERROR
2071     EXPECT_EQ(GX_PTR_ERROR, status);
2072 
2073     status = gx_radial_slider_info_set(&radial_slider, GX_NULL);//should return GX_PTR_ERROR
2074     EXPECT_EQ(GX_PTR_ERROR, status);
2075 
2076     radial_slider.gx_widget_type = 0;
2077     status = gx_radial_slider_info_set(&radial_slider, &radial_slider.gx_radial_slider_info);//should return GX_INVALID_WIDGET
2078     EXPECT_EQ(GX_INVALID_WIDGET, status);
2079 
2080     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2081     status = gx_radial_slider_info_set(&radial_slider, &radial_slider.gx_radial_slider_info);//should return GX_SUCCESS
2082     EXPECT_EQ(GX_SUCCESS, status);
2083 
2084     memset(&radial_slider, 0, sizeof(GX_RADIAL_SLIDER));
2085     status = gx_radial_slider_pixelmap_set(GX_NULL, 0, 0);//should return GX_PTR_ERROR
2086     EXPECT_EQ(GX_PTR_ERROR, status);
2087 
2088     radial_slider.gx_widget_type = 0;
2089     status = gx_radial_slider_pixelmap_set(&radial_slider, 0, 0);//should return GX_INVALID_WIDGET
2090     EXPECT_EQ(GX_INVALID_WIDGET, status);
2091 
2092     radial_slider.gx_widget_type = GX_TYPE_RADIAL_SLIDER;
2093     status = gx_radial_slider_pixelmap_set(&radial_slider, 0, 0);//should return GX_SUCCESS
2094     EXPECT_EQ(GX_SUCCESS, status);
2095 
2096     /* radio button */
2097     printf("radio button\n");
2098     memset(&radio_button, 0, sizeof(GX_RADIO_BUTTON));
2099     status = gx_radio_button_create(&radio_button, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
2100     EXPECT_EQ(GX_PTR_ERROR, status);
2101 
2102     radio_button.gx_widget_type = GX_TYPE_RADIO_BUTTON;
2103     status = gx_radio_button_create(&radio_button, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
2104     EXPECT_EQ(GX_ALREADY_CREATED, status);
2105 
2106     radio_button.gx_widget_type = 0;
2107     status = _gxe_radio_button_create(&radio_button, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2108     EXPECT_EQ(GX_INVALID_SIZE, status);
2109 
2110     parent.gx_widget_type = 0;
2111     status = gx_radio_button_create(&radio_button, 0, &parent, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
2112     EXPECT_EQ(GX_INVALID_WIDGET, status);
2113 
2114     status = gx_radio_button_create(&radio_button, 0, 0, 0, 0, 0, &size); // parent is NULL
2115     EXPECT_EQ(GX_SUCCESS, status);
2116 
2117     status = gx_radio_button_pixelmap_set(0, 1, 2, 3, 4); //should return GX_PTR_ERROR
2118     EXPECT_EQ(GX_PTR_ERROR, status);
2119 
2120     radio_button.gx_widget_type = 0;
2121     status = gx_radio_button_pixelmap_set(&radio_button, 1, 2, 3, 4); //should return GX_PTR_ERROR
2122     EXPECT_EQ(GX_INVALID_WIDGET, status);
2123 
2124     /* screen stack */
2125     printf("screen stack\n");
2126     memset(&screen_stack_control, 0, sizeof(GX_SCREEN_STACK_CONTROL));
2127     status = gx_screen_stack_create(&screen_stack_control, 0, 0); //should return GX_PTR_ERROR
2128     EXPECT_EQ(GX_PTR_ERROR, status);
2129 
2130     status = gx_screen_stack_create(&screen_stack_control, (GX_WIDGET **)&byte_data, 0); //should return GX_INVALID_VALUE
2131     EXPECT_EQ(GX_INVALID_VALUE, status);
2132 
2133     status = gx_screen_stack_pop(0);//should return GX_PTR_ERROR
2134     EXPECT_EQ(GX_PTR_ERROR, status);
2135 
2136     status = gx_screen_stack_push(&screen_stack_control, &widget, 0);// control is NULL
2137     EXPECT_EQ(GX_PTR_ERROR, status);
2138 
2139     status = gx_screen_stack_push(&screen_stack_control, 0, 0);// screen is NULL
2140     EXPECT_EQ(GX_PTR_ERROR, status);
2141 
2142     status = gx_screen_stack_reset(0);//should return GX_PTR_ERROR
2143     EXPECT_EQ(GX_PTR_ERROR, status);
2144 
2145     /* scroll thumb */
2146     printf("scroll thumb\n");
2147     memset(&scroll_thumb, 0, sizeof(GX_SCROLL_THUMB));
2148     status = gx_scroll_thumb_create(&scroll_thumb, 0, 0);//should return GX_PTR_ERROR
2149     EXPECT_EQ(GX_SUCCESS, status);
2150 
2151     scroll_thumb.gx_widget_type = GX_TYPE_BUTTON;
2152     status = gx_scroll_thumb_create(&scroll_thumb, 0, 0);//should return GX_ALREADY_CREATED
2153     EXPECT_EQ(GX_ALREADY_CREATED, status);
2154 
2155     scroll_thumb.gx_widget_type = 0;
2156     status = _gxe_scroll_thumb_create(&scroll_thumb, 0, 0, 0);//should return GX_INVALID_SIZE
2157     EXPECT_EQ(GX_INVALID_SIZE, status);
2158 
2159     scrollbar.gx_widget_type = 0;
2160     status = gx_scroll_thumb_create(&scroll_thumb, &scrollbar, 0);//should return GX_INVALID_WIDGET
2161     EXPECT_EQ(GX_INVALID_WIDGET, status);
2162 
2163     scrollbar.gx_widget_type = GX_TYPE_WIDGET;
2164     status = gx_scroll_thumb_create(&scroll_thumb, &scrollbar, 0);
2165     EXPECT_EQ(GX_SUCCESS, status);
2166 
2167     status = gx_scroll_thumb_event_process(&scroll_thumb, 0);//should return GX_PTR_ERROR
2168     EXPECT_EQ(GX_PTR_ERROR, status);
2169 
2170     scroll_thumb.gx_widget_type = 0;
2171     status = gx_scroll_thumb_event_process(&scroll_thumb, &my_event);//should return GX_INVALID_WIDGET
2172     EXPECT_EQ(GX_INVALID_WIDGET, status);
2173 
2174     memset(&scroll_thumb, 0, sizeof(GX_SCROLL_THUMB));
2175     scroll_thumb.gx_widget_type = GX_TYPE_BUTTON;
2176     status = gx_scroll_thumb_event_process(&scroll_thumb, &my_event);//should return GX_SUCCESS
2177     EXPECT_EQ(GX_SUCCESS, status);
2178 
2179     /* scrollbar */
2180     printf("scrollbar\n");
2181     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
2182     status = gx_scrollbar_event_process(&scrollbar, 0);//should return GX_PTR_ERROR
2183     EXPECT_EQ(GX_PTR_ERROR, status);
2184 
2185     scrollbar.gx_widget_type = 0;
2186     status = gx_scrollbar_event_process(&scrollbar, &my_event);//should return GX_INVALID_WIDGET
2187     EXPECT_EQ(GX_INVALID_WIDGET, status);
2188 
2189     scrollbar.gx_widget_type = GX_TYPE_VERTICAL_SCROLL;
2190     status = gx_scrollbar_event_process(&scrollbar, &my_event);//should return GX_INVALID_WIDGET
2191     EXPECT_EQ(GX_SUCCESS, status);
2192 
2193     status = gx_scrollbar_limit_check(0);//should return GX_PTR_ERROR
2194     EXPECT_EQ(GX_PTR_ERROR, status);
2195 
2196     scrollbar.gx_widget_type = 0;
2197     status = gx_scrollbar_limit_check(&scrollbar);//should return GX_INVALID_WIDGET
2198     EXPECT_EQ(GX_INVALID_WIDGET, status);
2199 
2200     scrollbar.gx_widget_type = GX_TYPE_VERTICAL_SCROLL;
2201     status = gx_scrollbar_limit_check(&scrollbar);//should return GX_SUCCESS
2202     EXPECT_EQ(GX_SUCCESS, status);
2203 
2204     status = gx_scrollbar_reset(0, 0);//should return GX_PTR_ERROR
2205     EXPECT_EQ(GX_PTR_ERROR, status);
2206 
2207     scrollbar.gx_widget_type = 0;
2208     status = gx_scrollbar_reset(&scrollbar, 0);//should return GX_INVALID_WIDGET
2209     EXPECT_EQ(GX_INVALID_WIDGET, status);
2210 
2211     scrollbar.gx_widget_type = GX_TYPE_WIDGET;
2212     memset(&scroll_info, 0, sizeof(GX_SCROLL_INFO));
2213     scroll_info.gx_scroll_minimum = scroll_info.gx_scroll_value + 1;
2214     status = gx_scrollbar_reset(&scrollbar, &scroll_info);//should return GX_INVALID_VALUE
2215     EXPECT_EQ(GX_INVALID_VALUE, status);
2216 
2217     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
2218     status = gx_scrollbar_reset(&scrollbar, 0);//should return GX_INVALID_VALUE
2219     EXPECT_EQ(GX_INVALID_WIDGET, status);
2220 
2221     scrollbar.gx_widget_type = GX_TYPE_HORIZONTAL_SCROLL;
2222     status = gx_scrollbar_reset(&scrollbar, 0);//should return GX_SUCCESS
2223     EXPECT_EQ(GX_SUCCESS, status);
2224 
2225     scroll_info.gx_scroll_maximum = 1;
2226     scroll_info.gx_scroll_value = 2;
2227     status = gx_scrollbar_reset(&scrollbar, &scroll_info);// value > maximum
2228     EXPECT_EQ(GX_INVALID_VALUE, status);
2229 
2230     /* scroll wheel */
2231     printf("scroll wheel\n");
2232     memset(&scroll_wheel, 0, sizeof(GX_SCROLL_WHEEL));
2233     status = gx_scroll_wheel_create(&scroll_wheel, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
2234     EXPECT_EQ(GX_PTR_ERROR, status);
2235 
2236     status = _gxe_scroll_wheel_create(&scroll_wheel, 0, 0, 0, 0, 0, &size, 0);//should return GX_INVALID_SIZE
2237     EXPECT_EQ(GX_INVALID_SIZE, status);
2238 
2239     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2240     status = gx_scroll_wheel_create(&scroll_wheel, 0, 0, 0, 0, 0, &size);//should return GX_ALREADY_CREATED
2241     EXPECT_EQ(GX_ALREADY_CREATED, status);
2242 
2243     scroll_wheel.gx_widget_type = 0;
2244     parent.gx_widget_type = 0;
2245     status = gx_scroll_wheel_create(&scroll_wheel, 0, &parent, 0, 0, 0, &size);//should return GX_INVALID_WIDGET
2246     EXPECT_EQ(GX_INVALID_WIDGET, status);
2247 
2248     status = gx_scroll_wheel_create(&scroll_wheel, 0, 0, 0, 0, 0, &size);//should return GX_SUCCESS
2249     EXPECT_EQ(GX_SUCCESS, status);
2250 
2251     memset(&scroll_wheel, 0, sizeof(GX_SCROLL_WHEEL));
2252     parent.gx_widget_type = GX_TYPE_WIDGET;
2253     status = gx_scroll_wheel_create(&scroll_wheel, 0, &parent, 0, 0, 0, &size);
2254     EXPECT_EQ(GX_SUCCESS, status);
2255 
2256     status = gx_scroll_wheel_event_process(&scroll_wheel, 0);//should return GX_PTR_ERROR
2257     EXPECT_EQ(GX_PTR_ERROR, status);
2258 
2259     scroll_wheel.gx_widget_type = 0;
2260     status = gx_scroll_wheel_event_process(&scroll_wheel, &my_event);//should return GX_INVALID_WIDGET
2261     EXPECT_EQ(GX_INVALID_WIDGET, status);
2262 
2263     memset(&scroll_wheel, 0, sizeof(GX_SCROLL_WHEEL));
2264     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2265     status = gx_scroll_wheel_event_process(&scroll_wheel, &my_event);//should return GX_INVALID_WIDGET
2266     EXPECT_EQ(GX_SUCCESS, status);
2267 
2268     status = gx_scroll_wheel_gradient_alpha_set(0, 1, 2);//should return GX_PTR_ERROR
2269     EXPECT_EQ(GX_PTR_ERROR, status);
2270 
2271     scroll_wheel.gx_widget_type = 0;
2272     status = gx_scroll_wheel_gradient_alpha_set(&scroll_wheel, 1, 2);//should return GX_INVALID_WIDGET
2273     EXPECT_EQ(GX_INVALID_WIDGET, status);
2274 
2275     status = gx_scroll_wheel_row_height_set(0, 1);//should return GX_PTR_ERROR
2276     EXPECT_EQ(GX_PTR_ERROR, status);
2277 
2278     scroll_wheel.gx_widget_type = 0;
2279     status = gx_scroll_wheel_row_height_set(&scroll_wheel, 2);//should return GX_INVALID_WIDGET
2280     EXPECT_EQ(GX_INVALID_WIDGET, status);
2281 
2282     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2283     status = gx_scroll_wheel_row_height_set(&scroll_wheel, 0);//should return GX_INVALID_VALUE
2284     EXPECT_EQ(GX_INVALID_VALUE, status);
2285 
2286     status = gx_scroll_wheel_selected_background_set(0, 1);//should return GX_PTR_ERROR
2287     EXPECT_EQ(GX_PTR_ERROR, status);
2288 
2289     scroll_wheel.gx_widget_type = 0;
2290     status = gx_scroll_wheel_selected_background_set(&scroll_wheel, 1);//should return GX_INVALID_WIDGET
2291     EXPECT_EQ(GX_INVALID_WIDGET, status);
2292 
2293     status = gx_scroll_wheel_selected_get(&scroll_wheel, 0); //should return GX_PTR_ERROR
2294     EXPECT_EQ(GX_PTR_ERROR, status);
2295 
2296     scroll_wheel.gx_widget_type = 0;
2297     status = gx_scroll_wheel_selected_get(&scroll_wheel, (INT *)&color); //should return GX_INVALID_WIDGET
2298     EXPECT_EQ(GX_INVALID_WIDGET, status);
2299 
2300     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2301     status = gx_scroll_wheel_selected_get(&scroll_wheel, (INT *)&color); //should return GX_INVALID_WIDGET
2302     EXPECT_EQ(GX_SUCCESS, status);
2303 
2304     status = gx_scroll_wheel_selected_set(0, 1);
2305     EXPECT_EQ(GX_PTR_ERROR, status);
2306 
2307     scroll_wheel.gx_widget_type = 0;
2308     status = gx_scroll_wheel_selected_set(&scroll_wheel, 1); //should return GX_INVALID_WIDGET
2309     EXPECT_EQ(GX_INVALID_WIDGET, status);
2310 
2311     status = gx_scroll_wheel_speed_set(0, 1, 2, 3, 4); //should return GX_PTR_ERROR
2312     EXPECT_EQ(GX_PTR_ERROR, status);
2313 
2314     scroll_wheel.gx_widget_type = 0;
2315     status = gx_scroll_wheel_speed_set(&scroll_wheel, 1, 2, 3, 4); //should return GX_INVALID_WIDGET
2316     EXPECT_EQ(GX_INVALID_WIDGET, status);
2317 
2318     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2319     status = gx_scroll_wheel_speed_set(&scroll_wheel, 1, 2, 3, 0); //should return GX_INVALID_VALUE
2320     EXPECT_EQ(GX_INVALID_VALUE, status);
2321 
2322     status = gx_scroll_wheel_total_rows_set(0, 1); //should return GX_PTR_ERROR
2323     EXPECT_EQ(GX_PTR_ERROR, status);
2324 
2325     scroll_wheel.gx_widget_type = 0;
2326     status = gx_scroll_wheel_total_rows_set(&scroll_wheel, 1); //should return GX_INVALID_WIDGET
2327     EXPECT_EQ(GX_INVALID_WIDGET, status);
2328 
2329     scroll_wheel.gx_widget_type = GX_TYPE_SCROLL_WHEEL;
2330     status = gx_scroll_wheel_total_rows_set(&scroll_wheel, -1); //should return GX_INVALID_VALUE
2331     EXPECT_EQ(GX_INVALID_VALUE, status);
2332 
2333     /* single line text input */
2334     printf("single line text input\n");
2335     status = gx_single_line_text_input_backspace(0);//should return GX_PTR_ERROR
2336     EXPECT_EQ(GX_PTR_ERROR, status);
2337 
2338     memset(&single_line_text_input, 0, sizeof(GX_SINGLE_LINE_TEXT_INPUT));
2339     status = gx_single_line_text_input_backspace(&single_line_text_input);//should return GX_INVALID_WIDGET
2340     EXPECT_EQ(GX_INVALID_WIDGET, status);
2341 
2342     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2343     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2344     status = gx_single_line_text_input_backspace(&single_line_text_input);//should return GX_SUCCESS
2345     EXPECT_EQ(GX_SUCCESS, status);
2346 
2347     status = gx_single_line_text_input_buffer_clear(0);//should return GX_PTR_ERROR
2348     EXPECT_EQ(GX_PTR_ERROR, status);
2349 
2350     single_line_text_input.gx_widget_type = 0;
2351     status = gx_single_line_text_input_buffer_clear(&single_line_text_input);//should return GX_INVALID_WIDGET
2352     EXPECT_EQ(GX_INVALID_WIDGET, status);
2353 
2354     status = gx_single_line_text_input_buffer_get(0, 0, 0, 0);   //should return GX_PTR_ERROR
2355     EXPECT_EQ(GX_PTR_ERROR, status);
2356 
2357     single_line_text_input.gx_widget_type = 0;
2358     status = gx_single_line_text_input_buffer_get(&single_line_text_input, 0, 0, 0);//should return GX_INVALID_WIDGET
2359     EXPECT_EQ(GX_INVALID_WIDGET, status);
2360 
2361     status = gx_single_line_text_input_character_delete(0);//should return GX_PTR_ERROR
2362     EXPECT_EQ(GX_PTR_ERROR, status);
2363 
2364     single_line_text_input.gx_widget_type = 0;
2365     status = gx_single_line_text_input_character_delete(&single_line_text_input);//should return GX_INVALID_WIDGET
2366     EXPECT_EQ(GX_INVALID_WIDGET, status);
2367 
2368     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2369     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2370     status = gx_single_line_text_input_character_delete(&single_line_text_input);//should return GX_SUCCESS
2371     EXPECT_EQ(GX_SUCCESS, status);
2372 
2373     status = gx_single_line_text_input_character_insert(0, 0, 0);   //should return GX_PTR_ERROR
2374     EXPECT_EQ(GX_PTR_ERROR, status);
2375 
2376     single_line_text_input.gx_widget_type = 0;
2377     status = gx_single_line_text_input_character_insert(&single_line_text_input, 0, 0);//should return GX_INVALID_WIDGET
2378     EXPECT_EQ(GX_INVALID_WIDGET, status);
2379 
2380     color = 0;
2381     status = gx_single_line_text_input_create(&single_line_text_input, 0, 0, (GX_CHAR *)&color, 0, 0, 0, 0);    //should return GX_PTR_ERROR
2382     EXPECT_EQ(GX_PTR_ERROR, status);
2383 
2384     status = _gxe_single_line_text_input_create(&single_line_text_input, 0, 0, (GX_CHAR *)&color, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2385     EXPECT_EQ(GX_INVALID_SIZE, status);
2386 
2387     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2388     status = gx_single_line_text_input_create(&single_line_text_input, 0, 0, (GX_CHAR *)&color, 0, 0, 0, &size);    //should return GX_ALREADY_CREATED
2389     EXPECT_EQ(GX_ALREADY_CREATED, status);
2390 
2391     single_line_text_input.gx_widget_type = 0;
2392     parent.gx_widget_type = 0;
2393     status = gx_single_line_text_input_create(&single_line_text_input, 0, &parent, (GX_CHAR *)&color, 0, 0, 0, &size);    //should return GX_ALREADY_CREATED
2394     EXPECT_EQ(GX_INVALID_WIDGET, status);
2395 
2396     single_line_text_input.gx_widget_type = 0;
2397     status = gx_single_line_text_input_draw_position_get(&single_line_text_input, (GX_VALUE *)&color, (GX_VALUE *)&color);
2398     EXPECT_EQ(GX_INVALID_WIDGET, status);
2399 
2400     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2401     _gx_system_current_draw_context = &default_context;
2402     default_context.gx_draw_context_brush.gx_brush_font = GX_NULL;
2403     status = gx_single_line_text_input_draw_position_get(&single_line_text_input, (GX_VALUE *)&color, (GX_VALUE *)&color);
2404     EXPECT_EQ(GX_FAILURE, status);
2405 
2406     status = gx_single_line_text_input_draw_position_get(&single_line_text_input, GX_NULL, (GX_VALUE *)&color); // xpos == GX_NULL
2407     EXPECT_EQ(GX_PTR_ERROR, status);
2408 
2409     status = gx_single_line_text_input_draw_position_get(&single_line_text_input, (GX_VALUE *)&color, GX_NULL); // ypos == GX_NULL
2410     EXPECT_EQ(GX_PTR_ERROR, status);
2411 
2412     status = gx_single_line_text_input_end(0);   //should return GX_PTR_ERROR
2413     EXPECT_EQ(GX_PTR_ERROR, status);
2414 
2415     single_line_text_input.gx_widget_type = 0;
2416     status = gx_single_line_text_input_end(&single_line_text_input);//should return GX_INVALID_WIDGET
2417     EXPECT_EQ(GX_INVALID_WIDGET, status);
2418 
2419     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2420     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2421     status = gx_single_line_text_input_end(&single_line_text_input);//should return GX_SUCCESS
2422     EXPECT_EQ(GX_SUCCESS, status);
2423 
2424     status = gx_single_line_text_input_event_process(&single_line_text_input, 0); //should return GX_PTR_ERROR
2425     EXPECT_EQ(GX_PTR_ERROR, status);
2426 
2427     single_line_text_input.gx_widget_type = 0;
2428     status = gx_single_line_text_input_event_process(&single_line_text_input, &my_event);//should return GX_INVALID_WIDGET
2429     EXPECT_EQ(GX_INVALID_WIDGET, status);
2430 
2431     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2432     my_event.gx_event_type = 0;
2433     single_line_text_input.gx_widget_parent = 0;
2434     status = gx_single_line_text_input_event_process(&single_line_text_input, &my_event);//should return GX_SUCCESS
2435     EXPECT_EQ(GX_SUCCESS, status);
2436 
2437     status = gx_single_line_text_input_fill_color_set(0, 0, 0, 0, 0);   //should return GX_PTR_ERROR
2438     EXPECT_EQ(GX_PTR_ERROR, status);
2439 
2440     single_line_text_input.gx_widget_type = 0;
2441     status = gx_single_line_text_input_fill_color_set(&single_line_text_input, 0, 0, 0, 0);//should return GX_INVALID_WIDGET
2442     EXPECT_EQ(GX_INVALID_WIDGET, status);
2443 
2444     status = gx_single_line_text_input_home(0);   //should return GX_PTR_ERROR
2445     EXPECT_EQ(GX_PTR_ERROR, status);
2446 
2447     single_line_text_input.gx_widget_type = 0;
2448     status = gx_single_line_text_input_home(&single_line_text_input);//should return GX_INVALID_WIDGET
2449     EXPECT_EQ(GX_INVALID_WIDGET, status);
2450 
2451     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2452     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2453     status = gx_single_line_text_input_home(&single_line_text_input);//should return GX_SUCCESS
2454     EXPECT_EQ(GX_SUCCESS, status);
2455 
2456     status = gx_single_line_text_input_left_arrow(0);   //should return GX_PTR_ERROR
2457     EXPECT_EQ(GX_PTR_ERROR, status);
2458 
2459     single_line_text_input.gx_widget_type = 0;
2460     status = gx_single_line_text_input_left_arrow(&single_line_text_input);//should return GX_INVALID_WIDGET
2461     EXPECT_EQ(GX_INVALID_WIDGET, status);
2462 
2463     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2464     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2465     status = gx_single_line_text_input_left_arrow(&single_line_text_input);//should return GX_SUCCESS
2466     EXPECT_EQ(GX_SUCCESS, status);
2467 
2468     status = gx_single_line_text_input_position_get(0, 0);   //should return GX_PTR_ERROR
2469     EXPECT_EQ(GX_PTR_ERROR, status);
2470 
2471     single_line_text_input.gx_widget_type = 0;
2472     status = gx_single_line_text_input_position_get(&single_line_text_input, 0);//should return GX_INVALID_WIDGET
2473     EXPECT_EQ(GX_INVALID_WIDGET, status);
2474 
2475     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2476     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2477     status = gx_single_line_text_input_position_get(&single_line_text_input, 0);//should return GX_INVALID_WIDGET
2478     EXPECT_EQ(GX_SUCCESS, status);
2479 
2480     status = gx_single_line_text_input_right_arrow(0);   //should return GX_PTR_ERROR
2481     EXPECT_EQ(GX_PTR_ERROR, status);
2482 
2483     single_line_text_input.gx_widget_type = 0;
2484     status = gx_single_line_text_input_right_arrow(&single_line_text_input);//should return GX_INVALID_WIDGET
2485     EXPECT_EQ(GX_INVALID_WIDGET, status);
2486 
2487     memset(&single_line_text_input, 0, sizeof(GX_TYPE_SINGLE_LINE_TEXT_INPUT));
2488     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2489     status = gx_single_line_text_input_right_arrow(&single_line_text_input);//should return GX_SUCCESS
2490     EXPECT_EQ(GX_SUCCESS, status);
2491 
2492     status = gx_single_line_text_input_style_add(0, 0);   //should return GX_PTR_ERROR
2493     EXPECT_EQ(GX_PTR_ERROR, status);
2494 
2495     single_line_text_input.gx_widget_type = 0;
2496     status = gx_single_line_text_input_style_add(&single_line_text_input, 0);//should return GX_INVALID_WIDGET
2497     EXPECT_EQ(GX_INVALID_WIDGET, status);
2498 
2499     status = gx_single_line_text_input_style_remove(0, 0);   //should return GX_PTR_ERROR
2500     EXPECT_EQ(GX_PTR_ERROR, status);
2501 
2502     single_line_text_input.gx_widget_type = 0;
2503     status = gx_single_line_text_input_style_remove(&single_line_text_input, 0);//should return GX_INVALID_WIDGET
2504     EXPECT_EQ(GX_INVALID_WIDGET, status);
2505 
2506     status = gx_single_line_text_input_style_set(0, 0);   //should return GX_PTR_ERROR
2507     EXPECT_EQ(GX_PTR_ERROR, status);
2508 
2509     single_line_text_input.gx_widget_type = 0;
2510     status = gx_single_line_text_input_style_set(&single_line_text_input, 0);//should return GX_INVALID_WIDGET
2511     EXPECT_EQ(GX_INVALID_WIDGET, status);
2512 
2513     single_line_text_input.gx_widget_status = 0;
2514     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2515     status = gx_single_line_text_input_style_set(&single_line_text_input, 0);//should return GX_SUCCESS
2516     EXPECT_EQ(GX_SUCCESS, status);
2517 
2518     status = gx_single_line_text_input_text_color_set(0, 0, 0, 0, 0);   //should return GX_PTR_ERROR
2519     EXPECT_EQ(GX_PTR_ERROR, status);
2520 
2521     single_line_text_input.gx_widget_type = 0;
2522     status = gx_single_line_text_input_text_color_set(&single_line_text_input, 0, 0, 0, 0);//should return GX_INVALID_WIDGET
2523     EXPECT_EQ(GX_INVALID_WIDGET, status);
2524 
2525     status = gx_single_line_text_input_text_select(0, 0, 0); //should return GX_PTR_ERROR
2526     EXPECT_EQ(GX_PTR_ERROR, status);
2527 
2528     single_line_text_input.gx_widget_type = 0;
2529     status = gx_single_line_text_input_text_select(&single_line_text_input, 0, 0); //should return GX_INVALID_WIDGET
2530     EXPECT_EQ(GX_INVALID_WIDGET, status);
2531 
2532     single_line_text_input.gx_widget_type = GX_TYPE_SINGLE_LINE_TEXT_INPUT;
2533     single_line_text_input.gx_single_line_text_input_string_size = 0;
2534     status = gx_single_line_text_input_text_select(&single_line_text_input, 0, 0); // start_index >= input_string_size
2535     EXPECT_EQ(GX_INVALID_VALUE, status);
2536 
2537     single_line_text_input.gx_single_line_text_input_string_size = 16;
2538     status = gx_single_line_text_input_text_select(&single_line_text_input, 0, 17); // end_index >= input_string_size
2539     EXPECT_EQ(GX_INVALID_VALUE, status);
2540 
2541     status = gx_single_line_text_input_text_set(0, 0); //should return GX_PTR_ERROR
2542     EXPECT_EQ(GX_PTR_ERROR, status);
2543 
2544     single_line_text_input.gx_widget_type = 0;
2545     status = gx_single_line_text_input_text_set(&single_line_text_input, 0); //should return GX_INVALID_WIDGET
2546     EXPECT_EQ(GX_INVALID_WIDGET, status);
2547 
2548     /* slider */
2549     printf("slider\n");
2550     memset(&slider, 0, sizeof(GX_SLIDER));
2551     status = gx_slider_create(&slider, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
2552     EXPECT_EQ(GX_PTR_ERROR, status);
2553 
2554     status =_gxe_slider_create(&slider, 0, 0, 0, &slider_info, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2555     EXPECT_EQ(GX_INVALID_SIZE, status);
2556 
2557     slider.gx_widget_type = GX_TYPE_SLIDER;
2558     status = gx_slider_create(&slider, 0, 0, 0, &slider_info, 0, 0, &size); //should return GX_ALREADY_CREATED
2559     EXPECT_EQ(GX_ALREADY_CREATED, status);
2560 
2561     slider.gx_widget_type = 0;
2562     parent.gx_widget_type = 0;
2563     status = gx_slider_create(&slider, 0, &parent, 0, &slider_info, 0, 0, &size); //should return GX_INVALID_WIDGET
2564     EXPECT_EQ(GX_INVALID_WIDGET, status);
2565 
2566     status = gx_slider_create(&slider, 0, &parent, 0, 0, 0, 0, &size); // slider_info == GX_NULL
2567     EXPECT_EQ(GX_PTR_ERROR, status);
2568 
2569     status = gx_slider_event_process(&slider, 0); //should return GX_PTR_ERROR
2570     EXPECT_EQ(GX_PTR_ERROR, status);
2571 
2572     slider.gx_widget_type = 0;
2573     status = gx_slider_event_process(&slider, &my_event); //should return GX_INVALID_WIDGET
2574     EXPECT_EQ(GX_INVALID_WIDGET, status);
2575 
2576     slider.gx_widget_type = GX_TYPE_SLIDER;
2577     my_event.gx_event_type = 0;
2578     slider.gx_widget_parent = 0;
2579     status = gx_slider_event_process(&slider, &my_event); //should return GX_SUCCESS
2580     EXPECT_EQ(GX_SUCCESS, status);
2581 
2582     status = gx_slider_info_set(&slider, 0);//should return GX_PTR_ERROR
2583     EXPECT_EQ(GX_PTR_ERROR, status);
2584 
2585     slider.gx_widget_type = 0;
2586     status = gx_slider_info_set(&slider, &slider_info);//should return GX_INVALID_WIDGET
2587     EXPECT_EQ(GX_INVALID_WIDGET, status);
2588 
2589     status = gx_slider_needle_position_get(&slider, &slider_info, 0); //should return GX_PTR_ERROR
2590     EXPECT_EQ(GX_PTR_ERROR, status);
2591 
2592     status = gx_slider_needle_position_get(&slider, 0, 0); // slider_info == GX_NULL
2593     EXPECT_EQ(GX_PTR_ERROR, status);
2594 
2595     slider.gx_widget_type = 0;
2596     status = gx_slider_needle_position_get(&slider, &slider_info, &size); //should return GX_INVALID_WIDGET
2597     EXPECT_EQ(GX_INVALID_WIDGET, status);
2598 
2599     slider.gx_widget_type = GX_TYPE_SLIDER;
2600     slider_info.gx_slider_info_min_val = slider_info.gx_slider_info_current_val + 1;
2601     status = gx_slider_needle_position_get(&slider, &slider_info, &size); //should return GX_INVALID_VALUE
2602     EXPECT_EQ(GX_INVALID_VALUE, status);
2603 
2604     slider_info.gx_slider_info_current_val = slider_info.gx_slider_info_min_val + 1;
2605     slider_info.gx_slider_info_max_val = slider_info.gx_slider_info_current_val + 1;
2606     status = gx_slider_needle_position_get(&slider, &slider_info, &size); //should return GX_SUCCESS
2607     EXPECT_EQ(GX_SUCCESS, status);
2608 
2609     slider_info.gx_slider_info_min_val = 0;
2610     slider_info.gx_slider_info_current_val = 2;
2611     slider_info.gx_slider_info_max_val = 1;
2612     status = gx_slider_needle_position_get(&slider, &slider_info, &size); // cur_val > max_val
2613     EXPECT_EQ(GX_INVALID_VALUE, status);
2614 
2615     slider_info.gx_slider_info_min_val = 1;
2616     slider_info.gx_slider_info_current_val = 1;
2617     slider_info.gx_slider_info_max_val = 1;
2618     status = gx_slider_needle_position_get(&slider, &slider_info, &size); // min_val == max_val
2619     EXPECT_EQ(GX_INVALID_VALUE, status);
2620 
2621     status = gx_slider_travel_get(0, 0, 0, 0); // slider is NULL
2622     EXPECT_EQ(GX_PTR_ERROR, status);
2623 
2624     status = gx_slider_travel_get(&slider, 0, 0, 0); // info is NULL
2625     EXPECT_EQ(GX_PTR_ERROR, status);
2626 
2627     status = gx_slider_travel_get(&slider, &slider_info, 0, 0); // return_min_travel is NULL
2628     EXPECT_EQ(GX_PTR_ERROR, status);
2629 
2630     status = gx_slider_travel_get(&slider, &slider_info, (INT *)&color, 0); // return_max_travel is NULL
2631     EXPECT_EQ(GX_PTR_ERROR, status);
2632 
2633     slider.gx_widget_type = 0;
2634     status = gx_slider_travel_get(&slider, &slider_info, (INT *)&color, (INT *)&color); //should return GX_INVALID_WIDGET
2635     EXPECT_EQ(GX_INVALID_WIDGET, status);
2636 
2637     slider.gx_widget_type = GX_TYPE_SLIDER;
2638     slider_info.gx_slider_info_min_val = 1;
2639     slider_info.gx_slider_info_current_val = 0;
2640     status = gx_slider_travel_get(&slider, &slider_info, (INT *)&color, (INT *)&color); // gx_slider_info_current_val < min_val
2641     EXPECT_EQ(GX_INVALID_VALUE, status);
2642 
2643     slider_info.gx_slider_info_current_val = 3;
2644     slider_info.gx_slider_info_max_val = 2;
2645     status = gx_slider_travel_get(&slider, &slider_info, (INT *)&color, (INT *)&color); // gx_slider_info_current_val > max_val
2646     EXPECT_EQ(GX_INVALID_VALUE, status);
2647 
2648     slider_info.gx_slider_info_min_val = 2;
2649     slider_info.gx_slider_info_current_val = 2;
2650     slider_info.gx_slider_info_max_val = 2;
2651     status = gx_slider_travel_get(&slider, &slider_info, (INT *)&color, (INT *)&color); // gx_slider_info_min_val = max_val
2652     EXPECT_EQ(GX_INVALID_VALUE, status);
2653 
2654     status = gx_slider_value_calculate(&slider, 0, 0); //should return GX_PTR_ERROR
2655     EXPECT_EQ(GX_PTR_ERROR, status);
2656 
2657     slider.gx_widget_type = 0;
2658     status = gx_slider_value_calculate(&slider, &slider_info, 0); //should return GX_INVALID_WIDGET
2659     EXPECT_EQ(GX_INVALID_WIDGET, status);
2660 
2661     slider.gx_widget_type = GX_TYPE_SLIDER;
2662     slider_info.gx_slider_info_min_val = slider_info.gx_slider_info_current_val + 1;
2663     status = gx_slider_value_calculate(&slider, &slider_info, 0); //should return GX_INVALID_VALUE
2664     EXPECT_EQ(GX_INVALID_VALUE, status);
2665 
2666     slider_info.gx_slider_info_min_val = 0;
2667     slider_info.gx_slider_info_current_val = slider_info.gx_slider_info_max_val + 1;
2668     status = gx_slider_value_calculate(&slider, &slider_info, 0); //should return GX_INVALID_VALUE
2669     EXPECT_EQ(GX_INVALID_VALUE, status);
2670 
2671     slider_info.gx_slider_info_min_val = 10;
2672     slider_info.gx_slider_info_max_val = 0;
2673     slider_info.gx_slider_info_current_val = 5;
2674     status = gx_slider_value_calculate(&slider, &slider_info, 0); //should return GX_INVALID_VALUE
2675     EXPECT_EQ(GX_INVALID_VALUE, status);
2676 
2677     slider_info.gx_slider_info_max_val = 10;
2678     slider_info.gx_slider_info_min_val = 0;
2679     slider_info.gx_slider_info_current_val = 5;
2680     status = gx_slider_value_calculate(&slider, &slider_info, 5); //should return GX_INVALID_VALUE
2681     EXPECT_EQ(GX_SUCCESS, status);
2682 
2683     slider_info.gx_slider_info_max_val = 5;
2684     slider_info.gx_slider_info_min_val = 5;
2685     slider_info.gx_slider_info_current_val = 5;
2686     status = gx_slider_value_calculate(&slider, &slider_info, 5); // min_val == max_val
2687     EXPECT_EQ(GX_INVALID_VALUE, status);
2688 
2689     status = gx_slider_value_set(&slider, 0, 0);//should return GX_PTR_ERROR
2690     EXPECT_EQ(GX_PTR_ERROR, status);
2691 
2692     slider.gx_widget_type = 0;
2693     status = gx_slider_value_set(&slider, &slider_info, 0); //should return GX_INVALID_WIDGET
2694     EXPECT_EQ(GX_INVALID_WIDGET, status);
2695 
2696     /* sprite */
2697     printf("sprite\n");
2698     memset(&sprite, 0, sizeof(GX_SPRITE));
2699     status = gx_sprite_create(&sprite, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
2700     EXPECT_EQ(GX_PTR_ERROR, status);
2701 
2702     status = _gxe_sprite_create(&sprite, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2703     EXPECT_EQ(GX_INVALID_SIZE, status);
2704 
2705     sprite.gx_widget_type = GX_TYPE_SPRITE;
2706     status = gx_sprite_create(&sprite, 0, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
2707     EXPECT_EQ(GX_ALREADY_CREATED, status);
2708 
2709     parent.gx_widget_type = 0;
2710     sprite.gx_widget_type = 0;
2711     status = gx_sprite_create(&sprite, 0, &parent, 0, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
2712     EXPECT_EQ(GX_INVALID_WIDGET, status);
2713 
2714     memset(&sprite, 0, sizeof(GX_SPRITE));
2715     status = gx_sprite_create(&sprite, 0, 0, 0, 0, 0, 0, &size); // parent is NULL
2716     EXPECT_EQ(GX_SUCCESS, status);
2717 
2718     status = gx_sprite_current_frame_set(0, 1);  //should return GX_PTR_ERROR
2719     EXPECT_EQ(GX_PTR_ERROR, status);
2720 
2721     sprite.gx_widget_type = 0;
2722     status = gx_sprite_current_frame_set(&sprite, 1);  //should return GX_INVALID_WIDGET
2723     EXPECT_EQ(GX_INVALID_WIDGET, status);
2724 
2725     memset(&sprite, 0, sizeof(GX_SPRITE));
2726     sprite.gx_widget_type = GX_TYPE_SPRITE;
2727     status = gx_sprite_current_frame_set(&sprite, 1);  //should return GX_SUCCESS
2728     EXPECT_EQ(GX_SUCCESS, status);
2729 
2730     status = gx_sprite_frame_list_set(0, 0, 0);  //should return GX_PTR_ERROR
2731     EXPECT_EQ(GX_PTR_ERROR, status);
2732 
2733     sprite.gx_widget_type = 0;
2734     status = gx_sprite_frame_list_set(&sprite, 0, 0);  //should return GX_INVALID_WIDGET
2735     EXPECT_EQ(GX_INVALID_WIDGET, status);
2736 
2737     memset(&sprite, 0, sizeof(GX_SPRITE));
2738     sprite.gx_widget_type = GX_TYPE_SPRITE;
2739     status = gx_sprite_frame_list_set(&sprite, 0, 0);  //should return GX_SUCCESS
2740     EXPECT_EQ(GX_SUCCESS, status);
2741 
2742     status = gx_sprite_start(0, 0);  //should return GX_PTR_ERROR
2743     EXPECT_EQ(GX_PTR_ERROR, status);
2744 
2745     sprite.gx_widget_type = 0;
2746     status = gx_sprite_start(&sprite, 0);  //should return GX_INVALID_WIDGET
2747     EXPECT_EQ(GX_INVALID_WIDGET, status);
2748 
2749     memset(&sprite, 0, sizeof(GX_SPRITE));
2750     sprite.gx_widget_type = GX_TYPE_SPRITE;
2751     status = gx_sprite_start(&sprite, 0);  //should return GX_FAILURE
2752     EXPECT_EQ(GX_FAILURE, status);
2753 
2754     status = gx_sprite_stop(0);  //should return GX_PTR_ERROR
2755     EXPECT_EQ(GX_PTR_ERROR, status);
2756 
2757     sprite.gx_widget_type = 0;
2758     status = gx_sprite_stop(&sprite);  //should return GX_INVALID_WIDGET
2759     EXPECT_EQ(GX_INVALID_WIDGET, status);
2760 
2761     sprite.gx_sprite_run_state = 1; //GX_SPRITE_IDLE
2762     sprite.gx_widget_type = GX_TYPE_SPRITE;
2763     status = gx_sprite_stop(&sprite);  //should return GX_SUCCESS
2764     EXPECT_EQ(GX_SUCCESS, status);
2765 
2766     /* string scroll wheel */
2767     printf("string scroll wheel\n");
2768     memset(&string_scroll_wheel, 0, sizeof(GX_STRING_SCROLL_WHEEL));
2769     status = gx_string_scroll_wheel_create(&string_scroll_wheel, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
2770     EXPECT_EQ(GX_PTR_ERROR, status);
2771 
2772     status = _gxe_string_scroll_wheel_create(&string_scroll_wheel, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
2773     EXPECT_EQ(GX_INVALID_SIZE, status);
2774 
2775     string_scroll_wheel.gx_widget_type = GX_TYPE_STRING_SCROLL_WHEEL;
2776     status = gx_string_scroll_wheel_create(&string_scroll_wheel, 0, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
2777     EXPECT_EQ(GX_ALREADY_CREATED, status);
2778 
2779     string_scroll_wheel.gx_widget_type = 0;
2780     parent.gx_widget_type = 0;
2781     status = gx_string_scroll_wheel_create(&string_scroll_wheel, 0, &parent, 0, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
2782     EXPECT_EQ(GX_INVALID_WIDGET, status);
2783 
2784     status = gx_string_scroll_wheel_create(&string_scroll_wheel, 0, 0, 0, 0, 0, 0, &size); // parent is NULL
2785     EXPECT_EQ(GX_SUCCESS, status);
2786 
2787     status = gx_string_scroll_wheel_string_list_set(&string_scroll_wheel, 0, 0); //should return GX_PTR_ERROR
2788     EXPECT_EQ(GX_SUCCESS, status);
2789 
2790     string_scroll_wheel.gx_widget_type = 0;
2791     status = gx_string_scroll_wheel_string_list_set(&string_scroll_wheel, (GX_CONST GX_CHAR **)&byte_data, 0); //should return GX_INVALID_WIDGET
2792     EXPECT_EQ(GX_INVALID_WIDGET, status);
2793 
2794     string_scroll_wheel.gx_widget_type = GX_TYPE_STRING_SCROLL_WHEEL;
2795     status = gx_string_scroll_wheel_string_list_set(&string_scroll_wheel, (GX_CONST GX_CHAR **)&byte_data, -1); //should return GX_INVALID_VALUE
2796     EXPECT_EQ(GX_INVALID_VALUE, status);
2797 
2798     status = gx_string_scroll_wheel_string_id_list_set(&string_scroll_wheel, 0, 0); //should return GX_PTR_ERROR
2799     EXPECT_EQ(GX_PTR_ERROR, status);
2800 
2801     string_scroll_wheel.gx_widget_type = 0;
2802     status = gx_string_scroll_wheel_string_id_list_set(&string_scroll_wheel, (GX_CONST GX_RESOURCE_ID *)&color, 0); //should return GX_INVALID_WIDGET
2803     EXPECT_EQ(GX_INVALID_WIDGET, status);
2804 
2805     string_scroll_wheel.gx_widget_type = GX_TYPE_STRING_SCROLL_WHEEL;
2806     status = gx_string_scroll_wheel_string_id_list_set(&string_scroll_wheel, (GX_CONST GX_RESOURCE_ID *)&color, -1); //should return GX_INVALID_VALUE
2807     EXPECT_EQ(GX_INVALID_VALUE, status);
2808 
2809     /* system */
2810     printf("system\n");
2811     default_display.gx_display_language_table_size = 0;
2812     status = gx_system_active_language_set(0);//should return GX_INVALID_VALUE
2813     EXPECT_EQ(GX_PTR_ERROR, status);
2814 
2815     status = gx_system_animation_get(0); //should return GX_PTR_ERROR
2816     EXPECT_EQ(GX_PTR_ERROR, status);
2817 
2818     _gx_system_animation_free_list = 0;
2819     status = gx_system_animation_get(&animation_ptr); //should return GX_PTR_ERROR
2820     EXPECT_EQ(GX_OUT_OF_ANIMATIONS, status);
2821 
2822     status = gx_system_animation_free(0); //should return GX_PTR_ERROR
2823     EXPECT_EQ(GX_PTR_ERROR, status);
2824 
2825     animation.gx_animation_system_allocated = 0;
2826     status = gx_system_animation_free(&animation); //should return GX_INVALID_ANIMATION
2827     EXPECT_EQ(GX_INVALID_ANIMATION, status);
2828 
2829     animation.gx_animation_system_allocated = 1;
2830     animation.gx_animation_status = GX_ANIMATION_IDLE + 1;
2831     status = gx_system_animation_free(&animation); //should return GX_INVALID_ANIMATION
2832     EXPECT_EQ(GX_INVALID_ANIMATION, status);
2833 
2834     animation.gx_animation_system_allocated = 1;
2835     animation.gx_animation_status = GX_ANIMATION_IDLE;
2836     status = gx_system_animation_free(&animation); //should return GX_SUCCESS
2837     EXPECT_EQ(GX_SUCCESS, status);
2838 
2839     status = gx_system_canvas_refresh();//should return GX_INVALID_CANVAS
2840     EXPECT_EQ(GX_INVALID_CANVAS, status);
2841 
2842     status = gx_system_dirty_mark(0);//should return GX_PTR_ERROR
2843     EXPECT_EQ(GX_PTR_ERROR, status);
2844 
2845     widget.gx_widget_type = 0;
2846     status = gx_system_dirty_mark(&widget);//should return GX_INVALID_WIDGET
2847     EXPECT_EQ(GX_INVALID_WIDGET, status);
2848 
2849     status = gx_system_dirty_partial_add(&widget, 0);//should return GX_PTR_ERROR
2850     EXPECT_EQ(GX_PTR_ERROR, status);
2851 
2852     widget.gx_widget_type = 0;
2853     status = gx_system_dirty_partial_add(&widget, &size);//should return GX_INVALID_WIDGET
2854     EXPECT_EQ(GX_INVALID_WIDGET, status);
2855 
2856     widget.gx_widget_type = GX_TYPE_WIDGET;
2857     size.gx_rectangle_left = size.gx_rectangle_right + 1;
2858     status = gx_system_dirty_partial_add(&widget, &size);//should return GX_INVALID_SIZE
2859     EXPECT_EQ(GX_INVALID_SIZE, status);
2860 
2861     memset(&widget, 0, sizeof(GX_WIDGET));
2862     memset(&size, 0, sizeof(GX_RECTANGLE));
2863     size.gx_rectangle_right = 1;
2864     size.gx_rectangle_bottom = 1;
2865     widget.gx_widget_size.gx_rectangle_right = 1;
2866     widget.gx_widget_size.gx_rectangle_bottom = 1;
2867     widget.gx_widget_type = GX_TYPE_WIDGET;
2868     widget.gx_widget_status |= GX_STATUS_VISIBLE;
2869     status = gx_system_dirty_partial_add(&widget, &size);//should return GX_INVALID_SIZE
2870     EXPECT_EQ(GX_PTR_ERROR, status);
2871 
2872     size.gx_rectangle_left = 0;
2873     size.gx_rectangle_right = 1;
2874     size.gx_rectangle_top = 1;
2875     size.gx_rectangle_bottom = 0;
2876     status = gx_system_dirty_partial_add(&widget, &size);// top > bottom
2877     EXPECT_EQ(GX_INVALID_SIZE, status);
2878 
2879     size.gx_rectangle_left = 2;
2880     size.gx_rectangle_right = 4;
2881     size.gx_rectangle_top = 2;
2882     size.gx_rectangle_bottom = 4;
2883     widget.gx_widget_size.gx_rectangle_left = 4;
2884     widget.gx_widget_size.gx_rectangle_right = 2;
2885     status = gx_system_dirty_partial_add(&widget, &size); // rectangle_overlap_detect failed
2886     EXPECT_EQ(GX_INVALID_SIZE, status);
2887 
2888     status = gx_system_draw_context_get(0); //should return GX_PTR_ERROR
2889     EXPECT_EQ(GX_PTR_ERROR, status);
2890 
2891     status = gx_system_draw_context_get(&_gx_system_current_draw_context); //should return GX_SUCCESS
2892     EXPECT_EQ(GX_SUCCESS, status);
2893 
2894     status = gx_system_event_fold(0); //should return GX_PTR_ERROR
2895     EXPECT_EQ(GX_PTR_ERROR, status);
2896 
2897     status = gx_system_event_send(0); //should return GX_PTR_ERROR
2898     EXPECT_EQ(GX_PTR_ERROR, status);
2899 
2900     status = gx_system_focus_claim(0); //should return GX_PTR_ERROR
2901     EXPECT_EQ(GX_PTR_ERROR, status);
2902 
2903     memset(&widget, 0, sizeof(GX_WIDGET));
2904     widget.gx_widget_type = 0;
2905     status = gx_system_focus_claim(&widget); //should return GX_INVALID_WIDGET
2906     EXPECT_EQ(GX_INVALID_WIDGET, status);
2907 
2908     status = gx_system_language_table_get(0, 0, 0);
2909     EXPECT_EQ(GX_SUCCESS, status);
2910 
2911     status = gx_system_language_table_set(0, 0, 1);//should return GX_PTR_ERROR
2912     EXPECT_EQ(GX_PTR_ERROR, status);
2913 
2914     status = gx_system_memory_allocator_set(0, 0);
2915     EXPECT_EQ(GX_SUCCESS, status);
2916 
2917     status = gx_system_pen_configure(0); //should return GX_PTR_ERROR
2918     EXPECT_EQ(GX_PTR_ERROR, status);
2919 
2920     status = gx_system_pen_configure(&pen_config); //should return GX_SUCCESS
2921     EXPECT_EQ(GX_SUCCESS, status);
2922 
2923     status = gx_system_scroll_appearance_get(0, 0);//should return GX_PTR_ERROR
2924     EXPECT_EQ(GX_PTR_ERROR, status);
2925 
2926     status = gx_system_scroll_appearance_get(0, &scrollbar_appearance);//should return GX_SUCCESS
2927     EXPECT_EQ(GX_SUCCESS, status);
2928 
2929     status = gx_system_scroll_appearance_set(0, 0);//should return GX_PTR_ERROR
2930     EXPECT_EQ(GX_PTR_ERROR, status);
2931 
2932     //gx_system_start(); //should return GX_PTR_ERROR
2933 
2934     status = gx_system_string_table_get(1, 0, 0);
2935     EXPECT_EQ(GX_NOT_FOUND, status);
2936 
2937     memset(&font, 0, sizeof(GX_FONT));
2938     status = gx_system_string_width_get(&font, 0, 0, 0); //should return GX_PTR_ERROR
2939     EXPECT_EQ(GX_PTR_ERROR, status);
2940 
2941     status = gx_system_string_width_get(&font, "string", 0, 0); //should return GX_PTR_ERROR
2942     EXPECT_EQ(GX_PTR_ERROR, status);
2943 
2944     status = gx_system_string_width_get(&font, "string", 0,(GX_VALUE *)&color); //should return GX_INVALID_FONT
2945     EXPECT_EQ(GX_INVALID_FONT, status);
2946 
2947     status = gx_system_string_width_get(&font, "string", GX_STRLEN("string") + 10, (GX_VALUE *)&color); //should return GX_INVALID_SIZE
2948     EXPECT_EQ(GX_INVALID_FONT, status);
2949 
2950     memset(&timer, 0, sizeof(GX_TIMER));
2951     _gx_system_free_timer_list = 0;
2952     status = gx_system_timer_start(0, 0, 0, 0); //should return GX_OUT_OF_TIMERS;
2953     EXPECT_EQ(GX_OUT_OF_TIMERS, status);
2954 
2955     _gx_system_free_timer_list = (GX_TIMER *)&timer;
2956     status = gx_system_timer_start(0, 0, 0, 0); //should return GX_PTR_ERROR;
2957     EXPECT_EQ(GX_PTR_ERROR, status);
2958 
2959     widget.gx_widget_type = 0;
2960     status = gx_system_timer_start(&widget, 0, 0, 0); //should return GX_INVALID_WIDGET;
2961     EXPECT_EQ(GX_INVALID_WIDGET, status);
2962 
2963     widget.gx_widget_type = GX_TYPE_WIDGET;
2964     status = gx_system_timer_start(&widget, 0, 0, 0); //should return GX_INVALID_VALUE;
2965     EXPECT_EQ(GX_INVALID_VALUE, status);
2966 
2967     status = gx_system_timer_stop(0, 0); //should return GX_PTR_ERROR;
2968     EXPECT_EQ(GX_PTR_ERROR, status);
2969 
2970     widget.gx_widget_type = 0;
2971     status = gx_system_timer_stop(&widget, 0); //should return GX_INVALID_WIDGET;
2972     EXPECT_EQ(GX_INVALID_WIDGET, status);
2973 
2974     _gx_system_free_timer_list = 0;
2975     status = gx_system_timer_stop(0, 1); //should return GX_NOT_FOUND;
2976     EXPECT_EQ(GX_NOT_FOUND, status);
2977 
2978     memset(&timer, 0, sizeof(GX_TIMER));
2979     _gx_system_free_timer_list = (GX_TIMER *)&timer;
2980     status = gx_system_timer_stop(0, 0); //should return GX_PTR_ERROR;
2981     EXPECT_EQ(GX_PTR_ERROR, status);
2982 
2983     _gx_system_active_timer_list = &gtimer;
2984     gtimer.gx_timer_next = 0;
2985     gtimer.gx_timer_id = 0xff;
2986     status = gx_system_timer_stop(0, 1);
2987     EXPECT_EQ(GX_NOT_FOUND, status);
2988 
2989     _gx_system_active_timer_list = 0;
2990     EXPECT_EQ(GX_NOT_FOUND, status);
2991 
2992     status = gx_system_version_string_get(0);//should return GX_PTR_ERROR;
2993     EXPECT_EQ(GX_PTR_ERROR, status);
2994 
2995     status = gx_system_version_string_get((GX_CHAR **)&byte_data);//should return GX_SUCCESS;
2996     EXPECT_EQ(GX_SUCCESS, status);
2997 
2998     status = gx_system_widget_find(0, 0, 0); //should return GX_PTR_ERROR;
2999     EXPECT_EQ(GX_PTR_ERROR, status);
3000 
3001     status = gx_system_widget_find(0, 0, &widget.gx_widget_parent); //should return GX_NOT_FOUND;
3002     EXPECT_EQ(GX_NOT_FOUND, status);
3003 
3004     /* text button */
3005     printf("text button\n");
3006     memset(&text_button, 0, sizeof(GX_TEXT_BUTTON));
3007     status = gx_text_button_create(&text_button, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3008     EXPECT_EQ(GX_PTR_ERROR, status);
3009 
3010     status = _gxe_text_button_create(&text_button, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3011     EXPECT_EQ(GX_INVALID_SIZE, status);
3012 
3013     text_button.gx_widget_type = GX_TYPE_TEXT_BUTTON;
3014     status = gx_text_button_create(&text_button, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3015     EXPECT_EQ(GX_ALREADY_CREATED, status);
3016 
3017     text_button.gx_widget_type = 0;
3018     parent.gx_widget_type = 0;
3019     status = gx_text_button_create(&text_button, 0, &parent, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
3020     EXPECT_EQ(GX_INVALID_WIDGET, status);
3021 
3022     status = gx_text_button_create(&text_button, 0, 0, 0, 0, 0, &size); // parent is NULL
3023     EXPECT_EQ(GX_SUCCESS, status);
3024 
3025     status = gx_text_button_font_set(0, 1);  //should return GX_PTR_ERROR
3026     EXPECT_EQ(GX_PTR_ERROR, status);
3027 
3028     text_button.gx_widget_type = 0;
3029     status = gx_text_button_font_set(&text_button, 1);  //should return GX_INVALID_WIDGET
3030     EXPECT_EQ(GX_INVALID_WIDGET, status);
3031 
3032     status = gx_text_button_text_color_set(0, 1, 0, 0);  //should return GX_PTR_ERROR
3033     EXPECT_EQ(GX_PTR_ERROR, status);
3034 
3035     text_button.gx_widget_type = 0;
3036     status = gx_text_button_text_color_set(&text_button, 1, 0, 0);  //should return GX_INVALID_WIDGET
3037     EXPECT_EQ(GX_INVALID_WIDGET, status);
3038 
3039     status = gx_text_button_text_get(&text_button, 0);  //should return GX_PTR_ERROR
3040     EXPECT_EQ(GX_PTR_ERROR, status);
3041 
3042     text_button.gx_widget_type = 0;
3043     status = gx_text_button_text_get(&text_button, ( GX_CONST GX_CHAR **)&byte_data);  //should return GX_INVALID_WIDGET
3044     EXPECT_EQ(GX_INVALID_WIDGET, status);
3045 
3046     text_button.gx_widget_type = GX_TYPE_TEXT_BUTTON;
3047     status = gx_text_button_text_get(&text_button, ( GX_CONST GX_CHAR **)&byte_data);  //should return GX_SUCCESS
3048     EXPECT_EQ(GX_SUCCESS, status);
3049 
3050     status = gx_text_button_text_id_set(0, 1);//should return GX_PTR_ERROR
3051     EXPECT_EQ(GX_PTR_ERROR, status);
3052 
3053     text_button.gx_widget_type = 0;
3054     status = gx_text_button_text_id_set(&text_button, 1);  //should return GX_INVALID_WIDGET
3055     EXPECT_EQ(GX_INVALID_WIDGET, status);
3056 
3057     text_button.gx_widget_type = GX_TYPE_TEXT_BUTTON;
3058     text_button.gx_widget_style = 0;
3059     text_button.gx_widget_status = 0;
3060     status = gx_text_button_text_id_set(&text_button, 0);  //should return GX_SUCCESS
3061     EXPECT_EQ(GX_SUCCESS, status);
3062 
3063     status = gx_text_button_text_set(0, 0);//should return GX_PTR_ERROR
3064     EXPECT_EQ(GX_PTR_ERROR, status);
3065 
3066     text_button.gx_widget_type = 0;
3067     status = gx_text_button_text_set(&text_button, ( GX_CONST GX_CHAR *)byte_data);  //should return GX_INVALID_WIDGET
3068     EXPECT_EQ(GX_INVALID_WIDGET, status);
3069 
3070     text_button.gx_widget_type = GX_TYPE_TEXT_BUTTON;
3071     text_button.gx_widget_style = GX_STYLE_TEXT_COPY;
3072     _gx_system_memory_allocator = 0;
3073     status = gx_text_button_text_set(&text_button, ( GX_CONST GX_CHAR *)byte_data);  //should return GX_SYSTEM_MEMORY_ERROR
3074     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3075 
3076     text_button.gx_widget_style = 0;
3077     text_button.gx_widget_status = 0;
3078     status = gx_text_button_text_set(&text_button, ( GX_CONST GX_CHAR *)byte_data);  //should return GX_SYSTEM_MEMORY_ERROR
3079     EXPECT_EQ(GX_SUCCESS, status);
3080 
3081     /* text input cursor */
3082     printf("text input cursor\n");
3083     status = gx_text_input_cursor_blink_interval_set(0, 1); //should return GX_PTR_ERROR
3084     EXPECT_EQ(GX_PTR_ERROR, status);
3085 
3086     memset(&text_input_cursor, 0, sizeof(GX_TEXT_INPUT_CURSOR));
3087     status = gx_text_input_cursor_blink_interval_set(&text_input_cursor, 0);//should return GX_INVALID_VALUE
3088     EXPECT_EQ(GX_INVALID_VALUE, status);
3089 
3090     status = gx_text_input_cursor_blink_interval_set(&text_input_cursor, 1);//should return GX_SUCCESS
3091     EXPECT_EQ(GX_SUCCESS, status);
3092 
3093     status = gx_text_input_cursor_height_set(0, 1); //should return GX_PTR_ERROR
3094     EXPECT_EQ(GX_PTR_ERROR, status);
3095 
3096     status = gx_text_input_cursor_height_set(&text_input_cursor, 0);//should return GX_INVALID_VALUE
3097     EXPECT_EQ(GX_INVALID_VALUE, status);
3098 
3099     status = gx_text_input_cursor_width_set(0, 1); //should return GX_PTR_ERROR
3100     EXPECT_EQ(GX_PTR_ERROR, status);
3101 
3102     status = gx_text_input_cursor_width_set(&text_input_cursor, 0);//should return GX_INVALID_VALUE
3103     EXPECT_EQ(GX_INVALID_VALUE, status);
3104 
3105     /* text scroll wheel */
3106     printf("text scroll wheel\n");
3107     memset(&text_scroll_wheel, 0 ,sizeof(GX_TEXT_SCROLL_WHEEL));
3108     status = gx_text_scroll_wheel_callback_set(&text_scroll_wheel, 0);//should return GX_PTR_ERROR
3109     EXPECT_EQ(GX_PTR_ERROR, status);
3110 
3111     text_scroll_wheel.gx_widget_type = 0;
3112     status = gx_text_scroll_wheel_callback_set(&text_scroll_wheel, callback_fun);//should return GX_PTR_ERROR
3113     EXPECT_EQ(GX_INVALID_WIDGET, status);
3114 
3115     status = gx_text_scroll_wheel_font_set(0, 1, 2); //should return GX_PTR_ERROR
3116     EXPECT_EQ(GX_PTR_ERROR, status);
3117 
3118     text_scroll_wheel.gx_widget_type = 0;
3119     status = gx_text_scroll_wheel_font_set(&text_scroll_wheel, 1, 2); //should return GX_INVALID_WIDGET
3120     EXPECT_EQ(GX_INVALID_WIDGET, status);
3121 
3122     status = gx_text_scroll_wheel_text_color_set(0, 1, 2, 3); //should return GX_PTR_ERROR
3123     EXPECT_EQ(GX_PTR_ERROR, status);
3124 
3125     text_scroll_wheel.gx_widget_type = 0;
3126     status = gx_text_scroll_wheel_text_color_set(&text_scroll_wheel, 1, 2, 3); //should return GX_INVALID_WIDGET
3127     EXPECT_EQ(GX_INVALID_WIDGET, status);
3128 
3129     status = gx_text_scroll_wheel_create(&text_scroll_wheel, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3130     EXPECT_EQ(GX_PTR_ERROR, status);
3131 
3132     status = _gxe_text_scroll_wheel_create(&text_scroll_wheel, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3133     EXPECT_EQ(GX_INVALID_SIZE, status);
3134 
3135     text_scroll_wheel.gx_widget_type = GX_TYPE_TEXT_SCROLL_WHEEL;
3136     status = gx_text_scroll_wheel_create(&text_scroll_wheel, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3137     EXPECT_EQ(GX_ALREADY_CREATED, status);
3138 
3139     text_scroll_wheel.gx_widget_type = 0;
3140     parent.gx_widget_type = 0;
3141     status = gx_text_scroll_wheel_create(&text_scroll_wheel, 0, &parent, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
3142     EXPECT_EQ(GX_INVALID_WIDGET, status);
3143 
3144     status = gx_text_scroll_wheel_create(&text_scroll_wheel, 0, 0, 0, 0, 0, &size); //should return GX_SUCCESS
3145     EXPECT_EQ(GX_SUCCESS, status);
3146 
3147     memset(&text_scroll_wheel, 0, sizeof(text_scroll_wheel));
3148     parent.gx_widget_type = GX_TYPE_TEXT_SCROLL_WHEEL;
3149     status = gx_text_scroll_wheel_create(&text_scroll_wheel, 0, &parent, 0, 0, 0, &size);
3150     EXPECT_EQ(GX_SUCCESS, status);
3151 
3152     /* utility gradient */
3153     printf("utility gradient\n");
3154     status = gx_utility_gradient_create(0, 1, 2, 3, 4, 5); //should return GX_PTR_ERROR
3155     EXPECT_EQ(GX_PTR_ERROR, status);
3156 
3157     status = gx_utility_gradient_create(&gradient, 0, 2, 3, 4, 5); //should return GX_INVALID_VALUE
3158     EXPECT_EQ(GX_INVALID_SIZE, status);
3159 
3160     status = gx_utility_gradient_create(&gradient, 1, 0, 3, 4, 5); //should return GX_INVALID_VALUE
3161     EXPECT_EQ(GX_INVALID_SIZE, status);
3162 
3163     status = gx_utility_gradient_create(&gradient, 1, 2, 0, 4, 5); //should return GX_INVALID_TYPE
3164     EXPECT_EQ(GX_INVALID_SIZE, status);
3165 
3166     status = gx_utility_gradient_create(&gradient, 1, 1, 1, 4, 5); //should return GX_INVALID_SIZE
3167     EXPECT_EQ(GX_INVALID_SIZE, status);
3168 
3169     status = gx_utility_gradient_create(&gradient, GX_MAX_PIXELMAP_RESOLUTION + 1, 3, GX_GRADIENT_TYPE_ALPHA, 0, 255);
3170     EXPECT_EQ(GX_INVALID_WIDTH, status);
3171 
3172     status = gx_utility_gradient_create(&gradient, 3, GX_MAX_PIXELMAP_RESOLUTION + 1, GX_GRADIENT_TYPE_ALPHA, 0, 255);
3173     EXPECT_EQ(GX_INVALID_HEIGHT, status);
3174 
3175     _gx_system_memory_allocator = GX_NULL;
3176     status = gx_utility_gradient_create(&gradient, 2, 2, GX_GRADIENT_TYPE_ALPHA, 255, 255);//should return GX_FAILURE;
3177     EXPECT_EQ(GX_FAILURE, status);
3178 
3179     _gx_system_memory_allocator = memory_allocate;
3180     status = gx_utility_gradient_create(&gradient, 2, 2, GX_GRADIENT_TYPE_ALPHA, 255, 255);//should return GX_FAILURE;
3181     EXPECT_EQ(GX_FAILURE, status);
3182 
3183     status = gx_utility_gradient_delete(0);//should return GX_PTR_ERROR
3184     EXPECT_EQ(GX_PTR_ERROR, status);
3185 
3186     memset(&gradient.gx_gradient_pixelmap, 0, sizeof(GX_PIXELMAP));
3187     status = gx_utility_gradient_delete(&gradient);
3188     EXPECT_EQ(GX_SUCCESS, status);
3189 
3190     /* tree view */
3191     memset(&tree_view, 0, sizeof(GX_TREE_VIEW));
3192     status = gx_tree_view_create(&tree_view, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3193     EXPECT_EQ(GX_PTR_ERROR, status);
3194 
3195     tree_view.gx_widget_type = GX_TYPE_TREE_VIEW;
3196     status = gx_tree_view_create(&tree_view, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3197     EXPECT_EQ(GX_ALREADY_CREATED, status);
3198 
3199     tree_view.gx_widget_type = 0;
3200     status = _gxe_tree_view_create(&tree_view, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3201     EXPECT_EQ(GX_INVALID_SIZE, status);
3202 
3203     parent.gx_widget_type = 0;
3204     gx_tree_view_create(&tree_view, 0, &parent, 0, 0, &size); //should return GX_INVALID_WIDGET
3205     status = gx_tree_view_create(&tree_view, 0, 0, 0, 0, &size); // parent is NULL
3206     EXPECT_EQ(GX_SUCCESS, status);
3207 
3208     status = gx_tree_view_event_process(&tree_view, 0);//should return GX_PTR_ERROR
3209     EXPECT_EQ(GX_PTR_ERROR, status);
3210 
3211     tree_view.gx_widget_type = 0;
3212     status = gx_tree_view_event_process(&tree_view, &my_event);//should return GX_INVALID_WIDGET
3213     EXPECT_EQ(GX_INVALID_WIDGET, status);
3214 
3215     tree_view.gx_widget_type = GX_TYPE_TREE_VIEW;
3216     my_event.gx_event_type = 0;
3217     tree_view.gx_widget_parent = 0;
3218     status = gx_tree_view_event_process(&tree_view, &my_event);//should return GX_INVALID_WIDGET
3219     EXPECT_EQ(GX_SUCCESS, status);
3220 
3221     status = gx_tree_view_indentation_set(0, 1); //should return GX_PTR_ERROR
3222     EXPECT_EQ(GX_PTR_ERROR, status);
3223 
3224     tree_view.gx_widget_type = 0;
3225     status = gx_tree_view_indentation_set(&tree_view, 1); //should return GX_INVALID_WIDGET
3226     EXPECT_EQ(GX_INVALID_WIDGET, status);
3227 
3228     status = gx_tree_view_position(0); //should return GX_PTR_ERROR
3229     EXPECT_EQ(GX_PTR_ERROR, status);
3230 
3231     tree_view.gx_widget_type = 0;
3232     status = gx_tree_view_position(&tree_view); //should return GX_PTR_ERROR
3233     EXPECT_EQ(GX_INVALID_WIDGET, status);
3234 
3235     memset(&tree_view, 0, sizeof(GX_TREE_VIEW));
3236     tree_view.gx_widget_type = GX_TYPE_TREE_VIEW;
3237     status = gx_tree_view_position(&tree_view); //should return GX_PTR_ERROR
3238     EXPECT_EQ(GX_SUCCESS, status);
3239 
3240 
3241     status = gx_tree_view_root_line_color_set(0, 1); //should return GX_PTR_ERROR
3242     EXPECT_EQ(GX_PTR_ERROR, status);
3243 
3244     tree_view.gx_widget_type = 0;
3245     status = gx_tree_view_root_line_color_set(&tree_view, 1); //should return GX_INVALID_WIDGET
3246     EXPECT_EQ(GX_INVALID_WIDGET, status);
3247 
3248     status = gx_tree_view_root_pixelmap_set(0, 1, 2); //should return GX_PTR_ERROR
3249     EXPECT_EQ(GX_PTR_ERROR, status);
3250 
3251     tree_view.gx_widget_type = 0;
3252     status = gx_tree_view_root_pixelmap_set(&tree_view, 2, 1); //should return GX_INVALID_WIDGET
3253     EXPECT_EQ(GX_INVALID_WIDGET, status);
3254 
3255     status = gx_tree_view_selected_get(&tree_view, 0); //should return GX_PTR_ERROR
3256     EXPECT_EQ(GX_PTR_ERROR, status);
3257 
3258     tree_view.gx_widget_type = 0;
3259     status = gx_tree_view_selected_get(&tree_view, &widget.gx_widget_parent); //should return GX_INVALID_WIDGET
3260     EXPECT_EQ(GX_INVALID_WIDGET, status);
3261 
3262     tree_view.gx_widget_type = GX_TYPE_TREE_VIEW;
3263     status = gx_tree_view_selected_get(&tree_view, &widget.gx_widget_parent); //should return GX_SUCCESS
3264     EXPECT_EQ(GX_SUCCESS, status);
3265 
3266     status = gx_tree_view_selected_set(&tree_view, 0); //should return GX_PTR_ERROR
3267     EXPECT_EQ(GX_PTR_ERROR, status);
3268 
3269     tree_view.gx_widget_type = 0;
3270     status = gx_tree_view_selected_set(&tree_view, &widget); //should return GX_INVALID_WIDGET
3271     EXPECT_EQ(GX_INVALID_WIDGET, status);
3272 
3273     /* utility */
3274     printf("utility\n");
3275     gx_utility_canvas_to_bmp(0, 0, 0);
3276     memset(&canvas, 0, sizeof(GX_CANVAS));
3277     canvas.gx_canvas_display = &default_display;
3278     gx_utility_canvas_to_bmp(&canvas, 0, 0);
3279     canvas.gx_canvas_memory = &color;
3280     gx_utility_canvas_to_bmp(&canvas, 0, 0);
3281     gx_utility_canvas_to_bmp(&canvas, &size, 0);
3282     memset(&size, 0, sizeof(GX_RECTANGLE));
3283     gx_utility_canvas_to_bmp(&canvas, &size, write_data_callback);
3284     canvas.gx_canvas_display = 0;
3285     status = gx_utility_canvas_to_bmp(&canvas, &size, write_data_callback);
3286     EXPECT_EQ(GX_PTR_ERROR, status);
3287 
3288     gx_utility_ltoa(0, 0, 0); //should return GX_PTR_ERROR
3289     gx_utility_ltoa(0, (GX_CHAR *)&color, 0); //should return GX_INVALID_SIZE
3290 
3291     gx_utility_math_acos(0);
3292     gx_utility_math_asin(0);
3293     gx_utility_math_cos(0);
3294     gx_utility_math_sin(0);
3295     gx_utility_math_sqrt(0);
3296 
3297     if (gx_utility_math_asin(GX_FIXED_VAL_MAKE(1)) != 90)
3298     {
3299         printf("Guix Test:   guix_api_coverage_test...........................................................Failed!\n");
3300     }
3301     if(gx_utility_math_asin(-1 * GX_FIXED_VAL_MAKE(1)) != -90)
3302     {
3303         printf("Guix Test:   guix_api_coverage_test...........................................................Failed!\n");
3304     }
3305 
3306     gx_system_memory_allocator_set(memory_allocate, memory_free);
3307     pixelmap.gx_pixelmap_flags = 0;
3308     pixelmap.gx_pixelmap_width = GX_MAX_PIXELMAP_RESOLUTION + 1;
3309     pixelmap.gx_pixelmap_height = 10;
3310     status = gx_utility_pixelmap_resize(&pixelmap, &destination_pixelmap, 10, 10);
3311     EXPECT_EQ(GX_INVALID_WIDTH, status);
3312 
3313     pixelmap.gx_pixelmap_width = 10;
3314     pixelmap.gx_pixelmap_height = GX_MAX_PIXELMAP_RESOLUTION + 1;
3315     status = gx_utility_pixelmap_resize(&pixelmap, &destination_pixelmap, 10, 10);
3316     EXPECT_EQ(GX_INVALID_HEIGHT, status);
3317 
3318     status = gx_utility_pixelmap_resize(&pixelmap, 0, 0, 0); //should return GX_PTR_ERROR
3319     EXPECT_EQ(GX_PTR_ERROR, status);
3320 
3321     status = gx_utility_pixelmap_resize(&pixelmap, &pixelmap, 0, 0); // width <= 0
3322     EXPECT_EQ(GX_INVALID_VALUE, status);
3323 
3324     pixelmap.gx_pixelmap_flags = GX_PIXELMAP_COMPRESSED;
3325     status = gx_utility_pixelmap_resize(&pixelmap, &pixelmap, 0, 1); // height <= 0
3326     EXPECT_EQ(GX_NOT_SUPPORTED, status);
3327 
3328     status = gx_utility_pixelmap_resize(&pixelmap, &pixelmap, 1, 1); //should return GX_NOT_SUPPORTED
3329     EXPECT_EQ(GX_NOT_SUPPORTED, status);
3330 
3331     pixelmap.gx_pixelmap_flags = 0;
3332     gx_system_memory_allocator_set(GX_NULL, memory_free);
3333     status = gx_utility_pixelmap_resize(&pixelmap, &pixelmap, 1, 1); //should return GX_SYSTEM_MEMORY_ERROR
3334     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3335 
3336     gx_system_memory_allocator_set(memory_allocate, GX_NULL);
3337     status = gx_utility_pixelmap_resize(&pixelmap, &pixelmap, 1, 1); // memory_free is NULL
3338     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3339 
3340     gx_system_memory_allocator_set(memory_allocate, memory_free);
3341     pixelmap.gx_pixelmap_flags = 0;
3342     pixelmap.gx_pixelmap_width = GX_MAX_PIXELMAP_RESOLUTION + 1;
3343     pixelmap.gx_pixelmap_height = 10;
3344     status = gx_utility_pixelmap_rotate(&pixelmap, 30, &destination_pixelmap, GX_NULL, GX_NULL);
3345     EXPECT_EQ(GX_INVALID_WIDTH, status);
3346 
3347     pixelmap.gx_pixelmap_width = 10;
3348     pixelmap.gx_pixelmap_height = GX_MAX_PIXELMAP_RESOLUTION + 1;
3349     status = gx_utility_pixelmap_rotate(&pixelmap, 30, &destination_pixelmap, GX_NULL, GX_NULL);
3350     EXPECT_EQ(GX_INVALID_HEIGHT, status);
3351 
3352     status = gx_utility_pixelmap_rotate(&pixelmap, 0, 0, 0, 0);//should return GX_PTR_ERROR
3353     EXPECT_EQ(GX_PTR_ERROR, status);
3354 
3355     pixelmap.gx_pixelmap_width = 10;
3356     pixelmap.gx_pixelmap_height = 10;
3357     status = gx_utility_pixelmap_rotate(&pixelmap, 0, &pixelmap, 0, 0);//should return GX_INVALID_VALUE
3358     EXPECT_EQ(GX_INVALID_VALUE, status);
3359 
3360     gx_system_memory_allocator_set(GX_NULL, memory_free);
3361     status = gx_utility_pixelmap_rotate(&pixelmap, 90, &pixelmap, 0, 0);//should return GX_SYSTEM_MEMORY_ERROR
3362     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3363 
3364     gx_system_memory_allocator_set(memory_allocate, GX_NULL);
3365     status = gx_utility_pixelmap_rotate(&pixelmap, 90, &pixelmap, 0, 0);//should return GX_SYSTEM_MEMORY_ERROR
3366     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3367 
3368     gx_system_memory_allocator_set(memory_allocate, memory_free);
3369     status = gx_utility_pixelmap_rotate(&pixelmap, 90, 0, 0, 0);//should return GX_PTR_ERROR
3370     EXPECT_EQ(GX_PTR_ERROR, status);
3371 
3372     pixelmap.gx_pixelmap_flags = GX_PIXELMAP_COMPRESSED;
3373     status = gx_utility_pixelmap_rotate(&pixelmap, 91, &pixelmap, 0, 0);//should return GX_INVALID_FORMAT
3374     EXPECT_EQ(GX_INVALID_FORMAT, status);
3375 
3376     pixelmap.gx_pixelmap_flags = 0;
3377     pixelmap.gx_pixelmap_format = GX_COLOR_FORMAT_8BIT_ALPHAMAP + 1;
3378     status = gx_utility_pixelmap_rotate(&pixelmap, 91, &pixelmap, 0, 0);//should return GX_INVALID_FORMAT
3379     EXPECT_EQ(GX_INVALID_FORMAT, status);
3380 
3381     /* gx_utility_pixelmap_simple_rotate. */
3382     status = gx_utility_pixelmap_simple_rotate(0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3383     EXPECT_EQ(GX_PTR_ERROR, status);
3384 
3385     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 0, 0, 0, 0); //should return GX_PTR_ERROR
3386     EXPECT_EQ(GX_PTR_ERROR, status);
3387 
3388     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 0, &pixelmap, 0, 0); //should return GX_INVALID_VALUE
3389     EXPECT_EQ(GX_INVALID_VALUE, status);
3390 
3391     gx_system_memory_allocator_set(GX_NULL, memory_free);
3392     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 90, &pixelmap, 0, 0); //should return GX_SYSTEM_MEMORY_ERROR
3393     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3394 
3395     gx_system_memory_allocator_set(memory_allocate, GX_NULL);
3396     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 90, &pixelmap, 0, 0); //should return GX_SYSTEM_MEMORY_ERROR
3397     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3398 
3399     gx_system_memory_allocator_set(memory_allocate, memory_free);
3400     pixelmap.gx_pixelmap_flags = GX_PIXELMAP_COMPRESSED;
3401     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 90, &pixelmap, 0, 0); //should return GX_INVALID_FORMAT
3402     EXPECT_EQ(GX_INVALID_FORMAT, status);
3403 
3404     pixelmap.gx_pixelmap_flags = 0;
3405     pixelmap.gx_pixelmap_format = GX_COLOR_FORMAT_8BIT_ALPHAMAP + 1;
3406     status = gx_utility_pixelmap_simple_rotate(&pixelmap, 90, &pixelmap, 0, 0); //should return GX_INVALID_FORMAT
3407     EXPECT_EQ(GX_INVALID_FORMAT, status);
3408 
3409     /* gx_utility_rectangle_center. */
3410     printf("utility rectangle center\n");
3411     gx_utility_rectangle_center(&size, 0); //should return GX_PTR_ERROR
3412     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3413     gx_utility_rectangle_center(&size, &size); //should return GX_INVALID_SIZE
3414     size.gx_rectangle_left = size.gx_rectangle_right;
3415     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
3416     gx_utility_rectangle_center(&size, &size); //should return GX_INVALID_SIZE
3417     size.gx_rectangle_left = size.gx_rectangle_right;
3418     size.gx_rectangle_top = size.gx_rectangle_bottom;
3419     widget.gx_widget_size.gx_rectangle_left = widget.gx_widget_size.gx_rectangle_right + 1;
3420     gx_utility_rectangle_center(&size, &widget.gx_widget_size); //should return GX_INVALID_SIZE
3421     widget.gx_widget_size.gx_rectangle_left = widget.gx_widget_size.gx_rectangle_right;
3422     widget.gx_widget_size.gx_rectangle_top = widget.gx_widget_size.gx_rectangle_bottom + 1;
3423     gx_utility_rectangle_center(&size, &widget.gx_widget_size); //should return GX_INVALID_SIZE
3424     widget.gx_widget_size.gx_rectangle_top = widget.gx_widget_size.gx_rectangle_bottom;
3425     memset(&size, 0, sizeof(GX_RECTANGLE));
3426     gx_utility_rectangle_center(&size, &size); //should return GX_SUCCESS
3427 
3428     gx_utility_rectangle_center_find(&size, 0);//should return GX_PTR_ERROR
3429     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3430     gx_utility_rectangle_center_find(&size, &point);//should return GX_INVALID_SIZE
3431     size.gx_rectangle_left = size.gx_rectangle_right;
3432     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
3433     gx_utility_rectangle_center_find(&size, &point);//should return GX_INVALID_SIZE
3434     memset(&size, 0, sizeof(GX_RECTANGLE));
3435     gx_utility_rectangle_center_find(&size, &point);//should return GX_SUCCESS
3436 
3437     gx_utility_rectangle_combine(&size, 0);//should return GX_PTR_ERROR
3438     gx_utility_rectangle_combine(&size, &size);//should return GX_SUCCESS
3439 
3440     gx_utility_rectangle_compare(&size, 0);//should return GX_PTR_ERROR
3441     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3442     gx_utility_rectangle_compare(&size, &size);//should return GX_INVALID_SIZE
3443     memset(&size, 0, sizeof(GX_RECTANGLE));
3444     gx_utility_rectangle_compare(&size, &size);//should return GX_TRUE
3445     size.gx_rectangle_left = 1;
3446     size.gx_rectangle_right = 0;
3447     rec1.gx_rectangle_left = 0;
3448     rec1.gx_rectangle_right = 1;
3449     rec1.gx_rectangle_top = 1;
3450     rec1.gx_rectangle_bottom = 0;
3451     rec2.gx_rectangle_left = 0;
3452     rec2.gx_rectangle_right = 1;
3453     rec2.gx_rectangle_top = 0;
3454     rec2.gx_rectangle_bottom = 1;
3455     status = gx_utility_rectangle_compare(&rec1, &rec2);// first rectangle top > bottom
3456     EXPECT_EQ(GX_FALSE, status);
3457     status = gx_utility_rectangle_compare(&rec2, &size);// second rectangle left > right
3458     EXPECT_EQ(GX_FALSE, status);
3459     status = gx_utility_rectangle_compare(&rec2, &rec1);// second rectangle top > bottom
3460     EXPECT_EQ(GX_FALSE, status);
3461 
3462     gx_utility_rectangle_define(0, 1, 2, 3, 4);//should return GX_PTR_ERROR
3463 
3464     gx_utility_rectangle_overlap_detect(&size, 0, 0);//should return GX_PTR_ERROR
3465     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3466     gx_utility_rectangle_overlap_detect(&size, &size, 0);//should return GX_INVALID_SIZE
3467     size.gx_rectangle_left = 1;
3468     size.gx_rectangle_right = 0;
3469     rec1.gx_rectangle_left = 0;
3470     rec1.gx_rectangle_right = 1;
3471     rec1.gx_rectangle_top = 1;
3472     rec1.gx_rectangle_bottom = 0;
3473     rec2.gx_rectangle_left = 0;
3474     rec2.gx_rectangle_right = 1;
3475     rec2.gx_rectangle_top = 0;
3476     rec2.gx_rectangle_bottom = 1;
3477     status = gx_utility_rectangle_overlap_detect(&rec1, &rec2, 0);// first rectangle top > bottom
3478     EXPECT_EQ(GX_FALSE, status);
3479     status = gx_utility_rectangle_overlap_detect(&rec2, &size, 0);// second rectangle left > right
3480     EXPECT_EQ(GX_FALSE, status);
3481     status = gx_utility_rectangle_overlap_detect(&rec2, &rec1, 0);// second rectangle top > bottom
3482     EXPECT_EQ(GX_FALSE, status);
3483 
3484     gx_utility_rectangle_point_detect(0, point);//should return GX_FALSE
3485     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3486     gx_utility_rectangle_point_detect(&size, point);//should return GX_FALSE
3487     size.gx_rectangle_left = size.gx_rectangle_right;
3488     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
3489     gx_utility_rectangle_point_detect(&size, point);//should return GX_FALSE
3490     size.gx_rectangle_left = size.gx_rectangle_right = 0;
3491     size.gx_rectangle_bottom = size.gx_rectangle_top  = 0;
3492     gx_utility_rectangle_point_detect(&size, point);//should return GX_TRUE
3493 
3494     gx_utility_rectangle_resize(0, 1);//should return GX_PTR_ERROR
3495 
3496     gx_utility_rectangle_shift(0, 1, 2);//should return GX_PTR_ERROR
3497 
3498     gx_utility_string_to_alphamap((GX_CONST GX_CHAR *)byte_data, &font, 0); //should return GX_PTR_ERROR
3499     _gx_system_memory_allocator = 0;
3500     _gx_system_memory_free = 0;
3501     gx_utility_string_to_alphamap("text", &font, &pixelmap); //should return GX_SYSTEM_MEMORY_ERROR
3502     status = gx_utility_string_to_alphamap("text", GX_NULL, &pixelmap); // font == GX_NULL
3503     EXPECT_EQ(GX_PTR_ERROR, status);
3504     status = gx_utility_string_to_alphamap("text", &font, GX_NULL); // textmap == GX_NULL
3505     EXPECT_EQ(GX_PTR_ERROR, status);
3506     _gx_system_memory_allocator = (VOID *(*)(ULONG))0x04;
3507     _gx_system_memory_free = 0;
3508     status = gx_utility_string_to_alphamap("text", &font, &pixelmap); // _gx_system_memory_free == 0
3509     EXPECT_EQ(GX_SYSTEM_MEMORY_ERROR, status);
3510 
3511     /* vertical list */
3512     printf("vertical list\n");
3513     memset(&vertical_list, 0, sizeof(GX_VERTICAL_LIST));
3514     gx_vertical_list_children_position(0); // should return GX_PTR_ERROR
3515     vertical_list.gx_widget_type = 0;
3516     gx_vertical_list_children_position(&vertical_list);//should return GX_INVALID_WIDGET
3517     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3518     gx_vertical_list_children_position(&vertical_list);//should return GX_SUCCESS
3519 
3520     gx_vertical_list_create(&vertical_list, 0, 0, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3521     _gxe_vertical_list_create(&vertical_list, 0, 0, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3522     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3523     gx_vertical_list_create(&vertical_list, 0, 0, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3524     vertical_list.gx_widget_type = 0;
3525     gx_vertical_list_create(&vertical_list, 0, 0, 0, 0, 0, 0, &size); //should return GX_INVALID_VALUE
3526     parent.gx_widget_type = 0;
3527     gx_vertical_list_create(&vertical_list, 0, &parent, 1, 0, 0, 0, &size); //should return GX_INVALID_WIDGET
3528     status = gx_vertical_list_create(&vertical_list, 0, 0, 1, 0, 0, 0, &size); // parent == GX_NULL
3529     EXPECT_EQ(GX_SUCCESS, status);
3530 
3531     gx_vertical_list_event_process(&vertical_list, 0); //should return GX_PTR_ERROR
3532     vertical_list.gx_widget_type = 0;
3533     gx_vertical_list_event_process(&vertical_list, &my_event); //should return GX_INVALID_WIDGET
3534     memset(&vertical_list, 0, sizeof(GX_VERTICAL_LIST));
3535     memset(&my_event, 0, sizeof(GX_EVENT));
3536     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3537     gx_vertical_list_event_process(&vertical_list, &my_event); //should return GX_SUCCESS
3538 
3539     gx_vertical_list_page_index_set(0, 1); //should return GX_PTR_ERROR
3540     vertical_list.gx_widget_type = 0;
3541     gx_vertical_list_page_index_set(&vertical_list, 1); //should return GX_INVALID_WIDGET
3542     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3543     vertical_list.gx_vertical_list_total_rows = 0;
3544     gx_vertical_list_page_index_set(&vertical_list, 1); //should return GX_INVALID_VALUE
3545     status = gx_vertical_list_page_index_set(&vertical_list, -1); // index < 0
3546     EXPECT_EQ(GX_INVALID_VALUE, status);
3547 
3548     gx_vertical_list_selected_index_get(&vertical_list, 0); //should return GX_PTR_ERROR
3549     vertical_list.gx_widget_type = 0;
3550     gx_vertical_list_selected_index_get(&vertical_list, (INT *)&color); //should return GX_INVALID_WIDGET
3551     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3552     gx_vertical_list_selected_index_get(&vertical_list, (INT *)&color); //should return GX_SUCCESS
3553 
3554     gx_vertical_list_selected_set(0, 1); //should return GX_PTR_ERROR
3555     vertical_list.gx_widget_type = 0;
3556     gx_vertical_list_selected_set(&vertical_list, 1); //should return GX_INVALID_WIDGET
3557 
3558     gx_vertical_list_selected_widget_get(&vertical_list, 0); //should return GX_PTR_ERROR
3559     vertical_list.gx_widget_type = 0;
3560     gx_vertical_list_selected_widget_get(&vertical_list, &vertical_list.gx_widget_parent); //should return GX_INVALID_WIDGET
3561 
3562     gx_vertical_list_total_rows_set(0, 1); //should return GX_PTR_ERROR
3563     vertical_list.gx_widget_type = 0;
3564     gx_vertical_list_total_rows_set(&vertical_list, 1); //should return GX_INVALID_WIDGET
3565     vertical_list.gx_widget_type = GX_TYPE_VERTICAL_LIST;
3566     gx_vertical_list_total_rows_set(&vertical_list, -1); //should return GX_INVALID_VALUE
3567 
3568     gx_vertical_scrollbar_create(&scrollbar, 0, 0, 0, 0);//should return GX_PTR_ERROR
3569     _gxe_vertical_scrollbar_create(&scrollbar, 0, (GX_WINDOW *)&parent, 0, 0, 0);//should return GX_INVALID_SIZE
3570     scrollbar.gx_widget_type = GX_TYPE_VERTICAL_SCROLL;
3571     gx_vertical_scrollbar_create(&scrollbar, 0, &parent, 0, 0); //should return GX_ALREADY_CREATED
3572     scrollbar.gx_widget_type = 0;
3573     parent.gx_widget_type = 0;
3574     gx_vertical_scrollbar_create(&scrollbar, 0, &parent, 0, 0); //should return GX_INVALID_WIDGET
3575 
3576     /* widget */
3577     printf("widget\n");
3578     _gx_system_memory_allocator = 0;
3579     gx_widget_allocate(&widget.gx_widget_parent, 0); //should return GX_SYSTEM_MEMORY_ERROR
3580     _gx_system_memory_allocator = memory_allocate;
3581     gx_widget_allocate(0, 0); //should return GX_PTR_ERROR
3582     gx_widget_allocate(&widget.gx_widget_parent, 0); //should return GX_INVALID_MEMORY_SIZE
3583     gx_widget_allocate(&widget.gx_widget_parent, 1); //should return GX_INVALID_MEMORY_SIZE
3584 
3585     gx_widget_attach(&parent, 0); //should return GX_PTR_ERROR
3586     parent.gx_widget_type = GX_TYPE_WIDGET;
3587     widget.gx_widget_type = 0;
3588     gx_widget_attach(&parent, &widget); //should return GX_INVALID_WIDGET
3589     parent.gx_widget_type = 0;
3590     status = gx_widget_attach(&parent, &widget); // parent.gx_widget_type == 0
3591     EXPECT_EQ(GX_INVALID_WIDGET, status);
3592 
3593     gx_widget_back_attach(&parent, 0); //should return GX_PTR_ERROR
3594     parent.gx_widget_type = GX_TYPE_WIDGET;
3595     widget.gx_widget_type = 0;
3596     gx_widget_back_attach(&parent, &widget); //should return GX_INVALID_WIDGET
3597     parent.gx_widget_type = GX_TYPE_WIDGET;
3598     widget.gx_widget_type = GX_TYPE_WIDGET;
3599     gx_widget_back_attach(&parent, &widget); //should return GX_SUCCESS
3600     parent.gx_widget_type = 0;
3601     status = gx_widget_back_attach(&parent, &widget); // parent -> gx_widget_type == 0
3602     EXPECT_EQ(GX_INVALID_WIDGET, status);
3603 
3604     gx_widget_back_move(0, 0); //should return GX_PTR_ERROR
3605     widget.gx_widget_type = 0;
3606     gx_widget_back_move(&widget, 0); //should return GX_INVALID_WIDGET
3607     widget.gx_widget_type = GX_TYPE_WIDGET;
3608     widget.gx_widget_parent = 0;
3609     gx_widget_back_move(&widget, 0); //should return GX_PTR_ERROR
3610     widget.gx_widget_parent = &parent;
3611     parent.gx_widget_first_child = &widget;
3612     gx_widget_back_move(&widget, 0); //should return GX_NO_CHANGE
3613 
3614     gx_widget_block_move(0, 0, 1, 2); //should return GX_PTR_ERROR
3615     status = gx_widget_block_move(&widget, 0, 1, 2); // block == GX_NULL
3616     EXPECT_EQ(GX_PTR_ERROR, status);
3617     widget.gx_widget_type = 0;
3618     gx_widget_block_move(&widget, &size, 1, 2); //should return GX_INVALID_WIDGET
3619     memset(&size, 0, sizeof(GX_RECTANGLE));
3620     size.gx_rectangle_left = size.gx_rectangle_right + 1;
3621     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
3622     widget.gx_widget_type = GX_TYPE_WIDGET;
3623     gx_widget_block_move(&widget, &size, 1, 2); //should return GX_INVALID_VALUE
3624     size.gx_rectangle_left = 0;
3625     size.gx_rectangle_right = 1;
3626     size.gx_rectangle_top = size.gx_rectangle_bottom + 1;
3627     status = gx_widget_block_move(&widget, &size, 1, 2); // top > bottom
3628     EXPECT_EQ(GX_INVALID_VALUE, status);
3629     widget.gx_widget_type = GX_TYPE_WIDGET;
3630     size.gx_rectangle_right = size.gx_rectangle_left + 1;
3631     size.gx_rectangle_bottom = size.gx_rectangle_top + 1;
3632     _gx_system_current_draw_context = 0;
3633     gx_widget_block_move(&widget, &size, 1, 2); //should return GX_INVALID_CANVAS
3634     widget.gx_widget_status |= GX_STATUS_TRANSPARENT;
3635     gx_widget_block_move(&widget, &size, 1, 2); //should return GX_PTR_ERROR
3636 
3637 
3638     gx_widget_border_style_set(0, 1); //should return GX_PTR_ERROR
3639     widget.gx_widget_type = 0;
3640     gx_widget_border_style_set(&widget, 1);//should return GX_INVALID_WIDGET
3641 
3642     gx_widget_border_width_get(&widget, 0); //should return GX_INVALID_WIDGET
3643     widget.gx_widget_type = 0;
3644     gx_widget_border_width_get(&widget, (GX_VALUE *) &color); //should return GX_INVALID_WIDGET
3645     widget.gx_widget_type = GX_TYPE_WIDGET;
3646     widget.gx_widget_style = 0;
3647     gx_widget_border_width_get(&widget, (GX_VALUE *) &color); //should return GX_SUCCESS
3648 
3649     gx_widget_canvas_get(&widget, 0); //should return GX_PTR_ERROR
3650     widget.gx_widget_type = 0;
3651     gx_widget_canvas_get(&widget, &default_context.gx_draw_context_canvas); //should return GX_INVALID_WIDGET
3652     _gx_system_current_draw_context = 0;
3653     memset(&widget, 0, sizeof(GX_WIDGET));
3654     widget.gx_widget_type = GX_TYPE_WIDGET;
3655     gx_widget_canvas_get(&widget, &default_context.gx_draw_context_canvas); //should return GX_SUCCESS
3656 
3657     gx_widget_child_detect(&parent, &widget, 0); //should return GX_PTR_ERROR
3658     status = gx_widget_child_detect(&parent, 0, 0); //child == GX_PTR_ERROR
3659     EXPECT_EQ(GX_PTR_ERROR, status);
3660     parent.gx_widget_type = 0;
3661     gx_widget_child_detect(&parent, &widget, (GX_BOOL *)&color); //should return GX_INVALID_WIDGET
3662     parent.gx_widget_type = GX_TYPE_WIDGET;
3663     widget.gx_widget_type = GX_TYPE_WIDGET;
3664     widget.gx_widget_parent = 0;
3665     gx_widget_child_detect(&parent, &widget, (GX_BOOL *)&color); //should return GX_SUCCESS
3666     parent.gx_widget_type = GX_TYPE_WIDGET;
3667     widget.gx_widget_type = 0;
3668     status = gx_widget_child_detect(&parent, &widget, (GX_BOOL *)&color); //should return GX_SUCCESS
3669     EXPECT_EQ(GX_INVALID_WIDGET, status);
3670 
3671     gx_widget_color_get(&widget, 0, 0); //should return GX_PTR_ERROR
3672     status = gx_widget_color_get(0, 0, &color); // widget == GX_NULL
3673     EXPECT_EQ(GX_PTR_ERROR, status);
3674     widget.gx_widget_type = 0;
3675     gx_widget_color_get(&widget, 0, &color); //should return GX_INVALID_WIDGET
3676     widget.gx_widget_status = 0;
3677     widget.gx_widget_type = GX_TYPE_WIDGET;
3678     gx_widget_color_get(&widget, 0, &color); //should return GX_SUCCESS
3679 
3680     gx_widget_client_get(&widget, 0, 0); //should return GX_PTR_ERROR
3681     widget.gx_widget_type = 0;
3682     gx_widget_client_get(&widget, 0, &size); //should return GX_INVALID_WIDGET
3683     memset(&widget, 0, sizeof(GX_WIDGET));
3684     widget.gx_widget_type = GX_TYPE_WIDGET;
3685     status = gx_widget_client_get(&widget, 10, &size); // border_width > widget_width / 2
3686     EXPECT_EQ(GX_INVALID_VALUE, status);
3687     widget.gx_widget_size.gx_rectangle_right = 32;
3688     widget.gx_widget_size.gx_rectangle_left = 0;
3689     status = gx_widget_client_get(&widget, 10, &size); // border_width > widget_height / 2
3690     EXPECT_EQ(GX_INVALID_VALUE, status);
3691     widget.gx_widget_type = GX_TYPE_WIDGET;
3692     gx_widget_client_get(&widget, 0, &size); //should return GX_SUCCESS
3693 
3694     gx_widget_create(&widget, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3695     widget.gx_widget_type = GX_TYPE_WIDGET;
3696     gx_widget_create(&widget, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3697     widget.gx_widget_type = 0;
3698     parent.gx_widget_type = 0;
3699     gx_widget_create(&widget, 0, &parent, 0, 0, &size); //should return GX_INVALID_WIDGET
3700     _gxe_widget_create(&widget, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3701     memset(&size, 0, sizeof(GX_RECTANGLE));
3702     widget.gx_widget_type = 0;
3703     gx_widget_create(&widget, 0, 0, 0, 0, &size); //should return GX_PTR_ERROR
3704 
3705     gx_widget_created_test(&widget, 0); //should return GX_PTR_ERROR
3706     status = gx_widget_created_test(0, 0); // widget == GX_NULL
3707     EXPECT_EQ(GX_PTR_ERROR, status);
3708 
3709     gx_widget_delete(0); //should return GX_PTR_ERROR
3710     widget.gx_widget_type = 0;
3711     gx_widget_delete(&widget); //should return GX_INVALID_WIDGET
3712     widget.gx_widget_type = GX_TYPE_WIDGET;
3713     _gx_system_memory_free = 0;
3714     widget.gx_widget_style = GX_STYLE_TEXT_COPY | GX_STATUS_DYNAMICALLY_ALLOCATED;
3715     gx_widget_delete(&widget); //should return GX_SYSTEM_MEMORY_ERROR
3716 
3717     gx_widget_detach(&widget); //should return GX_PTR_ERROR
3718     widget.gx_widget_type = 0;
3719     gx_widget_detach(&widget); //should return GX_INVALID_WIDGET
3720 
3721     gx_widget_draw_set(&widget, 0); //should return GX_PTR_ERROR
3722     widget.gx_widget_type = 0;
3723     gx_widget_draw_set(&widget, draw_func); //should return GX_INVALID_WIDGET
3724     widget.gx_widget_type = GX_TYPE_WIDGET;
3725     gx_widget_draw_set(&widget, draw_func); //should return GX_SUCCESS
3726 
3727     gx_widget_event_generate(0, 0, 0); //should return GX_PTR_ERROR
3728     widget.gx_widget_type = 0;
3729     gx_widget_event_generate(&widget, 0, 0); //should return GX_INVALID_WIDGET
3730 
3731     gx_widget_event_process(&widget, 0); //should return GX_PTR_ERROR
3732     widget.gx_widget_type = 0;
3733     widget.gx_widget_parent = 0;
3734     gx_widget_event_process(&widget, &my_event); //should return GX_INVALID_WIDGET
3735 
3736     gx_widget_event_process_set(&widget, 0); //should return GX_PTR_ERROR
3737     widget.gx_widget_type = 0;
3738     gx_widget_event_process_set(&widget, event_process_func); //should return GX_INVALID_WIDGET
3739     widget.gx_widget_type = GX_TYPE_WIDGET;
3740     gx_widget_event_process_set(&widget, event_process_func); //should return GX_SUCCESS
3741 
3742     gx_widget_event_to_parent(&widget, 0); //should return GX_PTR_ERROR
3743     widget.gx_widget_type = 0;
3744     gx_widget_event_to_parent(&widget, &my_event); //should return GX_INVALID_WIDGET
3745     widget.gx_widget_parent = 0;
3746     widget.gx_widget_type = GX_TYPE_WIDGET;
3747     gx_widget_event_to_parent(&widget, &my_event); //should return GX_SUCCESS
3748 
3749     gx_widget_fill_color_set(0, 0, 0, 0); //should return GX_PTR_ERROR
3750     widget.gx_widget_type = 0;
3751     gx_widget_fill_color_set(&widget, 0, 0, 0); //should return GX_INVALID_WIDGET
3752 
3753     gx_widget_find(&parent, 0, 0, 0 );//should return GX_PTR_ERROR
3754     parent.gx_widget_type = 0;
3755     gx_widget_find(&parent, 0, 0, &parent.gx_widget_first_child);//should return GX_INVALID_WIDGET
3756 
3757     gx_widget_focus_next(0); //shoud return GX_PTR_ERROR
3758     widget.gx_widget_type = 0;
3759     gx_widget_focus_next(&widget);//should return GX_INVALID_WIDGET
3760     widget.gx_widget_type = GX_TYPE_WIDGET;
3761     widget.gx_widget_nav_next = 0;
3762     gx_widget_focus_next(&widget);//should return GX_INVALID_WIDGET
3763 
3764     gx_widget_focus_previous(0); //shoud return GX_PTR_ERROR
3765     widget.gx_widget_type = 0;
3766     gx_widget_focus_previous(&widget);//should return GX_INVALID_WIDGET
3767     widget.gx_widget_type = GX_TYPE_WIDGET;
3768     gx_widget_focus_previous(&widget);//should return GX_FAILURE
3769 
3770     gx_widget_font_get(&widget, 0,0); //should return GX_PTR_ERROR
3771     status = gx_widget_font_get(0, 0, &default_context.gx_draw_context_brush.gx_brush_font); // widget == GX_NULL
3772     EXPECT_EQ(GX_PTR_ERROR, status);
3773     widget.gx_widget_type = 0;
3774     gx_widget_font_get(&widget, 0, &default_context.gx_draw_context_brush.gx_brush_font); //should return GX_INVALID_WIDGET
3775 
3776     gx_widget_free(0); //should return GX_PTR_ERROR
3777     _gx_system_memory_free = 0;
3778     gx_widget_free(&widget);//should return GX_SYSTEM_MEMORY_ERROR
3779     _gx_system_memory_free = memory_free;
3780     gx_widget_free(&widget);
3781 
3782     gx_widget_front_move(0, 0); //should return GX_PTR_ERROR
3783     widget.gx_widget_type = 0;
3784     gx_widget_front_move(&widget, 0); //should return GX_INVALID_WIDGET
3785     widget.gx_widget_type = GX_TYPE_WIDGET;
3786     widget.gx_widget_parent = 0;
3787     gx_widget_front_move(&widget, 0); //should return GX_PTR_ERROR
3788 
3789     gx_widget_height_get(&widget, 0); //should return GX_PTR_ERROR
3790     widget.gx_widget_type = 0;
3791     gx_widget_height_get(&widget, (GX_VALUE *)&color); //should return GX_INVALID_WIDGET
3792     widget.gx_widget_type = GX_TYPE_WIDGET;
3793     gx_widget_height_get(&widget, (GX_VALUE *)&color); //should return GX_SUCCESS
3794 
3795     gx_widget_hide(0); //shoud return GX_PTR_ERROR
3796     widget.gx_widget_type = 0;
3797     gx_widget_hide(&widget);//should return GX_INVALID_WIDGET
3798 
3799     gx_widget_pixelmap_get(&widget, 0, 0); //should return GX_PTR_ERROR
3800     status = gx_widget_pixelmap_get(0, 0, &default_context.gx_draw_context_brush.gx_brush_pixelmap); // widget == GX_NULL
3801     EXPECT_EQ(GX_PTR_ERROR, status);
3802     widget.gx_widget_type = 0;
3803     gx_widget_pixelmap_get(&widget, 0, &default_context.gx_draw_context_brush.gx_brush_pixelmap); //should return GX_INVALID_WIDGET
3804 
3805     gx_widget_resize(&widget, 0); //should return GX_PTR_ERROR
3806     widget.gx_widget_type = 0;
3807     gx_widget_resize(&widget, &size);//should return GX_INVALID_WIDGET
3808 
3809     gx_widget_shift(0, 0, 0, 0); //should return GX_PTR_ERROR
3810     widget.gx_widget_type = 0;
3811     gx_widget_shift(&widget, 0, 0, 0);//should return GX_INVALID_WIDGET
3812 
3813     gx_widget_show(0); //shoud return GX_PTR_ERROR
3814     widget.gx_widget_type = 0;
3815     gx_widget_show(&widget);//should return GX_INVALID_WIDGET
3816     widget.gx_widget_type = GX_TYPE_WIDGET;
3817     widget.gx_widget_parent = 0;
3818     gx_widget_show(&widget);//should return GX_INVALID_WIDGET
3819     widget.gx_widget_parent = &parent;
3820     parent.gx_widget_status = 0;
3821     gx_widget_show(&widget);//should return GX_INVALID_WIDGET
3822 
3823     gx_widget_status_add(0, 0); //should return GX_PTR_ERROR
3824     widget.gx_widget_type = 0;
3825     gx_widget_status_add(&widget, 0);//should return GX_INVALID_WIDGET
3826 
3827     gx_widget_status_get(&widget, 0); //should return GX_PTR_ERROR
3828     widget.gx_widget_type = 0;
3829     gx_widget_status_get(&widget, &ulong_data);//should return GX_INVALID_WIDGET
3830     widget.gx_widget_type = GX_TYPE_WIDGET;
3831     gx_widget_status_get(&widget, &ulong_data);//should return GX_SUCCESS
3832 
3833     gx_widget_status_remove(0, 0); //should return GX_PTR_ERROR
3834     widget.gx_widget_type = 0;
3835     gx_widget_status_remove(&widget, 0);//should return GX_INVALID_WIDGET
3836 
3837     gx_widget_status_test(&widget, 0, 0);//should return GX_PTR_ERROR
3838     widget.gx_widget_type = 0;
3839     gx_widget_status_test(&widget, 0, (GX_BOOL *)&ulong_data);//should return GX_INVALID_WIDGET
3840     widget.gx_widget_type = GX_TYPE_WIDGET;
3841     gx_widget_status_test(&widget, 0, (GX_BOOL *)&ulong_data);//should return GX_SUCCESS
3842     widget.gx_widget_status = 1;
3843     gx_widget_status_test(&widget, widget.gx_widget_status, (GX_BOOL *)&ulong_data);//should return GX_SUCCESS
3844 
3845     gx_widget_style_add(0, 0); //should return GX_PTR_ERROR
3846     widget.gx_widget_type = 0;
3847     gx_widget_style_add(&widget, 0); //should return GX_INVALID_WIDGET
3848 
3849     gx_widget_style_get(&widget, 0); //should return GX_PTR_ERROR
3850     widget.gx_widget_type = 0;
3851     gx_widget_style_get(&widget, &ulong_data); //should return GX_INVALID_WIDGET
3852     widget.gx_widget_type = GX_TYPE_WIDGET;
3853     gx_widget_style_get(&widget, &ulong_data); //should return GX_SUCCESS
3854 
3855     gx_widget_style_remove(0, 0); //should return GX_PTR_ERROR
3856     widget.gx_widget_type = 0;
3857     gx_widget_style_remove(&widget, 0); //should return GX_INVALID_WIDGET
3858 
3859     gx_widget_style_set(0, 0); //should return GX_PTR_ERROR
3860     widget.gx_widget_type = 0;
3861     gx_widget_style_set(&widget, 0); //should return GX_INVALID_WIDGET
3862 
3863 #ifdef GX_ENABLED_DEPRECATED_STRING_API
3864     gx_widget_text_blend(0, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
3865     widget.gx_widget_type = 0;
3866     gx_widget_text_blend(&widget, 0, 0, 0, 0, 0, 0); //should return GX_INVALID_WIDGET
3867     widget.gx_widget_type = GX_TYPE_WIDGET;
3868     _gx_system_current_draw_context = &default_context;
3869     memset(&default_context, 0, sizeof(GX_DRAW_CONTEXT));
3870     default_context.gx_draw_context_display = &display;
3871     memset(&display, 0, sizeof(GX_DISPLAY));
3872     gx_widget_text_blend(&widget, 0, 0, 0, 0, 0, 0); //should return GX_SUCCESS
3873     gx_widget_text_blend(&widget, 0, 0, "widget_text_blend", 0, 0, 0); //should return GX_SUCCESS
3874 #endif
3875     status = gx_widget_text_blend_ext(0, 0, 0, 0, 0, 0, 0);//should return GX_PTR_ERROR
3876     EXPECT_EQ(GX_PTR_ERROR, status);
3877 
3878     widget.gx_widget_type = 0;
3879     status = gx_widget_text_blend_ext(&widget, 0, 0, 0, 0, 0, 0); //should return GX_INVALID_WIDGET
3880     EXPECT_EQ(GX_INVALID_WIDGET, status);
3881 
3882     widget.gx_widget_type = GX_TYPE_WIDGET;
3883     string.gx_string_ptr = "test";
3884     string.gx_string_length = strlen(string.gx_string_ptr) + 1;
3885     status = gx_widget_text_blend_ext(&widget, 0, 0, &string, 0, 0, 0);
3886     EXPECT_EQ(GX_INVALID_STRING_LENGTH, status);
3887 
3888     string.gx_string_length = strlen(string.gx_string_ptr) - 1;
3889     status = gx_widget_text_blend_ext(&widget, 0, 0, &string, 0, 0, 0);
3890     EXPECT_EQ(GX_INVALID_STRING_LENGTH, status);
3891 
3892     string.gx_string_ptr = GX_NULL;
3893     status = gx_widget_text_blend_ext(&widget, 0, 0, &string, 0, 0, 0);
3894     EXPECT_EQ(GX_INVALID_STRING_LENGTH, status);
3895 
3896     gx_widget_type_find(&parent, 0, 0); //should return GX_PTR_ERROR
3897     parent.gx_widget_type = 0;
3898     gx_widget_type_find(&parent, 0, &parent.gx_widget_first_child); //should return GX_INVALID_WIDGET
3899     parent.gx_widget_type = GX_TYPE_WINDOW;
3900     gx_widget_type_find(&parent, 0, &widget_ptr); //should return GX_INVALID_WIDGET
3901 
3902     gx_widget_width_get(&widget, 0); //should return GX_PTR_ERROR
3903     widget.gx_widget_type = 0;
3904     gx_widget_width_get(&widget, (GX_VALUE *)&color);//should return GX_INVALID_WIDGET
3905 
3906     /* window */
3907     printf("window\n");
3908     memset(&window, 0, sizeof(GX_WINDOW));
3909     gx_window_client_height_get(&window, 0); //should return GX_PTR_ERROR
3910     window.gx_widget_type = 0;
3911     gx_window_client_height_get(&window, (GX_VALUE *)&color);//should return GX_INVALID_WIDGET
3912     window.gx_widget_type = GX_TYPE_WINDOW;
3913     gx_window_client_height_get(&window, (GX_VALUE *)&color);//should return GX_INVALID_WIDGET
3914 
3915     gx_window_client_scroll(0, 0, 0); //should return GX_PTR_ERROR
3916     window.gx_widget_type = 0;
3917     gx_window_client_scroll(&window, 0, 0); //should return GX_INVALID_WIDGET
3918     window.gx_widget_type = GX_TYPE_WINDOW;
3919     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
3920     scrollbar.gx_widget_type = GX_TYPE_VERTICAL_SCROLL;
3921     scrollbar.gx_widget_status = GX_STATUS_NONCLIENT;
3922     window.gx_widget_first_child = (GX_WIDGET *)&scrollbar;
3923     gx_window_client_scroll(&window, 1, 1); //should return GX_INVALID_VALUE
3924     scrollbar.gx_scrollbar_info.gx_scroll_maximum = 100;
3925     scrollbar.gx_scrollbar_info.gx_scroll_minimum  = 50;
3926     scrollbar.gx_scrollbar_info.gx_scroll_value  = 0;
3927     gx_window_client_scroll(&window, 1, 1); //should return GX_INVALID_VALUE
3928 
3929     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
3930     scrollbar.gx_widget_type = GX_TYPE_HORIZONTAL_SCROLL;
3931     scrollbar.gx_widget_status = GX_STATUS_NONCLIENT;
3932     window.gx_widget_first_child = (GX_WIDGET *)&scrollbar;
3933     gx_window_client_scroll(&window, 1, 1); //should return GX_INVALID_VALUE
3934     scrollbar.gx_scrollbar_info.gx_scroll_maximum = 100;
3935     scrollbar.gx_scrollbar_info.gx_scroll_minimum  = 50;
3936     scrollbar.gx_scrollbar_info.gx_scroll_value  = 0;
3937     gx_window_client_scroll(&window, 1, 1); //should return GX_INVALID_VALUE
3938     memset(&scrollbar, 0, sizeof(GX_SCROLLBAR));
3939     memset(&window, 0, sizeof(GX_WINDOW));
3940     window.gx_widget_type = GX_TYPE_WINDOW;
3941     gx_window_client_scroll(&window, -1, -1); //should return GX_SUCCESS
3942 
3943     gx_window_client_width_get(&window, 0); //should return GX_PTR_ERROR
3944     window.gx_widget_type = 0;
3945     gx_window_client_width_get(&window, (GX_VALUE *)&color);//should return GX_INVALID_WIDGET
3946     window.gx_widget_type = GX_TYPE_WINDOW;
3947     gx_window_client_width_get(&window, (GX_VALUE *)&color);//should return GX_INVALID_WIDGET
3948 
3949     gx_window_close(0); //should return GX_PTR_ERROR
3950     window.gx_widget_type = 0;
3951     gx_window_close(&window);//should return GX_INVALID_WIDGET
3952 
3953     gx_window_create(&window, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3954     window.gx_widget_type = GX_TYPE_WINDOW;
3955     gx_window_create(&window, 0, 0, 0, 0, &size); //should return GX_ALREADY_CREATED
3956     window.gx_widget_type = 0;
3957     _gxe_window_create(&window, 0, 0, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3958     parent.gx_widget_type = 0;
3959     gx_window_create(&window, 0, &parent, 0, 0, &size); //should return GX_INVALID_WIDGET
3960 
3961     gx_window_event_process(&window, 0); //should return GX_PTR_ERROR
3962     window.gx_widget_type = 0;
3963     window.gx_widget_parent = 0;
3964     gx_window_event_process(&window, &my_event); //should return GX_INVALID_WIDGET
3965 
3966     gx_window_execute(0, 0); //should return GX_PTR_ERROR
3967     window.gx_widget_type = 0;
3968     gx_window_execute(&window, 0); //should return GX_INVALID_WIDGET
3969 
3970     /* window root */
3971     printf("window root\n");
3972     memset(&window_root, 0, sizeof(GX_WINDOW_ROOT));
3973     gx_window_root_create(&window_root, 0, 0, 0, 0, 0); //should return GX_PTR_ERROR
3974     gx_window_root_create(&window_root, 0, 0, 0, 0, &size); //should return GX_PTR_ERROR
3975     _gxe_window_root_create(&window_root, 0, &canvas, 0, 0, &size, 0); //should return GX_INVALID_SIZE
3976     window_root.gx_widget_type = GX_TYPE_ROOT_WINDOW;
3977     gx_window_root_create(&window_root, 0, &canvas, 0, 0, &size); //should return GX_ALREADY_CREATED
3978 
3979     gx_window_root_delete(0); //should return GX_PTR_ERROR
3980     window_root.gx_widget_type = 0;
3981     gx_window_root_delete(&window_root); //should return GX_INVALID_WIDGET
3982     window_root.gx_widget_type = GX_TYPE_ROOT_WINDOW;
3983     window_root.gx_widget_style = GX_STYLE_TEXT_COPY | GX_STATUS_DYNAMICALLY_ALLOCATED;
3984     _gx_system_memory_free = 0;
3985     gx_window_root_delete(&window_root); //should return GX_SYSTEM_MEMORY_ERROR
3986     _gx_system_memory_free = memory_free;
3987     window_root.gx_widget_event_process_function = widget_event_process_function;
3988     status = gx_window_root_delete(&window_root);
3989     EXPECT_EQ(GX_SUCCESS, status);
3990 
3991     gx_window_root_event_process(&window_root, 0); //should return GX_PTR_ERROR
3992     my_event.gx_event_type = 0;
3993     window_root.gx_widget_parent = 0;
3994     gx_window_root_event_process(&window_root, &my_event); //should return GX_PTR_ERROR
3995 
3996     gx_window_root_find(&widget, (GX_WINDOW_ROOT **)&widget.gx_widget_parent);//should return GX_INVALID_WIDGET
3997     gx_window_root_find(&widget, 0); //should return GX_PTR_ERROR
3998 
3999     gx_window_scroll_info_get(&window, 0, 0); //should return GX_PTR_ERROR
4000     window.gx_widget_type = 0;
4001     gx_window_scroll_info_get(&window, 0, &scroll_info); //should return GX_INVALID_WIDGET
4002     window.gx_widget_type = GX_TYPE_WINDOW;
4003     gx_window_scroll_info_get(&window, 0, &scroll_info); //should return GX_INVALID_TYPE
4004     status = gx_window_scroll_info_get(&window, GX_SCROLLBAR_HORIZONTAL, &scroll_info);
4005     EXPECT_EQ(GX_SUCCESS, status);
4006     status = gx_window_scroll_info_get(&window, GX_SCROLLBAR_VERTICAL, &scroll_info);
4007     EXPECT_EQ(GX_SUCCESS, status);
4008 
4009     gx_window_scrollbar_find(&window, 0, 0); //should return GX_PTR_ERROR
4010     window.gx_widget_type = 0;
4011     gx_window_scrollbar_find(&window, 0, (GX_SCROLLBAR **)&window.gx_widget_first_child); //should return GX_INVALID_WIDGET
4012     window.gx_widget_type = GX_TYPE_WINDOW;
4013     gx_window_scrollbar_find(&window, 0, (GX_SCROLLBAR **)&window.gx_widget_first_child); //should return GX_INVALID_TYPE
4014 
4015     gx_window_wallpaper_get(&window, 0);//should return GX_PTR_ERROR
4016     window.gx_widget_type = 0;
4017     gx_window_wallpaper_get(&window, &ulong_data); //should return GX_INVALID_WIDGET
4018     window.gx_widget_type = GX_TYPE_WINDOW;
4019     gx_window_wallpaper_get(&window, &ulong_data); //should return GX_SUCCESS
4020 
4021     gx_window_wallpaper_set(0, 0, 0);//should return GX_PTR_ERROR
4022     window.gx_widget_type = 0;
4023     gx_window_wallpaper_set(&window, 0, 0);//should return GX_INVALID_WIDGET
4024 
4025 #ifdef GX_ENABLE_DEPRECATED_STRING_API
4026     status = gx_widget_string_get(GX_NULL, 0, GX_NULL); // return_string == GX_NULL
4027     EXPECT_EQ(GX_PTR_ERROR, status);
4028     status = gx_widget_string_get(GX_NULL, 0, (VOID *)0x01); // widget == GX_NULL
4029     EXPECT_EQ(GX_PTR_ERROR, status);
4030     widget.gx_widget_type = 0;
4031     status = gx_widget_string_get(&widget, 0, (VOID *)0x01); // gx_widget_type == 0
4032     EXPECT_EQ(GX_INVALID_WIDGET, status);
4033     widget.gx_widget_type = 1;
4034     gx_widget_status_remove(&widget, GX_STATUS_VISIBLE);
4035     status = gx_widget_string_get(&widget, 0, (GX_CONST GX_CHAR **)&buffer); // widget is invisible
4036     EXPECT_EQ(GX_INVALID_CANVAS, status);
4037     gx_widget_status_add(&widget, GX_STATUS_VISIBLE);
4038     gx_widget_string_get(&widget, 0, (GX_CONST GX_CHAR **)&buffer);
4039 #endif
4040     status = gx_widget_string_get_ext(GX_NULL, 0, GX_NULL); // return_string == GX_NULL
4041     EXPECT_EQ(GX_PTR_ERROR, status);
4042     status = gx_widget_string_get_ext(GX_NULL, 0, (VOID *)0x01); // widget == GX_NULL
4043     EXPECT_EQ(GX_PTR_ERROR, status);
4044     widget.gx_widget_type = 0;
4045     status = gx_widget_string_get_ext(&widget, 0, (VOID *)0x01); // gx_widget_type == 0
4046     EXPECT_EQ(GX_INVALID_WIDGET, status);
4047     widget.gx_widget_type = 1;
4048     gx_widget_status_remove(&widget, GX_STATUS_VISIBLE);
4049     status = gx_widget_string_get_ext(&widget, 0, &string); // widget is invisible
4050     EXPECT_EQ(GX_INVALID_CANVAS, status);
4051 
4052 #ifdef GX_UTF8_SUPPORT
4053 
4054     /* Tests for unicode_to_utf8 */
4055 
4056     /* unicode < 0x80 */
4057     _gx_utility_unicode_to_utf8(0x0, return_utf8_str, &return_utf8_size);
4058 
4059     /* unicode < 0x800 */
4060     _gx_utility_unicode_to_utf8(0x81, return_utf8_str, &return_utf8_size);
4061 
4062     /* unicode < 0x10000 */
4063     _gx_utility_unicode_to_utf8(0x801, return_utf8_str, &return_utf8_size);
4064 
4065     _gx_utility_unicode_to_utf8(0x8001, return_utf8_str, &return_utf8_size);
4066 
4067     /* unicode < 0x200000 */
4068     _gx_utility_unicode_to_utf8(0x10001, return_utf8_str, &return_utf8_size);
4069 
4070     _gx_utility_unicode_to_utf8(0x100001, return_utf8_str, &return_utf8_size);
4071 
4072     /* unicode < 0x4000000 */
4073     _gx_utility_unicode_to_utf8(0x200001, return_utf8_str, &return_utf8_size);
4074 
4075     _gx_utility_unicode_to_utf8(0x2000001, return_utf8_str, &return_utf8_size);
4076 
4077     /* unicode > 0x4000000 */
4078     _gx_utility_unicode_to_utf8(0x4000001, return_utf8_str, &return_utf8_size);
4079 
4080     buffer_ptr = buffer;
4081     buffer[0] = (CHAR)0xef;
4082     buffer[1] = (CHAR)0xbb;
4083     buffer[2] = (CHAR)0xbf;
4084     string.gx_string_ptr = buffer_ptr;
4085     string.gx_string_length = 3;
4086     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4087 
4088     buffer_ptr = buffer;
4089     buffer[0] = (CHAR)0xef;
4090     buffer[1] = (CHAR)0xbb;
4091     buffer[2] = (CHAR)0x0;
4092     string.gx_string_ptr = buffer_ptr;
4093     string.gx_string_length = 3;
4094     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4095 
4096     memset(buffer, 0, 4);
4097     buffer_ptr = buffer;
4098     buffer[0] = (CHAR)0xf0;
4099     string.gx_string_ptr = buffer_ptr;
4100     string.gx_string_length = 4;
4101     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4102 
4103     memset(buffer, 0, 4);
4104     buffer_ptr = buffer;
4105     buffer[0] = (CHAR)0xe0;
4106     string.gx_string_ptr = buffer_ptr;
4107     string.gx_string_length = 4;
4108     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4109 
4110     memset(buffer, 0, 4);
4111     buffer_ptr = buffer;
4112     buffer[0] = (CHAR)0xa0;
4113     string.gx_string_ptr = buffer_ptr;
4114     string.gx_string_length = 4;
4115     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4116 
4117     memset(buffer, 0, 4);
4118     buffer_ptr = buffer;
4119     buffer[0] = (CHAR)0xb0;
4120     string.gx_string_ptr = buffer_ptr;
4121     string.gx_string_length = 4;
4122     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4123 
4124     memset(buffer, 0, 4);
4125     buffer_ptr = buffer;
4126     buffer[0] = (CHAR)0x80;
4127     string.gx_string_ptr = buffer_ptr;
4128     string.gx_string_length = 4;
4129     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4130 
4131     memset(buffer, 0, 4);
4132     buffer_ptr = buffer;
4133     buffer[0] = (CHAR)0x40;
4134     string.gx_string_ptr = buffer_ptr;
4135     string.gx_string_length = 4;
4136     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4137 
4138     memset(buffer, 0, 4);
4139     buffer_ptr = buffer;
4140     buffer[0] = (CHAR)0x20;
4141     string.gx_string_ptr = buffer_ptr;
4142     string.gx_string_length = 4;
4143     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4144 
4145     memset(buffer, 0, 5);
4146     buffer_ptr = buffer;
4147     buffer[0] = (CHAR)0xf8;
4148     string.gx_string_ptr = buffer_ptr;
4149     string.gx_string_length = 5;
4150     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4151 
4152     memset(buffer, 0, 6);
4153     buffer_ptr = buffer;
4154     buffer[0] = (CHAR)0xfc;
4155     string.gx_string_ptr = buffer_ptr;
4156     string.gx_string_length = 6;
4157     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4158 
4159     memset(buffer, 0, 6);
4160     buffer_ptr = buffer;
4161     buffer[0] = (CHAR)0xff;
4162     string.gx_string_ptr = buffer_ptr;
4163     string.gx_string_length = 6;
4164     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4165 
4166     memset(buffer, 0, 6);
4167     buffer_ptr = buffer;
4168     buffer[0] = (CHAR)0xff;
4169     string.gx_string_ptr = buffer_ptr;
4170     string.gx_string_length = 6;
4171     _gx_utility_utf8_string_character_get(&string, &glyph_value, &character_count);
4172 
4173     memset(buffer, 0, 6);
4174     buffer_ptr = buffer;
4175     buffer[0] = (CHAR)0xff;
4176     string.gx_string_ptr = buffer_ptr;
4177     string.gx_string_length = 6;
4178     _gx_utility_utf8_string_character_get(&string, &glyph_value, &character_count);
4179 
4180     /* bytes < bytes_count */
4181     memset(buffer, 0, 5);
4182     buffer_ptr = buffer;
4183     buffer[0] = (CHAR)0xfc;
4184     string.gx_string_ptr = buffer_ptr;
4185     string.gx_string_length = 5;
4186     _gx_utility_utf8_string_character_get(&string, GX_NULL, GX_NULL);
4187 
4188     /* bytes < bytes_count */
4189     memset(buffer, 0, 5);
4190     buffer_ptr = buffer;
4191     buffer[0] = (CHAR)0xfc;
4192     string.gx_string_ptr = buffer_ptr;
4193     string.gx_string_length = 5;
4194     _gx_utility_utf8_string_character_get(&string, &glyph_value, &character_count);
4195 
4196     /* bytes < bytes_count */
4197     memset(buffer, 0, 5);
4198     buffer_ptr = buffer;
4199     buffer[0] = (CHAR)0xc0;
4200     buffer[1] = (CHAR)0x1;
4201     string.gx_string_ptr = buffer_ptr;
4202     string.gx_string_length = 5;
4203     _gx_utility_utf8_string_character_get(&string, &glyph_value, &character_count);
4204 
4205     string.gx_string_ptr = buffer_ptr;
4206     string.gx_string_length = 0;
4207     status = _gx_utility_utf8_string_character_get(&string, &glyph_value, &character_count);
4208     EXPECT_EQ(GX_INVALID_VALUE, status);
4209 
4210     display.gx_display_driver_row_pitch_get = display_driver_row_pitch_get;
4211     status = gx_canvas_create(&canvas, "aaa", &display, 0, 0, 0, 0, 0);
4212     EXPECT_EQ(GX_SUCCESS, status);
4213 
4214     gx_widget_status_remove(&widget, GX_STATUS_VISIBLE);
4215     _gx_multi_line_text_view_display_info_get((GX_MULTI_LINE_TEXT_VIEW *)&widget, 0, 0, &text_info, 0);
4216 
4217     _gx_system_active_timer_list = 0;
4218     _gx_system_animation_list = 0;
4219     _gx_system_timer_expiration(0); // no timers
4220 
4221     status = _gx_system_timer_start(0, 0, 0, 0); // owner is NULL
4222     EXPECT_EQ(GX_PTR_ERROR, status);
4223     _gx_system_free_timer_list = 0;
4224     status = _gx_system_timer_start(&widget, 0, 0, 0); // Unavailable to own a timer.
4225     EXPECT_EQ(GX_OUT_OF_TIMERS, status);
4226 
4227     _gx_system_root_window_created_list = &window_root;
4228     window_root.gx_widget_status |= GX_STATUS_VISIBLE;
4229     window_root.gx_widget_next = 0;
4230     my_event.gx_event_display_handle = 0;
4231     window_root.gx_window_root_canvas = &canvas;
4232     canvas.gx_canvas_display = &display;
4233     display.gx_display_driver_data = buffer;
4234     _gx_system_top_root_find(&my_event);
4235 
4236     _tx_thread_system_state = 1;
4237     tx_mutex_get(&_gx_system_protect, TX_WAIT_FOREVER);
4238     _gx_system_lock();
4239     tx_mutex_put(&_gx_system_protect);
4240     _tx_thread_system_state = 0;
4241 
4242     _gx_system_thread.tx_thread_state = 1;
4243     _gx_system_thread.tx_thread_delayed_suspend = 0;
4244     status = _gx_system_start();
4245     EXPECT_EQ(GX_SYSTEM_ERROR, status);
4246 
4247     parent.gx_widget_last_child = &widget;
4248     widget.gx_widget_previous = 0;
4249     gx_widget_status_add(&widget, GX_STATUS_VISIBLE);
4250     _gx_system_top_widget_find(&parent, point, 0);
4251 
4252     string_scroll_wheel.gx_string_scroll_wheel_string_list = 0;
4253     string_scroll_wheel.gx_scroll_wheel_total_rows = 2;
4254     _gx_string_scroll_wheel_text_get(&string_scroll_wheel, 4, &string);
4255 
4256     /* VERTICAL_SCROLL is found. */
4257     window.gx_widget_type = 1;
4258     window.gx_widget_first_child = (GX_WIDGET *)&scrollbar;
4259     scrollbar.gx_widget_type = GX_TYPE_VERTICAL_SCROLL;
4260     scrollbar.gx_widget_next = 0;
4261     scrollbar.gx_scrollbar_info.gx_scroll_maximum = 5;
4262     scrollbar.gx_scrollbar_info.gx_scroll_minimum = 2;
4263     scrollbar.gx_scrollbar_info.gx_scroll_value = 0;
4264     gx_widget_status_add(&scrollbar, GX_STATUS_NONCLIENT);
4265     status = gx_window_client_scroll(&window, 3, 3);
4266     EXPECT_EQ(GX_SUCCESS, status);
4267 
4268     /* HORIZONTAL_SCROLL is found. */
4269     scrollbar.gx_widget_type = GX_TYPE_HORIZONTAL_SCROLL;
4270     status = gx_window_client_scroll(&window, 3, 3);
4271     EXPECT_EQ(GX_SUCCESS, status);
4272 
4273 #endif /* GX_UTF8_SUPPORT */
4274 
4275     // should we test draw functions here? Because draw function will not return error.
4276     /* draw functions
4277     gx_display_create(&display, "linux_display", gx_validation_display_driver_setup_24xrgb, 0, 0); //create display
4278 
4279     // draw functions
4280     gx_accordion_menu_draw(&accordion_menu); // draw
4281     gx_button_background_draw(&button);
4282     gx_button_draw(&button);
4283     gx_checkbox_draw(&checkbox);
4284     gx_circular_gauge_background_draw(&circular_gauge);
4285     gx_circular_gauge_draw(&circular_gauge);
4286     gx_icon_background_draw(&icon);
4287     gx_icon_button_draw(&icon_button);
4288     gx_icon_draw(&icon);
4289     gx_line_chart_axis_draw(&line_chart);
4290     gx_line_chart_data_draw(&line_chart);
4291     gx_line_chart_draw(&line_chart);
4292     gx_menu_draw(&menu);
4293     gx_menu_text_draw(&menu);
4294     gx_multi_line_text_button_draw(&multi_line_text_button);
4295     gx_multi_line_text_button_text_draw(&multi_line_text_button);
4296     gx_multi_line_text_view_draw(&multi_line_text_view);
4297     gx_pixelmap_button_draw(&pixelmap_button);
4298     gx_pixelmap_prompt_draw(&pixelmap_prompt);
4299     gx_pixelmap_slider_draw(&pixelmap_slider);
4300     gx_progress_bar_background_draw(&progress_bar);
4301     gx_progress_bar_draw(&progress_bar);
4302     gx_progress_bar_text_draw(&progress_bar);
4303     gx_prompt_draw(&prompt);
4304     gx_prompt_text_draw(&prompt);
4305     gx_radial_progress_bar_background_draw(&radial_progress_bar);
4306     gx_radial_progress_bar_draw(&radial_progress_bar);
4307     gx_radial_progress_bar_text_draw(&radial_progress_bar);
4308     gx_radio_button_draw(&radio_button);
4309     gx_scroll_thumb_draw(&scroll_thumb);
4310     gx_scrollbar_draw(&scrollbar);
4311     gx_single_line_text_input_draw(&single_line_text_input);
4312     gx_slider_draw(&slider);
4313     gx_slider_needle_draw(&slider);
4314     gx_slider_tickmarks_draw(&slider);
4315     gx_text_button_draw(&text_button);
4316     gx_text_button_text_draw(&text_button);
4317     gx_text_scroll_wheel_draw(&text_scroll_wheel);
4318     gx_tree_view_draw(&tree_view);
4319     gx_widget_background_draw(&widget);
4320     gx_widget_border_draw(&widget, 0, 0, 0, 0);
4321     gx_widget_children_draw(&widget);
4322     gx_widget_draw(&widget);
4323     gx_widget_text_draw(&widget, 0, 0, 0, 0, 0);
4324     gx_widget_text_id_draw(&widget, 0, 0, 0, 0, 0);
4325     gx_window_background_draw(&window);
4326     gx_window_draw(&window);
4327 
4328 
4329     gx_canvas_delete()
4330     gx_display_delete(&display, gx_validation_graphics_driver_cleanup_24xrgb);//delete display
4331 
4332     */
4333     gx_display_delete(&default_display, gx_validation_graphics_driver_cleanup_24xrgb);//delete default display
4334 
4335     if(failed_tests == 0)
4336     {
4337         gx_validation_print_test_result(TEST_SUCCESS);
4338         exit(0);
4339     }
4340     else
4341     {
4342         gx_validation_print_test_result(TEST_FAIL);
4343         exit(1);
4344     }
4345 }
4346 #endif
4347 
4348 
4349