X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=tests%2Ftest.c;h=3a8c36572e3b4308c4e7bf6e7e8d811d5193ebd2;hb=42b9680b5b30ed08c47dd7f56b57b714f25446cc;hp=4e5369d6741b85dbb4e9b65c17dd122c80183de5;hpb=7d9255c986d5e9a395bd510ca7b01519736f33e1;p=m6w6%2Flibmemcached diff --git a/tests/test.c b/tests/test.c index 4e5369d6..3a8c3657 100644 --- a/tests/test.c +++ b/tests/test.c @@ -7,6 +7,7 @@ #include #include #include +#include long int timedif(struct timeval a, struct timeval b) { @@ -101,7 +102,6 @@ void delete_test(memcached_st *memc) assert(rc == MEMCACHED_SUCCESS); rc= memcached_delete(memc, key, strlen(key), (time_t)0); - WATCHPOINT_ERROR(rc); assert(rc == MEMCACHED_SUCCESS); } @@ -221,8 +221,6 @@ void get_test3(memcached_st *memc) string= memcached_get(memc, key, strlen(key), &string_length, &flags, &rc); - WATCHPOINT_ERRNO(memc->my_errno); - WATCHPOINT_ERROR(rc); assert(rc == MEMCACHED_SUCCESS); assert(string); assert(string_length == value_length); @@ -499,6 +497,12 @@ void behavior_test(memcached_st *memc) memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_MD5_HASHING, &set); value= memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_MD5_HASHING); assert(value == 0); + + value= memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE); + assert(value > 0); + + value= memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE); + assert(value > 0); } /* Test case provided by Cal Haldenbrand */ @@ -507,7 +511,7 @@ void user_supplied_bug1(memcached_st *memc) unsigned int setter= 1; unsigned int x; - long total= 0; + unsigned long long total= 0; int size= 0; srand(time(NULL)); char key[10]; @@ -543,6 +547,56 @@ void user_supplied_bug1(memcached_st *memc) assert(rc == MEMCACHED_SUCCESS); } } + +/* Test case provided by Cal Haldenbrand */ +void user_supplied_bug2(memcached_st *memc) +{ + int errors; + unsigned int setter; + unsigned int x; + unsigned long long total; + + + setter= 1; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, &setter); + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_TCP_NODELAY, &setter); +#ifdef NOT_YET + setter = 20 * 1024576; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE, &setter); + setter = 20 * 1024576; + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE, &setter); + getter = memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE); + getter = memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE); +#endif + + for (x= 0, errors= 0, total= 0 ; total < 20 * 1024576 ; x++) + { + memcached_return rc; + char buffer[SMALL_STRING_LEN]; + uint16_t flags; + size_t val_len; + char *getval; + + snprintf(buffer, SMALL_STRING_LEN, "%u", x); + getval= memcached_get(memc, buffer, strlen(buffer), + &val_len, &flags, &rc); + if (rc != MEMCACHED_SUCCESS) + { + WATCHPOINT_ERROR(rc); + errors++; + if ( errors == 10 ) + { + fprintf(stderr, "last: %s: len %zu flags: %u\n", buffer, val_len, flags); + assert(0); + } + continue; + } + total+= val_len; + errors= 0; + free(getval); + } +} + void add_host_test1(memcached_st *memc) { unsigned int x; @@ -644,6 +698,7 @@ int main(int argc, char *argv[]) test_st user_tests[] ={ {"user_supplied_bug1", 0, user_supplied_bug1 }, + {"user_supplied_bug2", 0, user_supplied_bug1 }, {0, 0, 0} };