tests: Silence compiler warnings.
[platform/upstream/evolution-data-server.git] / tests / libecal / client / test-client-stress-views.c
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2
3 #include <stdlib.h>
4 #include <libecal/libecal.h>
5
6 #include "client-test-utils.h"
7
8 #define NUM_VIEWS 200
9
10 #if 0  /* ACCOUNT_MGMT */
11 static void
12 objects_added (ECalClientView *cal_view,
13                const GSList *objects)
14 {
15         const GSList *l;
16
17         for (l = objects; l; l = l->next) {
18                 print_icomp (l->data);
19         }
20 }
21
22 static void
23 objects_removed (ECalClientView *view,
24                  const GSList *ids)
25 {
26         const GSList *l;
27
28         for (l = ids; l; l = l->next) {
29                 printf ("   Removed contact: %s\n", (gchar *) l->data);
30         }
31 }
32
33 static void
34 complete (ECalClientView *view,
35           const GError *error)
36 {
37         printf ("view_complete (status == %d, error_msg == %s%s%s)\n", error ? error->code : 0, error ? "'" : "", error ? error->message : "NULL", error ? "'" : "");
38 }
39
40 static gint
41 stress_cal_views (ECalClient *cal_client,
42                   gboolean in_thread)
43 {
44         ECalClientView *view = NULL;
45         ECalClientView *new_view;
46         gint i;
47
48         g_return_val_if_fail (cal_client != NULL, -1);
49         g_return_val_if_fail (E_IS_CAL_CLIENT (cal_client), -1);
50
51         for (i = 0; i < NUM_VIEWS; i++) {
52                 GError *error = NULL;
53
54                 if (!e_cal_client_get_view_sync (cal_client, "#t", &new_view, NULL, &error)) {
55                         report_error ("get cal view sync", &error);
56                         g_object_unref (view);
57                         return 1;
58                 }
59
60                 g_signal_connect (new_view, "objects_added", G_CALLBACK (objects_added), NULL);
61                 g_signal_connect (new_view, "objects_removed", G_CALLBACK (objects_removed), NULL);
62                 g_signal_connect (new_view, "complete", G_CALLBACK (complete), NULL);
63
64                 e_cal_client_view_start (new_view, NULL);
65
66                 if (view) {
67                         /* wait 100 ms when in a thread */
68                         if (in_thread)
69                                 g_usleep (100000);
70
71                         e_cal_client_view_stop (view, NULL);
72                         g_object_unref (view);
73                 }
74
75                 view = new_view;
76         }
77
78         e_cal_client_view_stop (view, NULL);
79         g_object_unref (view);
80
81         return 0;
82 }
83
84 static gpointer
85 stress_cal_views_thread (gpointer user_data)
86 {
87         stop_main_loop (stress_cal_views (user_data, TRUE));
88
89         return NULL;
90 }
91 #endif /* ACCOUNT_MGMT */
92
93 gint
94 main (gint argc,
95       gchar **argv)
96 {
97 #if 0  /* ACCOUNT_MGMT */
98         ECalClient *cal_client;
99         GError *error = NULL;
100
101         main_initialize ();
102
103         cal_client = e_cal_client_new_system (E_CAL_CLIENT_SOURCE_TYPE_EVENTS, &error);
104         if (!cal_client) {
105                 report_error ("create local calendar", &error);
106                 return 1;
107         }
108
109         if (!e_client_open_sync (E_CLIENT (cal_client), FALSE, NULL, &error)) {
110                 g_object_unref (cal_client);
111                 report_error ("open client sync", &error);
112                 return 1;
113         }
114
115         /* test from main thread */
116         stress_cal_views (cal_client, FALSE);
117
118         /* test from dedicated thread */
119         start_in_thread_with_main_loop (stress_cal_views_thread, cal_client);
120
121         g_object_unref (cal_client);
122
123         return get_main_loop_stop_result ();
124 #endif /* ACCOUNT_MGMT */
125
126         return 0;
127 }