Changeset 108
- Timestamp:
- 03/03/06 18:52:18 (3 years ago)
- Files:
-
- branches/development-branch/libsyncml/sml_queue.c (modified) (2 diffs)
- branches/development-branch/libsyncml/sml_support.c (modified) (2 diffs)
- branches/development-branch/libsyncml/sml_transport.c (modified) (4 diffs)
- branches/development-branch/libsyncml/transports/http_client.c (modified) (1 diff)
- branches/development-branch/libsyncml/transports/http_server.c (modified) (4 diffs)
- branches/development-branch/tests/check_ds.c (modified) (2 diffs)
- branches/development-branch/tests/check_http.c (modified) (31 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/development-branch/libsyncml/sml_queue.c
r101 r108 28 28 static gboolean _queue_prepare(GSource *source, gint *timeout_) 29 29 { 30 *timeout_ = 50;30 *timeout_ = 1; 31 31 return FALSE; 32 32 } … … 63 63 smlAssert(queue->handler); 64 64 65 smlQueueDispatch(queue); 65 while (smlQueueCheck(queue)) 66 smlQueueDispatch(queue); 66 67 67 68 return TRUE; branches/development-branch/libsyncml/sml_support.c
r101 r108 365 365 //Start the thread 366 366 g_mutex_lock(thread->started_mutex); 367 /*GSource *idle = g_idle_source_new();368 g_source_set_callback(idle, smlThreadStartCallback, thread, NULL);369 g_source_attach(idle, thread->context);370 thread->thread = g_thread_create ((GThreadFunc)g_main_loop_run, thread->loop, TRUE, NULL);371 g_cond_wait(thread->started, thread->started_mutex);*/372 367 thread->thread = g_thread_create (smlThreadStartCallback, thread, TRUE, NULL); 373 368 g_cond_wait(thread->started, thread->started_mutex); … … 384 379 g_main_loop_quit(thread->loop); 385 380 g_thread_join(thread->thread); 381 thread->thread = NULL; 386 382 387 383 smlTrace(TRACE_EXIT, "%s", __func__); branches/development-branch/libsyncml/sml_transport.c
r101 r108 94 94 if (!tsp->functions.connect) { 95 95 smlTransportReceiveEvent(tsp, NULL, SML_TRANSPORT_EVENT_CONNECT_DONE, NULL, NULL); 96 smlTrace(TRACE_INTERNAL, "%s: No disconnect function", __func__);96 smlTrace(TRACE_INTERNAL, "%s: No connect function", __func__); 97 97 break; 98 98 } … … 188 188 tsp->thread = NULL; 189 189 190 g_main_context_unref(tsp->context); 191 tsp->context = NULL; 192 190 193 smlTrace(TRACE_EXIT, "%s", __func__); 191 194 } … … 290 293 g_free(data); 291 294 292 smlTrace(TRACE_EXIT, "%s ", __func__);295 smlTrace(TRACE_EXIT, "%s: Freed", __func__); 293 296 } 294 297 … … 403 406 g_free(link); 404 407 405 smlTrace(TRACE_EXIT, "%s ", __func__);408 smlTrace(TRACE_EXIT, "%s: Freed", __func__); 406 409 } 407 410 branches/development-branch/libsyncml/transports/http_client.c
r101 r108 156 156 157 157 smlAssert(env->tsp); 158 159 g_object_unref(env->session); 158 160 159 161 g_free(env->url); branches/development-branch/libsyncml/transports/http_server.c
r101 r108 100 100 smlTransportReceiveEvent(env->tsp, link, SML_TRANSPORT_EVENT_DATA, tspdata, NULL); 101 101 102 smlLinkDeref(link); 103 smlTransportDataDeref(tspdata); 104 102 105 soup_message_io_pause(msg); 103 106 … … 141 144 if (!(config->port > 0 && config->port < 65535)) { 142 145 smlErrorSet(error, SML_ERROR_MISCONFIGURATION, "specified port was wrong"); 143 goto error ;146 goto error_free_env; 144 147 } 145 148 env->port = config->port; … … 149 152 env->interface = g_strdup(config->interface); 150 153 151 smlTrace(TRACE_INTERNAL, "config: port %i, url %s, inte face %s", config->port, config->url, config->interface);154 smlTrace(TRACE_INTERNAL, "config: port %i, url %s, interface %s", config->port, config->url, config->interface); 152 155 153 156 env->tsp = tsp; … … 182 185 183 186 smlAssert(env->tsp); 187 188 soup_server_quit(env->server); 189 g_object_unref(env->server); 184 190 185 191 g_free(env->url); branches/development-branch/tests/check_ds.c
r101 r108 1952 1952 END_TEST 1953 1953 1954 #if 0 1955 /* C -- Put, Alert --> S 1956 * S -- Status, Put, Alert --> C 1957 * C -- Status, Sync, 500 * Add --> S 1958 * S -- Status, Sync, 500 * Add --> S 1959 * C -- Status, Map --> S 1960 * S -- Status --> C */ 1961 /* Limit the sending size of both sides */ 1962 START_TEST (check_ds_multi_server) 1963 { 1964 int num = 50; 1965 unsigned int limit = 2000; 1966 1967 /* General setup */ 1968 setup_testbed(NULL); 1969 1970 SmlError *error = NULL; 1971 SmlLocation *loc = smlLocationNew("test", NULL, &error); 1972 1973 SmlLocation *loc1 = smlLocationNew("vcards", NULL, &error); 1974 SmlLocation *loc2 = smlLocationNew("vcals", NULL, &error); 1975 SmlLocation *loc3 = smlLocationNew("vnotes", NULL, &error); 1976 1977 /* The ds clients */ 1978 SmlDsServer *client1 = smlDsClientNew(SML_CONTENT_TYPE_VCARD, loc1, loc1, &error); 1979 _server_corr *client_corr1 = g_malloc0(sizeof(_server_corr)); 1980 client_corr1->server = client1; 1981 1982 SmlDsServer *client2 = smlDsClientNew(SML_CONTENT_TYPE_VCARD, loc2, loc2, &error); 1983 _server_corr *client_corr2 = g_malloc0(sizeof(_server_corr)); 1984 client_corr2->server = client2; 1985 1986 SmlDsServer *client3 = smlDsClientNew(SML_CONTENT_TYPE_VCARD, loc3, loc3, &error); 1987 _server_corr *client_corr3 = g_malloc0(sizeof(_server_corr)); 1988 client_corr3->server = client3; 1989 1990 /* The ds servers */ 1991 SmlDsServer *server1 = smlDsServerNew(SML_CONTENT_TYPE_VCARD, loc1, &error); 1992 _server_corr *server_corr1 = g_malloc0(sizeof(_server_corr)); 1993 server_corr1->server = server1; 1994 smlDsServerSetConnectCallback(server1, _recv_init_alert, server_corr1); 1995 1996 SmlDsServer *server2 = smlDsServerNew(SML_CONTENT_TYPE_VCARD, loc2, &error); 1997 _server_corr *server_corr2 = g_malloc0(sizeof(_server_corr)); 1998 server_corr2->server = server2; 1999 smlDsServerSetConnectCallback(server2, _recv_init_alert, server_corr2); 2000 2001 SmlDsServer *server3 = smlDsServerNew(SML_CONTENT_TYPE_VCARD, loc3, &error); 2002 _server_corr *server_corr3 = g_malloc0(sizeof(_server_corr)); 2003 server_corr3->server = server3; 2004 smlDsServerSetConnectCallback(server3, _recv_init_alert, server_corr3); 2005 2006 2007 /* Start a new session from the client */ 2008 SmlSession *session = smlSessionNew(SML_SESSION_TYPE_CLIENT, SML_MIMETYPE_XML, SML_VERSION_12, SML_PROTOCOL_SYNCML, loc, loc, "1", 0, &error); 2009 client_corr1->thread = smlSessionRunAsync(session, &to_session); 2010 smlSessionSetSendingLimit(session, limit); 2011 SmlSession *session2 = smlSessionNew(SML_SESSION_TYPE_SERVER, SML_MIMETYPE_XML, SML_VERSION_12, SML_PROTOCOL_SYNCML, loc, loc, "1", 0, &error); 2012 server_corr->thread = smlSessionRunAsync(session2, &to_session2); 2013 smlSessionSetSendingLimit(session2, limit); 2014 2015 smlSessionSetEventCallback(session, _event_callback, client_corr); 2016 smlSessionSetDataCallback(session, _data_send_callback, &to_session2); 2017 smlSessionSetEventCallback(session2, _event_callback, server_corr); 2018 smlSessionSetDataCallback(session2, _data_send_callback, &to_session); 2019 2020 client_corr->dsession = smlDsServerSendAlert(client, session, SML_ALERT_TWO_WAY, "last", "next", _alert_reply, GINT_TO_POINTER(1), &error); 2021 fail_unless(client_corr->dsession != NULL, NULL); 2022 fail_unless(error == NULL, NULL); 2023 2024 fail_unless(smlSessionFlush(session, TRUE, &error), NULL); 2025 fail_unless(error == NULL, NULL); 2026 2027 while (init_alerts_received != 1) { 2028 usleep(500); 2029 } 2030 2031 smlDsSessionGetAlert(server_corr1->dsession, _recv_alert, GINT_TO_POINTER(1)); 2032 smlDsSessionSendAlert(server_corr1->dsession, SML_ALERT_TWO_WAY, "last", "next", _alert_reply, GINT_TO_POINTER(1), &error); 2033 2034 smlDsSessionGetAlert(server_corr2->dsession, _recv_alert, GINT_TO_POINTER(1)); 2035 smlDsSessionSendAlert(server_corr2->dsession, SML_ALERT_TWO_WAY, "last", "next", _alert_reply, GINT_TO_POINTER(1), &error); 2036 2037 smlDsSessionGetAlert(server_corr3->dsession, _recv_alert, GINT_TO_POINTER(1)); 2038 smlDsSessionSendAlert(server_corr4->dsession, SML_ALERT_TWO_WAY, "last", "next", _alert_reply, GINT_TO_POINTER(1), &error); 2039 2040 2041 2042 while (alerts_received != 3) { 2043 smlDsSessionDispatch(server_corr1->dsession); 2044 smlDsSessionDispatch(server_corr2->dsession); 2045 smlDsSessionDispatch(server_corr3->dsession); 2046 usleep(500); 2047 } 2048 2049 fail_unless(smlSessionFlush(session2, TRUE, &error), NULL); 2050 fail_unless(error == NULL, NULL); 2051 2052 smlDsSessionGetAlert(client_corr1->dsession, _recv_alert, GINT_TO_POINTER(1)); 2053 smlDsSessionGetAlert(client_corr2->dsession, _recv_alert, GINT_TO_POINTER(1)); 2054 smlDsSessionGetAlert(client_corr3->dsession, _recv_alert, GINT_TO_POINTER(1)); 2055 2056 2057 while (alerts_received != 6) { 2058 smlDsSessionDispatch(client_corr1->dsession); 2059 smlDsSessionDispatch(client_corr2->dsession); 2060 smlDsSessionDispatch(client_corr3->dsession); 2061 usleep(500); 2062 } 2063 2064 smlDsSessionSendSync(client_corr1->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2065 int i = 0; 2066 for (i = 0; i < num; i++) { 2067 fail_unless(smlDsSessionQueueChange(client_corr1->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(2), &error), NULL); 2068 fail_unless(error == NULL, NULL); 2069 } 2070 smlDsSessionCloseSync(client_corr1->dsession, &error); 2071 2072 smlDsSessionSendSync(client_corr2->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2073 for (i = 0; i < num; i++) { 2074 fail_unless(smlDsSessionQueueChange(client_corr2->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(2), &error), NULL); 2075 fail_unless(error == NULL, NULL); 2076 } 2077 smlDsSessionCloseSync(client_corr2->dsession, &error); 2078 2079 smlDsSessionSendSync(client_corr3->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2080 for (i = 0; i < num; i++) { 2081 fail_unless(smlDsSessionQueueChange(client_corr3->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(2), &error), NULL); 2082 fail_unless(error == NULL, NULL); 2083 } 2084 smlDsSessionCloseSync(client_corr3->dsession, &error); 2085 2086 fail_unless(smlSessionFlush(session, TRUE, &error), NULL); 2087 fail_unless(error == NULL, NULL); 2088 2089 2090 smlDsSessionGetSync(server_corr1->dsession, _recv_sync, GINT_TO_POINTER(1)); 2091 smlDsSessionGetChanges(server_corr1->dsession, _recv_changes, GINT_TO_POINTER(1)); 2092 smlDsSessionGetSync(server_corr2->dsession, _recv_sync, GINT_TO_POINTER(1)); 2093 smlDsSessionGetChanges(server_corr2->dsession, _recv_changes, GINT_TO_POINTER(1)); 2094 smlDsSessionGetSync(server_corr3->dsession, _recv_sync, GINT_TO_POINTER(1)); 2095 smlDsSessionGetChanges(server_corr3->dsession, _recv_changes, GINT_TO_POINTER(1)); 2096 2097 while (syncs_received != 3 || adds_received != num * 3) { 2098 smlDsSessionDispatch(server_corr1->dsession); 2099 smlDsSessionDispatch(server_corr2->dsession); 2100 smlDsSessionDispatch(server_corr3->dsession); 2101 usleep(5000); 2102 } 2103 2104 smlDsSessionSendSync(server_corr1->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2105 for (i = 0; i < num; i++) { 2106 fail_unless(smlDsSessionQueueChange(server_corr1->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(1), &error), NULL); 2107 fail_unless(error == NULL, NULL); 2108 } 2109 smlDsSessionCloseSync(server_corr1->dsession, &error); 2110 2111 smlDsSessionSendSync(server_corr2->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2112 for (i = 0; i < num; i++) { 2113 fail_unless(smlDsSessionQueueChange(server_corr2->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(1), &error), NULL); 2114 fail_unless(error == NULL, NULL); 2115 } 2116 smlDsSessionCloseSync(server_corr2->dsession, &error); 2117 2118 smlDsSessionSendSync(server_corr3->dsession, 0, _sync_reply, GINT_TO_POINTER(1), &error); 2119 for (i = 0; i < num; i++) { 2120 fail_unless(smlDsSessionQueueChange(server_corr3->dsession, SML_CHANGE_ADD, "uid", "data", 5, SML_CONTENT_TYPE_VCARD, _add_reply, GINT_TO_POINTER(1), &error), NULL); 2121 fail_unless(error == NULL, NULL); 2122 } 2123 smlDsSessionCloseSync(server_corr3->dsession, &error); 2124 2125 fail_unless(smlSessionFlush(session2, TRUE, &error), NULL); 2126 fail_unless(error == NULL, NULL); 2127 2128 2129 smlDsSessionGetSync(client_corr1->dsession, _recv_sync, GINT_TO_POINTER(1)); 2130 smlDsSessionGetChanges(client_corr1->dsession, _recv_changes, GINT_TO_POINTER(1)); 2131 smlDsSessionGetSync(client_corr2->dsession, _recv_sync, GINT_TO_POINTER(1)); 2132 smlDsSessionGetChanges(client_corr2->dsession, _recv_changes, GINT_TO_POINTER(1)); 2133 smlDsSessionGetSync(client_corr3->dsession, _recv_sync, GINT_TO_POINTER(1)); 2134 smlDsSessionGetChanges(client_corr3->dsession, _recv_changes, GINT_TO_POINTER(1)); 2135 2136 while (adds_received != num * 2 * 3) { 2137 smlDsSessionDispatch(client_corr1->dsession); 2138 smlDsSessionDispatch(client_corr2->dsession); 2139 smlDsSessionDispatch(client_corr3->dsession); 2140 usleep(5000); 2141 } 2142 2143 for (i = 0; i < num; i++) { 2144 smlDsSessionQueueMap(client_corr1->dsession, "uid", "newuid", &error); 2145 } 2146 smlDsSessionCloseMap(client_corr1->dsession, _map_reply, GINT_TO_POINTER(1), &error); 2147 2148 for (i = 0; i < num; i++) { 2149 smlDsSessionQueueMap(client_corr2->dsession, "uid", "newuid", &error); 2150 } 2151 smlDsSessionCloseMap(client_corr2->dsession, _map_reply, GINT_TO_POINTER(1), &error); 2152 2153 for (i = 0; i < num; i++) { 2154 smlDsSessionQueueMap(client_corr3->dsession, "uid", "newuid", &error); 2155 } 2156 smlDsSessionCloseMap(client_corr3->dsession, _map_reply, GINT_TO_POINTER(1), &error); 2157 2158 fail_unless(smlSessionFlush(session, TRUE, &error), NULL); 2159 fail_unless(error == NULL, NULL); 2160 2161 while (add_replies_received != num * 2) { 2162 usleep(500); 2163 } 2164 2165 fail_unless(smlSessionEnd(session2, &error), NULL); 2166 fail_unless(error == NULL, NULL); 2167 2168 while (session_ends != 2) { 2169 usleep(500); 2170 } 2171 2172 smlSessionStop(client_corr1->thread); 2173 smlSessionStop(client_corr2->thread); 2174 smlSessionStop(client_corr3->thread); 2175 smlSessionStop(server_corr1->thread); 2176 smlSessionStop(server_corr2->thread); 2177 smlSessionStop(server_corr3->thread); 2178 2179 //fail_unless(data_received == 6, NULL); 2180 fail_unless(init_alerts_received == 1, NULL); 2181 2182 fail_unless(alerts_received == 6, NULL); 2183 fail_unless(syncs_received == 6, NULL); 2184 fail_unless(changes_received == 0, NULL); 2185 fail_unless(replies_received == 15, NULL); 2186 fail_unless(session_ends == 2, NULL); 2187 2188 fail_unless(adds_received == num * 2 * 3, NULL); 2189 fail_unless(add_replies_received == num * 2 * 3, NULL); 2190 fail_unless(deletes_received == 0, NULL); 2191 fail_unless(delete_replies_received == 0, NULL); 2192 fail_unless(modifies_received == 0, NULL); 2193 fail_unless(modify_replies_received == 0, NULL); 2194 2195 g_free(client_corr1); 2196 g_free(client_corr2); 2197 g_free(client_corr3); 2198 g_free(server_corr1); 2199 g_free(server_corr2); 2200 g_free(server_corr3); 2201 2202 smlSessionFree(session); 2203 smlSessionFree(session2); 2204 2205 smlDsServerFree(server1); 2206 smlDsServerFree(server2); 2207 smlDsServerFree(server3); 2208 smlDsServerFree(client1); 2209 smlDsServerFree(client2); 2210 smlDsServerFree(client3); 2211 } 2212 END_TEST 2213 #endif 2214 1954 2215 Suite *datasync_suite(void) 1955 2216 { … … 1975 2236 * - Slow-sync overwrite 1976 2237 * - Aborting 1977 * - Auth1978 2238 * - lots of changes with limit 1979 2239 * - large objs with both limits 1980 * - devinf get1981 2240 * - missing map 1982 * - conflict resolution1983 2241 * - size too small for one object 2242 * - SAN 2243 * - SAN 1.2 1984 2244 */ 1985 2245 branches/development-branch/tests/check_http.c
r101 r108 74 74 SmlTransportHttpClientConfig config; 75 75 config.port = -1; 76 config.url = g_strdup("test.com");76 config.url = "test.com"; 77 77 config.proxy = NULL; 78 78 79 79 fail_unless(!smlTransportInitialize(tsp, &config, &error), NULL); 80 80 fail_unless(error != NULL, NULL); 81 82 smlErrorDeref(&error); 81 83 82 84 smlTransportFree(tsp); … … 159 161 fail_unless(!smlTransportInitialize(tsp, &config, &error), NULL); 160 162 fail_unless(error != NULL, NULL); 163 smlErrorDeref(&error); 161 164 162 165 smlTransportFree(tsp); … … 214 217 fail_unless(data->type == SML_MIMETYPE_XML, NULL); 215 218 fail_unless(link != NULL, NULL); 216 smlTransportDataDeref(data);217 219 218 220 if (GPOINTER_TO_INT(userdata) == 1) { … … 222 224 223 225 fail_unless(smlTransportSend(tsp, link, data, NULL), NULL); 226 227 smlTransportDataDeref(data); 224 228 } else if (GPOINTER_TO_INT(userdata) == 2) { 225 229 SmlError *newerror = NULL; … … 233 237 fail_unless(data->type == SML_MIMETYPE_XML, NULL); 234 238 fail_unless(link != NULL, NULL); 235 smlTransportDataDeref(data);236 239 237 240 SmlError *newerror = NULL; … … 258 261 259 262 SmlTransportHttpClientConfig clientConfig; 260 clientConfig.port = 9999;261 clientConfig.url = g_strdup("127.0.0.1");263 clientConfig.port = 10008; 264 clientConfig.url = "http://127.0.0.1:10008"; 262 265 clientConfig.proxy = NULL; 263 266 264 267 SmlTransportHttpServerConfig serverConfig; 265 serverConfig.port = 9999;268 serverConfig.port = 10008; 266 269 serverConfig.url = NULL; 267 270 serverConfig.interface = NULL; … … 280 283 fail_unless(error == NULL, NULL); 281 284 282 while (client_connect_done == 0) { };285 while (client_connect_done == 0) { usleep(50); }; 283 286 284 287 fail_unless(client_connect_done == 1, NULL); … … 288 291 fail_unless(error == NULL, NULL); 289 292 290 while (client_disconnect_done == 0) { };293 while (client_disconnect_done == 0) { usleep(50); }; 291 294 292 295 fail_unless(client_connect_done == 1, NULL); … … 313 316 314 317 SmlTransportHttpClientConfig clientConfig; 315 clientConfig.port = 9999;316 clientConfig.url = g_strdup("127.0.0.1");318 clientConfig.port = 10009; 319 clientConfig.url = "http://127.0.0.1:10009"; 317 320 clientConfig.proxy = NULL; 318 321 319 322 SmlTransportHttpServerConfig serverConfig; 320 serverConfig.port = 9999;323 serverConfig.port = 10009; 321 324 serverConfig.url = NULL; 322 325 serverConfig.interface = NULL; … … 339 342 fail_unless(error == NULL, NULL); 340 343 344 smlTransportDataDeref(data); 345 341 346 smlTransportStop(client); 342 347 smlTransportStop(server); … … 352 357 START_TEST (http_receive) 353 358 { 359 client_connect_done = 0; 360 client_disconnect_done = 0; 361 client_receives = 0; 362 client_errors = 0; 363 server_receives = 0; 364 354 365 setup_testbed(NULL); 355 366 … … 359 370 360 371 SmlTransportHttpClientConfig clientConfig; 361 clientConfig.port = 9999;362 clientConfig.url = g_strdup("http://127.0.0.1:9999");372 clientConfig.port = 10010; 373 clientConfig.url = "http://127.0.0.1:10010"; 363 374 clientConfig.proxy = NULL; 364 375 365 376 SmlTransportHttpServerConfig serverConfig; 366 serverConfig.port = 9999;377 serverConfig.port = 10010; 367 378 serverConfig.url = NULL; 368 379 serverConfig.interface = NULL; … … 385 396 fail_unless(smlTransportSend(client, NULL, data, &error), NULL); 386 397 fail_unless(error == NULL, NULL); 398 399 smlTransportDataDeref(data); 387 400 388 401 while (1) { … … 407 420 START_TEST (http_reply) 408 421 { 422 client_connect_done = 0; 423 client_disconnect_done = 0; 424 client_receives = 0; 425 client_errors = 0; 426 server_receives = 0; 409 427 setup_testbed(NULL); 410 428 … … 414 432 415 433 SmlTransportHttpClientConfig clientConfig; 416 clientConfig.port = 9999;417 clientConfig.url = g_strdup("http://127.0.0.1:9999");434 clientConfig.port = 10011; 435 clientConfig.url = "http://127.0.0.1:10011"; 418 436 clientConfig.proxy = NULL; 419 437 420 438 SmlTransportHttpServerConfig serverConfig; 421 serverConfig.port = 9999;439 serverConfig.port = 10011; 422 440 serverConfig.url = NULL; 423 441 serverConfig.interface = NULL; … … 440 458 fail_unless(smlTransportSend(client, NULL, data, &error), NULL); 441 459 fail_unless(error == NULL, NULL); 460 461 smlTransportDataDeref(data); 442 462 443 463 while (1) { … … 463 483 START_TEST (http_talk) 464 484 { 485 client_connect_done = 0; 486 client_disconnect_done = 0; 487 client_receives = 0; 488 client_errors = 0; 489 server_receives = 0; 465 490 setup_testbed(NULL); 466 491 … … 470 495 471 496 SmlTransportHttpClientConfig clientConfig; 472 clientConfig.port = 9999;473 clientConfig.url = g_strdup("http://127.0.0.1:9999");497 clientConfig.port = 10012; 498 clientConfig.url = "http://127.0.0.1:10012"; 474 499 clientConfig.proxy = NULL; 475 500 476 501 SmlTransportHttpServerConfig serverConfig; 477 serverConfig.port = 9999;502 serverConfig.port = 10012; 478 503 serverConfig.url = NULL; 479 504 serverConfig.interface = NULL; … … 500 525 fail_unless(smlTransportSend(client, NULL, data, &error), NULL); 501 526 fail_unless(error == NULL, NULL); 527 528 smlTransportDataDeref(data); 502 529 503 530 while (1) { … … 524 551 START_TEST (http_connect_error) 525 552 { 553 client_connect_done = 0; 554 client_disconnect_done = 0; 555 client_receives = 0; 556 client_errors = 0; 557 server_receives = 0; 526 558 setup_testbed(NULL); 527 559 … … 530 562 531 563 SmlTransportHttpClientConfig clientConfig; 532 clientConfig.port = 9999;533 clientConfig.url = g_strdup("http://127.0.0.1:9999");564 clientConfig.port = 10013; 565 clientConfig.url = "http://127.0.0.1:10013"; 534 566 clientConfig.proxy = NULL; 535 567 … … 548 580 fail_unless(error == NULL, NULL); 549 581 582 smlTransportDataDeref(data); 583 550 584 while (client_errors == 0) { usleep(100); }; 551 585 … … 565 599 START_TEST (http_reject) 566 600 { 601 client_connect_done = 0; 602 client_disconnect_done = 0; 603 client_receives = 0; 604 client_errors = 0; 605 server_receives = 0; 567 606 setup_testbed(NULL); 568 607 … … 572 611 573 612 SmlTransportHttpClientConfig clientConfig; 574 clientConfig.port = 9999;575 clientConfig.url = g_strdup("http://127.0.0.1:9999");613 clientConfig.port = 10014; 614 clientConfig.url = "http://127.0.0.1:10014"; 576 615 clientConfig.proxy = NULL; 577 616 578 617 SmlTransportHttpServerConfig serverConfig; 579 serverConfig.port = 9999;618 serverConfig.port = 10014; 580 619 serverConfig.url = NULL; 581 620 serverConfig.interface = NULL; … … 599 638 fail_unless(error == NULL, NULL); 600 639 640 smlTransportDataDeref(data); 641 601 642 while (server_receives == 0) { usleep(100); }; 602 643 … … 623 664 START_TEST (http_multi_connect) 624 665 { 666 client_connect_done = 0; 667 client_disconnect_done = 0; 668 client_receives = 0; 669 client_errors = 0; 670 server_receives = 0; 625 671 setup_testbed(NULL); 626 672 … … 632 678 633 679 SmlTransportHttpClientConfig clientConfig; 634 clientConfig.port = 9999;635 clientConfig.url = g_strdup("http://127.0.0.1:9999");680 clientConfig.port = 10015; 681 clientConfig.url = "http://127.0.0.1:10015"; 636 682 clientConfig.proxy = NULL; 637 683 638 684 SmlTransportHttpServerConfig serverConfig; 639 serverConfig.port = 9999;685 serverConfig.port = 10015; 640 686 serverConfig.url = NULL; 641 687 serverConfig.interface = NULL; … … 707 753 START_TEST (http_multi_partial_error) 708 754 { 755 client_connect_done = 0; 756 client_disconnect_done = 0; 757 client_receives = 0; 758 client_errors = 0; 759 server_receives = 0; 709 760 setup_testbed(NULL); 710 761 … … 716 767 717 768 SmlTransportHttpClientConfig clientConfig; 718 clientConfig.port = 9999;719 clientConfig.url = "http://127.0.0.1: 9999";769 clientConfig.port = 10016; 770 clientConfig.url = "http://127.0.0.1:10016"; 720 771 clientConfig.proxy = NULL; 721 772 722 773 SmlTransportHttpServerConfig serverConfig; 723 serverConfig.port = 9999;774 serverConfig.port = 10016; 724 775 serverConfig.url = NULL; 725 776 serverConfig.interface = NULL; … … 791 842 END_TEST 792 843 844 START_TEST (http_multi_stress) 845 { 846 int num = 1000; 847 848 client_connect_done = 0; 849 client_disconnect_done = 0; 850 client_receives = 0; 851 client_errors = 0; 852 server_receives = 0; 853 setup_testbed(NULL); 854 855 SmlError *error = NULL; 856 SmlTransport *server = smlTransportNew(SML_TRANSPORT_HTTP_SERVER, &error); 857 SmlTransport *client1 = smlTransportNew(SML_TRANSPORT_HTTP_CLIENT, &error); 858 SmlTransport *client2 = smlTransportNew(SML_TRANSPORT_HTTP_CLIENT, &error); 859 SmlTransport *client3 = smlTransportNew(SML_TRANSPORT_HTTP_CLIENT, &error); 860 861 SmlTransportHttpClientConfig clientConfig; 862 clientConfig.port = 10015; 863 clientConfig.url = "http://127.0.0.1:10015"; 864 clientConfig.proxy = NULL; 865 866 SmlTransportHttpServerConfig serverConfig; 867 serverConfig.port = 10015; 868 serverConfig.url = NULL; 869 serverConfig.interface = NULL; 870 871 fail_unless(smlTransportRunAsync(client1, &error), NULL); 872 fail_unless(error == NULL, NULL); 873 fail_unless(smlTransportRunAsync(client2, &error), NULL); 874 fail_unless(error == NULL, NULL); 875 fail_unless(smlTransportRunAsync(client3, &error), NULL); 876 fail_unless(error == NULL, NULL); 877 fail_unless(smlTransportRunAsync(server, &error), NULL); 878 fail_unless(error == NULL, NULL); 879 880 fail_unless(smlTransportInitialize(client1, &clientConfig, &error), NULL); 881 fail_unless(smlTransportInitialize(client2, &clientConfig, &error), NULL); 882 fail_unless(smlTransportInitialize(client3, &clientConfig, &error), NULL); 883 fail_unless(smlTransportInitialize(server, &serverConfig, &error), NULL); 884 885 smlTransportSetEventCallback(client1, _recv_client_event, GINT_TO_POINTER(1)); 886 smlTransportSetEventCallback(client2, _recv_client_event, GINT_TO_POINTER(1)); 887 smlTransportSetEventCallback(client3, _recv_client_event, GINT_TO_POINTER(1)); 888 smlTransportSetEventCallback(server, _recv_server_event, GINT_TO_POINTER(1)); 889 890 SmlTransportData *data = NULL; 891 892 int i; 893 for (i = 0; i < num; i++) { 894 data = smlTransportDataNew("test", 5, SML_MIMETYPE_XML, FALSE, &error); 895 fail_unless(data != NULL, NULL); 896 fail_unless(error == NULL, NULL); 897 fail_unless(smlTransportSend(client1, NULL, data, &error), NULL); 898 fail_unless(error == NULL, NULL); 899 smlTransportDataDeref(data); 900 901 data = smlTransportDataNew("test", 5, SML_MIMETYPE_XML, FALSE, &error); 902 fail_unless(data != NULL, NULL); 903 fail_unless(error == NULL, NULL); 904 fail_unless(smlTransportSend(client2, NULL, data, &error), NULL); 905 fail_unless(error == NULL, NULL); 906 smlTransportDataDeref(data); 907 908 data = smlTransportDataNew("test", 5, SML_MIMETYPE_XML, FALSE, &error); 909 fail_unless(data != NULL, NULL); 910 fail_unless(error == NULL, NULL); 911 fail_unless(smlTransportSend(client3, NULL, data, &error), NULL); 912 fail_unless(error == NULL, NULL); 913 smlTransportDataDeref(data); 914 915 while (1) { 916 usleep(1); 917 if (client_receives == (i+1)*3) 918 break; 919 } 920 } 921 922 fail_unless(client_receives == 3 * num, NULL); 923 fail_unless(server_receives == 3 * num, NULL); 924 925 smlTransportStop(client1); 926 smlTransportStop(client2); 927 smlTransportStop(client3); 928 smlTransportStop(server); 929 930 fail_unless(smlTransportFinalize(server, &error), NULL); 931 fail_unless(smlTransportFinalize(client1, &error), NULL); 932 fail_unless(smlTransportFinalize(client2, &error), NULL); 933 fail_unless(smlTransportFinalize(client3, &error), NULL); 934 935 smlTransportFree(server); 936 smlTransportFree(client1); 937 smlTransportFree(client2); 938 smlTransportFree(client3); 939 } 940 END_TEST 941 793 942 Suite *http_suite(void) 794 943 { 795 944 Suite *s = suite_create("Http Transports"); 796 //Suite *s2 = suite_create("Http Transports");945 Suite *s2 = suite_create("Http Transports"); 797 946 798 947 create_case(s, "http_client_new", http_client_new); … … 814 963 create_case(s, "http_multi_connect", http_multi_connect); 815 964 create_case(s, "http_multi_partial_error", http_multi_partial_error); 816 817 return s; 965 create_case(s2, "http_multi_stress", http_multi_stress); 966 967 return s2; 818 968 } 819 969
