Navigation


Changeset 706:4ffbc9f1e922 in freeDiameter for tests


Ignore:
Timestamp:
Feb 9, 2011, 3:26:58 PM (13 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Large UNTESTED commit with the following changes:

  • Improved DiameterIdentity? handling (esp. interationalization issues), and improve efficiency of some string operations in peers, sessions, and dictionary modules (closes #7)
  • Cleanup in the session module to free only unreferenced sessions (#16)
  • Removed fd_cpu_flush_cache(), replaced by more robust alternatives.
  • Improved peer state machine algorithm to counter SCTP multistream race condition.
Location:
tests
Files:
4 edited
1 moved

Legend:

Unmodified
Added
Removed
  • tests/CMakeLists.txt

    r672 r706  
    1313SET(TEST_LIST
    1414        testsctp
    15         testlist
     15        testostr
    1616        testdict
    1717        testmesg
  • tests/testdisp.c

    r662 r706  
    110110        struct disp_hdl * hdl[NB_CB];
    111111        struct disp_when when;
    112         const char * ec;
     112        char * ec;
    113113       
    114114        /* First, initialize the daemon modules */
     
    116116       
    117117        /* Create a dummy session, we don't use it anyway */
    118         CHECK( 0, fd_sess_new( &sess, "test.disp", NULL, 0 ) );
     118        #define DUMMY_SID "test.disp"
     119        CHECK( 0, fd_sess_new( &sess, DUMMY_SID, CONSTSTRLEN(DUMMY_SID), NULL, 0 ) );
    119120       
    120121        memset(&when, 0xff, sizeof(when)); /* check that we don't use un-initialized parts */
  • tests/testostr.c

    r662 r706  
    3636#include "tests.h"
    3737
    38 #define TEST_STR "This is my test string (with extra unused data)"
    39 #define TEST_STRLEN 22
     38#define TEST_STR (os0_t)"This is my test string (with extra unused data)"
    4039
    4140/* Main test routine */
     
    4746        /* Check the hash function */
    4847        {
    49                 char buf[30];
     48                uint8_t buf[30];
    5049               
    51                 uint32_t hash = fd_hash(TEST_STR, TEST_STRLEN); /* reference value */
     50                uint32_t hash = fd_os_hash(TEST_STR, CONSTSTRLEN(TEST_STR)); /* reference value */
    5251               
    5352                /* Check that a hash of a substring / surstring is different */
    54                 CHECK( 1, hash != fd_hash(TEST_STR, TEST_STRLEN - 1) ? 1 : 0 );
    55                 CHECK( 1, hash != fd_hash(TEST_STR, TEST_STRLEN + 1) ? 1 : 0 );
     53                CHECK( 1, hash != fd_os_hash(TEST_STR, CONSTSTRLEN(TEST_STR) - 1) ? 1 : 0 );
     54                CHECK( 1, hash != fd_os_hash(TEST_STR, CONSTSTRLEN(TEST_STR) + 1) ? 1 : 0 );
    5655               
    5756                /* Check alignment of the string is not important */
    58                 memcpy(buf + 4, TEST_STR, TEST_STRLEN);
    59                 CHECK( hash, fd_hash(buf + 4, TEST_STRLEN) );
     57                memcpy(buf + 4, TEST_STR, CONSTSTRLEN(TEST_STR));
     58                CHECK( hash, fd_os_hash(buf + 4, CONSTSTRLEN(TEST_STR)) );
    6059               
    61                 memcpy(buf + 3, TEST_STR, TEST_STRLEN);
    62                 CHECK( hash, fd_hash(buf + 3, TEST_STRLEN) );
     60                memcpy(buf + 3, TEST_STR, CONSTSTRLEN(TEST_STR));
     61                CHECK( hash, fd_os_hash(buf + 3, CONSTSTRLEN(TEST_STR)) );
    6362               
    64                 memcpy(buf + 2, TEST_STR, TEST_STRLEN);
    65                 CHECK( hash, fd_hash(buf + 2, TEST_STRLEN) );
     63                memcpy(buf + 2, TEST_STR, CONSTSTRLEN(TEST_STR));
     64                CHECK( hash, fd_os_hash(buf + 2, CONSTSTRLEN(TEST_STR)) );
    6665               
    67                 memcpy(buf + 1, TEST_STR, TEST_STRLEN);
    68                 CHECK( hash, fd_hash(buf + 1, TEST_STRLEN) );
     66                memcpy(buf + 1, TEST_STR, CONSTSTRLEN(TEST_STR));
     67                CHECK( hash, fd_os_hash(buf + 1, CONSTSTRLEN(TEST_STR)) );
    6968        }
    7069
  • tests/testsctp.c

    r662 r706  
    5656        PASSTEST();
    5757#else /* DISABLE_SCTP */
    58         int sock, srvsock, clisock;
     58        struct cnxctx cli, srv; /* we use only their cc_socket & cc_state */
     59        int sock;
    5960        char buf1[]="abcdef";
    6061        char *buf2;
    6162        size_t sz;
    6263        struct fd_list eps = FD_LIST_INITIALIZER(eps);
    63         uint32_t status = 0;
    6464        uint16_t str;
    6565        int ev;
     
    8080        }
    8181       
     82        memset(&cli, 0, sizeof(cli));
     83        memset(&srv, 0, sizeof(srv));
     84       
    8285        /* First, initialize the daemon modules */
    8386        INIT_FD();
     
    9396       
    9497        /* Now, create the client socket */
    95         CHECK( 0, fd_sctp_client( &clisock, 0, TEST_PORT, &eps ));
     98        CHECK( 0, fd_sctp_client( &cli.cc_socket, 0, TEST_PORT, &eps ));
    9699       
    97100        /* Accept this connection */
    98         srvsock = accept(sock, NULL, NULL);
     101        srv.cc_socket = accept(sock, NULL, NULL);
    99102       
    100103        /* Send a first message */
    101         CHECK( 0, fd_sctp_sendstr(srvsock, 1, (uint8_t *)buf1, sizeof(buf1), &status) );
    102         CHECK( 0, status);
     104        CHECK( 0, fd_sctp_sendstr(&srv, 1, (uint8_t *)buf1, sizeof(buf1) ) );
     105        CHECK( 0, srv.cc_state);
    103106       
    104107        /* Receive this message */
    105108redo1:
    106         CHECK( 0, fd_sctp_recvmeta(clisock, &str, (uint8_t **)&buf2, &sz, &ev, &status) );
     109        CHECK( 0, fd_sctp_recvmeta(&cli, &str, (uint8_t **)&buf2, &sz, &ev) );
    107110        if (ev == FDEVP_CNX_EP_CHANGE)
    108111                goto redo1;
    109112        CHECK( FDEVP_CNX_MSG_RECV, ev);
    110         CHECK( 0, status);
     113        CHECK( 0, cli.cc_state);
    111114        CHECK( 1, str);
    112115        CHECK( sizeof(buf1), sz );
     
    115118       
    116119        /* Send in the other direction */
    117         CHECK( 0, fd_sctp_sendstr(clisock, 2, (uint8_t *)buf1, sizeof(buf1), &status) );
    118         CHECK( 0, status);
     120        CHECK( 0, fd_sctp_sendstr(&cli, 2, (uint8_t *)buf1, sizeof(buf1)) );
     121        CHECK( 0, cli.cc_state);
    119122       
    120123        /* Receive this message */
    121124redo2:
    122         CHECK( 0, fd_sctp_recvmeta(srvsock, &str, (uint8_t **)&buf2, &sz, &ev, &status) );
     125        CHECK( 0, fd_sctp_recvmeta(&srv, &str, (uint8_t **)&buf2, &sz, &ev) );
    123126        if (ev == FDEVP_CNX_EP_CHANGE)
    124127                goto redo2;
    125128        CHECK( FDEVP_CNX_MSG_RECV, ev);
    126         CHECK( 0, status);
     129        CHECK( 0, srv.cc_state);
    127130        CHECK( 2, str);
    128131        CHECK( sizeof(buf1), sz );
  • tests/testsess.c

    r662 r706  
    3737
    3838#define TEST_DIAM_ID    "testsess.myid"
    39 #define TEST_OPT        "suffix"
    40 #define TEST_SID        TEST_DIAM_ID ";1234;5678;" TEST_OPT
     39#define TEST_OPT_IN     "suffix"
     40#define TEST_OPT        (os0_t)TEST_OPT_IN
     41#define TEST_SID_IN     TEST_DIAM_ID ";1234;5678;" TEST_OPT_IN
     42#define TEST_SID        (os0_t)TEST_SID_IN
    4143
    4244#define TEST_EYEC       0x7e57e1ec
    4345struct mystate {
    4446        int     eyec;   /* TEST_EYEC */
    45         char *  sid;    /* the session with which the data was registered */
     47        os0_t   sid;    /* the session with which the data was registered */
    4648        int  *  freed;  /* location where to write the freed status */
    4749        void *  opaque; /* if opaque was provided, this is the value we expect */
    4850};
    4951
    50 static void mycleanup( struct mystate * data, char * sid, void * opaque )
     52static void mycleanup( struct mystate * data, os0_t sid, void * opaque )
    5153{
    5254        /* sanity */
     
    5456        CHECK( 1, data? 1 : 0 );
    5557        CHECK( TEST_EYEC, data->eyec );
    56         CHECK( 0, strcmp(sid, data->sid) );
     58        CHECK( 0, strcmp((char *)sid, (char *)data->sid) );
    5759        if (data->freed)
    5860                *(data->freed) += 1;
     
    6567}
    6668
    67 static __inline__ struct mystate * new_state(char * sid, int *freed)
     69static __inline__ struct mystate * new_state(os0_t sid, int *freed)
    6870{
    6971        struct mystate *new;
     
    7274        memset(new, 0, sizeof(struct mystate));
    7375        new->eyec = TEST_EYEC;
    74         new->sid = strdup(sid);
     76        new->sid = os0dup(sid, strlen((char *)sid));
    7577        CHECK( 1, new->sid ? 1 : 0 );
    7678        new->freed = freed;
     
    7981
    8082void * g_opaque = (void *)"test";
     83
     84/* Avoid a lot of casts */
     85#define strlen(s) strlen((char *)s)
     86#define strncmp(s1,s2,l) strncmp((char *)s1, (char *)s2, l)
     87#define strcmp(s1,s2) strcmp((char *)s1, (char *)s2)
    8188       
    8289
     
    8693        struct session_handler * hdl1, *hdl2;
    8794        struct session *sess1, *sess2, *sess3;
    88         char *str1, *str2;
     95        os0_t str1, str2;
     96        size_t str1len, str2len;
    8997        int new;
    9098       
     
    109117        {
    110118                /* DiamId is provided, not opt */
    111                 CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, NULL, 0 ) );
    112                 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, NULL, 0 ) );
     119                CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, CONSTSTRLEN(TEST_DIAM_ID), NULL, 0 ) );
     120                CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, CONSTSTRLEN(TEST_DIAM_ID), NULL, 0 ) );
    113121                #if 0
    114122                fd_sess_dump(0, sess1);
     
    117125               
    118126                /* Check both string start with the diameter Id, but are different */
    119                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
    120                 CHECK( 0, strncmp(str1, TEST_DIAM_ID ";", strlen(TEST_DIAM_ID) + 1) );
    121                 CHECK( 0, fd_sess_getsid(sess2, &str2) );
    122                 CHECK( 0, strncmp(str2, TEST_DIAM_ID ";", strlen(TEST_DIAM_ID) + 1) );
     127                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
     128                CHECK( 1, (strlen(str1) == str1len) ? 1 : 0 );
     129                CHECK( 0, strncmp(str1, TEST_DIAM_ID ";", CONSTSTRLEN(TEST_DIAM_ID) + 1) );
     130                CHECK( 0, fd_sess_getsid(sess2, &str2, &str2len) );
     131                CHECK( 0, strncmp(str2, TEST_DIAM_ID ";", CONSTSTRLEN(TEST_DIAM_ID) + 1) );
    123132                CHECK( 1, strcmp(str1, str2) ? 1 : 0 );
    124133                CHECK( 0, fd_sess_destroy( &sess1 ) );
     
    126135               
    127136                /* diamId and opt */
    128                 CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, TEST_OPT, 0 ) );
    129                 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, TEST_OPT, strlen(TEST_OPT) - 1 ) );
    130                 #if 0
    131                 fd_sess_dump(0, sess1);
    132                 fd_sess_dump(0, sess2);
    133                 #endif
    134                
    135                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
    136                 CHECK( 0, strncmp(str1, TEST_DIAM_ID ";", strlen(TEST_DIAM_ID) + 1) );
    137                 CHECK( 0, strcmp(str1 + strlen(str1) - strlen(TEST_OPT) - 1, ";" TEST_OPT) );
    138                
    139                 CHECK( 0, fd_sess_getsid(sess2, &str2) );
    140                 CHECK( 0, strncmp(str2, TEST_DIAM_ID ";", strlen(TEST_DIAM_ID) + 1) );
    141                 CHECK( 0, strncmp(str2 + strlen(str2) - strlen(TEST_OPT), ";" TEST_OPT, strlen(TEST_OPT)) );
     137                CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, 0, TEST_OPT, 0 ) );
     138                CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, CONSTSTRLEN(TEST_DIAM_ID), TEST_OPT, CONSTSTRLEN(TEST_OPT_IN) - 1 ) );
     139                #if 0
     140                fd_sess_dump(0, sess1);
     141                fd_sess_dump(0, sess2);
     142                #endif
     143               
     144                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
     145                CHECK( 0, strncmp(str1, TEST_DIAM_ID ";", CONSTSTRLEN(TEST_DIAM_ID) + 1) );
     146                CHECK( 0, strcmp(str1 + str1len - CONSTSTRLEN(TEST_OPT_IN) - 1, ";" TEST_OPT_IN) );
     147               
     148                CHECK( 0, fd_sess_getsid(sess2, &str2, &str2len) );
     149                CHECK( 0, strncmp(str2, TEST_DIAM_ID ";", CONSTSTRLEN(TEST_DIAM_ID) + 1) );
     150                CHECK( 0, strncmp(str2 + str2len - CONSTSTRLEN(TEST_OPT_IN), ";" TEST_OPT_IN, CONSTSTRLEN(TEST_OPT_IN)) );
    142151               
    143152                CHECK( 1, strcmp(str1, str2) ? 1 : 0 );
     
    146155               
    147156                /* Now, only opt is provided */
    148                 CHECK( 0, fd_sess_new( &sess1, NULL, TEST_SID, 0 ) );
    149                 CHECK( EALREADY, fd_sess_new( &sess2, NULL, TEST_SID, 0 ) );
     157                CHECK( 0, fd_sess_new( &sess1, NULL, 0, TEST_SID, 0 ) );
     158                CHECK( EALREADY, fd_sess_new( &sess2, NULL, 0, TEST_SID, 0 ) );
    150159                CHECK( sess2, sess1 );
    151                 CHECK( EALREADY, fd_sess_new( &sess3, NULL, TEST_SID, strlen(TEST_SID) ) );
     160                CHECK( EALREADY, fd_sess_new( &sess3, NULL, 0, TEST_SID, CONSTSTRLEN(TEST_SID_IN) ) );
    152161                CHECK( sess3, sess1 );
    153                 CHECK( 0, fd_sess_new( &sess2, NULL, TEST_SID, strlen(TEST_SID) - 1 ) );
    154                 #if 0
    155                 fd_sess_dump(0, sess1);
    156                 fd_sess_dump(0, sess2);
    157                 #endif
    158                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
    159                 CHECK( 0, fd_sess_getsid(sess2, &str2) );
    160                 CHECK( 0, strncmp( str1, str2, strlen(TEST_SID) - 1 ) );
     162                CHECK( 0, fd_sess_new( &sess2, NULL, 0, TEST_SID, CONSTSTRLEN(TEST_SID_IN) - 1 ) );
     163                #if 0
     164                fd_sess_dump(0, sess1);
     165                fd_sess_dump(0, sess2);
     166                #endif
     167                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
     168                CHECK( 0, fd_sess_getsid(sess2, &str2, &str2len) );
     169                CHECK( 0, strncmp( str1, str2, CONSTSTRLEN(TEST_SID_IN) - 1 ) );
    161170                CHECK( 0, strcmp( str1, TEST_SID ) );
     171                CHECK( 1, strcmp( str1, str2 ) ? 1 : 0 );
    162172               
    163173                CHECK( 0, fd_sess_destroy( &sess2 ) );
     
    167177        /* Test fd_sess_fromsid */
    168178        {
    169                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
    170                 CHECK( 1, new ? 1 : 0 );
    171                
    172                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess2, &new ) );
     179                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
     180                CHECK( 1, new ? 1 : 0 );
     181               
     182                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess2, &new ) );
    173183                CHECK( 0, new );
    174184                CHECK( sess1, sess2 );
    175185               
    176                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess3, NULL ) );
     186                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess3, NULL ) );
    177187                CHECK( sess1, sess3 );
    178188               
     
    184194                struct mystate *tms;
    185195               
    186                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     196                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    187197                CHECK( 1, new ? 1 : 0 );
    188198               
     
    190200                CHECK( NULL, sess1 );
    191201               
    192                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     202                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    193203                CHECK( 1, new ? 1 : 0 );
    194204               
     
    199209                CHECK( NULL, sess1 );
    200210               
    201                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     211                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    202212                CHECK( 0, new );
    203213               
    204214                CHECK( 0, fd_sess_destroy( &sess1 ) );
    205215               
    206                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     216                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    207217                CHECK( 1, new ? 1 : 0 );
    208218               
     
    214224                struct timespec timeout;
    215225               
    216                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     226                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    217227                CHECK( 1, new ? 1 : 0 );
    218228               
    219229                CHECK( 0, clock_gettime(CLOCK_REALTIME, &timeout) );
    220                 CHECK( 0, fd_sess_settimeout( sess1, &timeout) );
     230                CHECK( 0, fd_sess_settimeout( sess1, &timeout) ); /* expire now */
    221231                timeout.tv_sec = 0;
    222232                timeout.tv_nsec= 50000000; /* 50 ms */
    223233                CHECK( 0, nanosleep(&timeout, NULL) );
    224234               
    225                 CHECK( 0, fd_sess_fromsid( TEST_SID, strlen(TEST_SID), &sess1, &new ) );
     235                CHECK( 0, fd_sess_fromsid( TEST_SID, CONSTSTRLEN(TEST_SID_IN), &sess1, &new ) );
    226236                CHECK( 1, new ? 1 : 0 );
    227237               
     
    231241               
    232242                /* Create a second session */
    233                 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, NULL, 0 ) );
    234                
    235                 /* We don't really have away to verify the expiry list is in proper order automatically here... */
     243                CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, 0, NULL, 0 ) );
     244               
     245                /* We don't really have a way to verify the expiry list is in proper order automatically here... */
    236246               
    237247                CHECK( 0, fd_sess_destroy( &sess2 ) );
     
    248258               
    249259                /* Create three sessions */
    250                 CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, NULL, 0 ) );
    251                 CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, NULL, 0 ) );
    252                 CHECK( 0, fd_sess_new( &sess3, TEST_DIAM_ID, NULL, 0 ) );
     260                CHECK( 0, fd_sess_new( &sess1, TEST_DIAM_ID, 0, NULL, 0 ) );
     261                CHECK( 0, fd_sess_new( &sess2, TEST_DIAM_ID, 0, NULL, 0 ) );
     262                CHECK( 0, fd_sess_new( &sess3, TEST_DIAM_ID, 0, NULL, 0 ) );
    253263               
    254264                /* Create 2 states */
    255                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
     265                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
    256266                freed[0] = 0;
    257267                ms[0] = new_state(str1, &freed[0]);
     
    281291                /* Now create 6 states */
    282292                memset(&freed[0], 0, sizeof(freed));
    283                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
     293                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
    284294                ms[0] = new_state(str1, &freed[0]);
    285295                ms[1] = new_state(str1, &freed[1]);
    286                 CHECK( 0, fd_sess_getsid(sess2, &str1) );
     296                CHECK( 0, fd_sess_getsid(sess2, &str1, &str1len) );
    287297                ms[2] = new_state(str1, &freed[2]);
    288298                ms[3] = new_state(str1, &freed[3]);
    289                 CHECK( 0, fd_sess_getsid(sess3, &str1) );
     299                CHECK( 0, fd_sess_getsid(sess3, &str1, &str1len) );
    290300                ms[4] = new_state(str1, &freed[4]);
    291301                ms[5] = new_state(str1, &freed[5]);
    292302                ms[5]->opaque = g_opaque;
    293                 str2 = strdup(str1);
     303                str2 = os0dup(str1, str1len);
    294304                CHECK( 1, str2 ? 1 : 0 );
    295305               
     
    333343               
    334344                /* Create again session 3, check that no data is associated to it */
    335                 CHECK( 0, fd_sess_fromsid( str2, strlen(str2), &sess3, &new ) );
     345                CHECK( 0, fd_sess_fromsid( str2, str1len, &sess3, &new ) );
    336346                CHECK( 1, new ? 1 : 0 );
    337347                CHECK( 0, fd_sess_state_retrieve( hdl1, sess3, &tms ) );
     
    359369                /* Check the last data can still be retrieved */
    360370                CHECK( 0, fd_sess_state_retrieve( hdl1, sess1, &tms ) );
    361                 CHECK( 0, fd_sess_getsid(sess1, &str1) );
     371                CHECK( 1, tms ? 1 : 0);
     372                CHECK( 0, fd_sess_getsid(sess1, &str1, &str1len) );
    362373                mycleanup(tms, str1, NULL);
    363374        }
    364375       
     376        /* TODO: add tests on messages referencing sessions */
    365377       
    366378        /* That's all for the tests yet */
Note: See TracChangeset for help on using the changeset viewer.