blob: f44085133a904cb9e94a1ac522db4df9e9a0f40b [file] [log] [blame]
Benny Prijono4766ffe2005-11-01 17:56:59 +00001/* $Id$
Benny Prijono4766ffe2005-11-01 17:56:59 +00002 */
Benny Prijonodd859a62005-11-01 16:42:51 +00003#ifndef __PJLIB_TEST_H__
4#define __PJLIB_TEST_H__
5
6#include <pj/types.h>
7
8#define GROUP_LIBC 0
9#define GROUP_OS 0
10#define GROUP_DATA_STRUCTURE 0
Benny Prijonoa9946d52005-11-06 09:37:47 +000011#define GROUP_NETWORK 1
Benny Prijonodd859a62005-11-01 16:42:51 +000012#define GROUP_EXTRA 0
13
14#define INCLUDE_ERRNO_TEST GROUP_LIBC
15#define INCLUDE_TIMESTAMP_TEST GROUP_OS
16#define INCLUDE_EXCEPTION_TEST GROUP_LIBC
17#define INCLUDE_RAND_TEST GROUP_LIBC
18#define INCLUDE_LIST_TEST GROUP_DATA_STRUCTURE
19#define INCLUDE_POOL_TEST GROUP_LIBC
20#define INCLUDE_POOL_PERF_TEST (PJ_HAS_MALLOC && GROUP_LIBC)
21#define INCLUDE_STRING_TEST GROUP_DATA_STRUCTURE
22#define INCLUDE_FIFOBUF_TEST 0 // GROUP_DATA_STRUCTURE
23#define INCLUDE_RBTREE_TEST GROUP_DATA_STRUCTURE
24#define INCLUDE_TIMER_TEST GROUP_DATA_STRUCTURE
25#define INCLUDE_ATOMIC_TEST GROUP_OS
26#define INCLUDE_MUTEX_TEST GROUP_OS
27#define INCLUDE_SLEEP_TEST GROUP_OS
28#define INCLUDE_THREAD_TEST GROUP_OS
29#define INCLUDE_SOCK_TEST GROUP_NETWORK
30#define INCLUDE_SOCK_PERF_TEST GROUP_NETWORK
31#define INCLUDE_SELECT_TEST GROUP_NETWORK
32#define INCLUDE_UDP_IOQUEUE_TEST GROUP_NETWORK
Benny Prijonoa9946d52005-11-06 09:37:47 +000033#define INCLUDE_TCP_IOQUEUE_TEST GROUP_NETWORK
Benny Prijonodd859a62005-11-01 16:42:51 +000034#define INCLUDE_IOQUEUE_PERF_TEST GROUP_NETWORK
35#define INCLUDE_XML_TEST GROUP_EXTRA
36
Benny Prijonodd859a62005-11-01 16:42:51 +000037#define INCLUDE_ECHO_SERVER 0
Benny Prijonoa9946d52005-11-06 09:37:47 +000038#define INCLUDE_ECHO_CLIENT 0
39
Benny Prijonodd859a62005-11-01 16:42:51 +000040
41#define ECHO_SERVER_MAX_THREADS 4
42#define ECHO_SERVER_START_PORT 65000
43#define ECHO_SERVER_ADDRESS "compaq.home"
44#define ECHO_SERVER_DURATION_MSEC (60*60*1000)
45
Benny Prijono48a9f4c2005-11-02 12:50:58 +000046#define ECHO_CLIENT_MAX_THREADS 10
Benny Prijonodd859a62005-11-01 16:42:51 +000047
48PJ_BEGIN_DECL
49
50extern int errno_test(void);
51extern int timestamp_test(void);
52extern int exception_test(void);
53extern int rand_test(void);
54extern int list_test(void);
55extern int pool_test(void);
56extern int pool_perf_test(void);
57extern int string_test(void);
58extern int fifobuf_test(void);
59extern int timer_test(void);
60extern int rbtree_test(void);
61extern int atomic_test(void);
62extern int mutex_test(void);
63extern int sleep_test(void);
64extern int thread_test(void);
65extern int sock_test(void);
66extern int sock_perf_test(void);
67extern int select_test(void);
68extern int udp_ioqueue_test(void);
Benny Prijonoa9946d52005-11-06 09:37:47 +000069extern int tcp_ioqueue_test(void);
Benny Prijonodd859a62005-11-01 16:42:51 +000070extern int ioqueue_perf_test(void);
71extern int xml_test(void);
72
73extern int echo_server(void);
74extern int echo_client(int sock_type, const char *server, int port);
Benny Prijonoa9946d52005-11-06 09:37:47 +000075
76extern int echo_srv_sync(void);
77extern int udp_echo_srv_ioqueue(void);
78extern int echo_srv_common_loop(pj_atomic_t *bytes_counter);
Benny Prijonodd859a62005-11-01 16:42:51 +000079
80extern pj_pool_factory *mem;
81
82extern int test_main(void);
83extern void app_perror(const char *msg, pj_status_t err);
84extern pj_status_t app_socket(int family, int type, int proto, int port,
85 pj_sock_t *ptr_sock);
86extern pj_status_t app_socketpair(int family, int type, int protocol,
87 pj_sock_t *server, pj_sock_t *client);
88
89//#define TRACE_(expr) PJ_LOG(3,expr)
90#define TRACE_(expr)
91
92PJ_END_DECL
93
94#endif /* __PJLIB_TEST_H__ */
95