Changeset 639:95a784729cac in freeDiameter for freeDiameter/tests/testsess.c
- Timestamp:
- Dec 20, 2010, 1:07:06 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
freeDiameter/tests/testsess.c
r403 r639 45 45 char * sid; /* the session with which the data was registered */ 46 46 int * freed; /* location where to write the freed status */ 47 void * opaque; /* if opaque was provided, this is the value we expect */ 47 48 }; 48 49 49 static void mycleanup( struct mystate * data, char * sid )50 static void mycleanup( struct mystate * data, char * sid, void * opaque ) 50 51 { 51 52 /* sanity */ … … 56 57 if (data->freed) 57 58 *(data->freed) += 1; 59 if (data->opaque) { 60 CHECK( 1, opaque == data->opaque ? 1 : 0 ); 61 } 58 62 /* Now, free the data */ 59 63 free(data->sid); … … 73 77 return new; 74 78 } 79 80 void * g_opaque = (void *)"test"; 75 81 76 82 … … 88 94 /* Test functions related to handlers (simple situation) */ 89 95 { 90 CHECK( 0, fd_sess_handler_create ( &hdl1, mycleanup ) ); 91 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup ) ); 92 CHECK( 0, fd_sess_handler_destroy( &hdl2 ) ); 93 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup ) ); 96 void * testptr = NULL; 97 CHECK( 0, fd_sess_handler_create ( &hdl1, mycleanup, NULL ) ); 98 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, NULL ) ); 99 CHECK( 0, fd_sess_handler_destroy( &hdl2, &testptr ) ); 100 CHECK( 1, testptr == NULL ? 1 : 0 ); 101 CHECK( 0, fd_sess_handler_create ( &hdl2, mycleanup, g_opaque ) ); 94 102 #if 0 95 103 fd_sess_dump_hdl(0, hdl1); … … 237 245 int freed[6]; 238 246 struct timespec timeout; 247 void * testptr = NULL; 239 248 240 249 /* Create three sessions */ … … 267 276 CHECK( NULL, tms ); 268 277 269 mycleanup(ms[0], str1 );270 mycleanup(ms[1], str1 );278 mycleanup(ms[0], str1, NULL); 279 mycleanup(ms[1], str1, NULL); 271 280 272 281 /* Now create 6 states */ … … 281 290 ms[4] = new_state(str1, &freed[4]); 282 291 ms[5] = new_state(str1, &freed[5]); 292 ms[5]->opaque = g_opaque; 283 293 str2 = strdup(str1); 284 294 CHECK( 1, str2 ? 1 : 0 ); … … 308 318 309 319 /* Destroy handler 2 */ 310 CHECK( 0, fd_sess_handler_destroy( &hdl2 ) );320 CHECK( 0, fd_sess_handler_destroy( &hdl2, &testptr ) ); 311 321 CHECK( 0, freed[0] ); 312 322 CHECK( 1, freed[1] ); … … 315 325 CHECK( 1, freed[4] ); 316 326 CHECK( 1, freed[5] ); 327 CHECK( 1, testptr == g_opaque ? 1 : 0 ); 317 328 318 329 #if 1 … … 349 360 CHECK( 0, fd_sess_state_retrieve( hdl1, sess1, &tms ) ); 350 361 CHECK( 0, fd_sess_getsid(sess1, &str1) ); 351 mycleanup(tms, str1 );362 mycleanup(tms, str1, NULL); 352 363 } 353 364
Note: See TracChangeset
for help on using the changeset viewer.