31#define HOST "localhost"
35#define TDATA_SIZE 3000
41#define HASH_FUNC_RESULT 510
44static const char prefix[] =
"testredis";
47static const char txt[] =
48"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis at"
49"lacus in ligula hendrerit consectetuer. Vestibulum tristique odio"
50"iaculis leo. In massa arcu, ultricies a, laoreet nec, hendrerit non,"
51"neque. Nulla sagittis sapien ac risus. Morbi ligula dolor, vestibulum"
52"nec, viverra id, placerat dapibus, arcu. Curabitur egestas feugiat"
53"tellus. Donec dignissim. Nunc ante. Curabitur id lorem. In mollis"
54"tortor sit amet eros auctor dapibus. Proin nulla sem, tristique in,"
55"convallis id, iaculis feugiat cras amet.";
123 return i > 0 ?
i : 1;
222 for(
i = 1;
i <= 10;
i++) {
236 baton->which_server = 3;
283 ABTS_ASSERT(tc,
"total_connections_received",
stats->total_connections_received >= 0);
284 ABTS_ASSERT(tc,
"total_commands_processed",
stats->total_commands_processed >= 0);
285 ABTS_ASSERT(tc,
"total_net_input_bytes",
stats->total_net_input_bytes >= 0);
286 ABTS_ASSERT(tc,
"total_net_output_bytes",
stats->total_net_output_bytes >= 0);
504 vec[0].iov_base =
"PING";
505 vec[0].iov_len =
sizeof(
"PING") - 1;
507 vec[1].iov_base =
"\r\n";
508 vec[1].iov_len =
sizeof(
"\r\n") -1;
520 if(
strncmp(
buf,
"+PONG",
sizeof(
"+PONG")-1) != 0) {
547 "on %s:%d. Skipping apr_redis tests...",
const char apr_size_t len
void abts_run_test(abts_suite *ts, test_func f, void *value)
void abts_log_message(const char *fmt,...)
#define ABTS_PTR_EQUAL(a, b, c)
#define ABTS_PTR_NOTNULL(a, b)
#define ABTS_ASSERT(a, b, c)
#define ABTS_INT_EQUAL(a, b, c)
APR Miscellaneous library routines.
apr_redis_find_server_hash(apr_redis_t *rc, const apr_uint32_t hash)
apr_redis_delete(apr_redis_t *rc, const char *key, apr_uint32_t timeout)
apr_redis_incr(apr_redis_t *rc, const char *key, apr_int32_t inc, apr_uint32_t *new_value)
apr_redis_ping(apr_redis_server_t *rs)
apr_redis_stats(apr_redis_server_t *rs, apr_pool_t *p, apr_redis_stats_t **stats)
apr_redis_version(apr_redis_server_t *rs, apr_pool_t *p, char **baton)
apr_redis_decr(apr_redis_t *rc, const char *key, apr_int32_t inc, apr_uint32_t *new_value)
Client interface for redis.
apr_size_t const unsigned char unsigned int unsigned int d
const unsigned char * buf
const char apr_port_t port
ap_vhost_iterate_conn_cb void * baton
const char const apr_size_t data_len
apr_memcache_server_t * server
apr_memcache_server_t * ms
apr_pool_t apr_memcache_stats_t ** stats
const char int apr_pool_t * pool
apr_array_header_t ** result
#define APR_HASH_KEY_STRING
#define apr_pcalloc(p, size)
apr_memcache_server_t ** live_servers
static int create_test_hash(apr_pool_t *p, apr_hash_t *h)
static void test_redis_setexget(abts_case *tc, void *data)
static void test_redis_meta(abts_case *tc, void *data)
static apr_redis_server_t * my_server_func(void *baton, apr_redis_t *mc, const apr_uint32_t hash)
static apr_uint32_t my_hash_func(void *baton, const char *data, apr_size_t data_len)
static void test_redis_user_funcs(abts_case *tc, void *data)
static void test_redis_setget(abts_case *tc, void *data)
abts_suite * testredis(abts_suite *suite)
static int randval(apr_uint32_t high)
static void test_redis_incrdecr(abts_case *tc, void *data)
static apr_status_t check_redis(void)
static void test_redis_create(abts_case *tc, void *data)
static apr_uint16_t firsttime
apr_status_t apr_socket_sendv(apr_socket_t *sock, const struct iovec *vec, apr_int32_t nvec, apr_size_t *len)
apr_status_t apr_socket_recv(apr_socket_t *sock, char *buf, apr_size_t *len)
apr_status_t apr_socket_close(apr_socket_t *thesocket)
apr_status_t apr_socket_connect(apr_socket_t *sock, apr_sockaddr_t *sa)
apr_status_t apr_socket_create(apr_socket_t **new, int ofamily, int type, int protocol, apr_pool_t *cont)
apr_status_t apr_socket_timeout_set(apr_socket_t *sock, apr_interval_time_t t)
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray