00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __PJLIB_TEST_H__
00021 #define __PJLIB_TEST_H__
00022
00023 #include <pj/types.h>
00024
00025 #define GROUP_LIBC 1
00026 #define GROUP_OS 1
00027 #define GROUP_DATA_STRUCTURE 1
00028 #define GROUP_NETWORK 1
00029 #if defined(PJ_SYMBIAN)
00030 # define GROUP_FILE 0
00031 #else
00032 # define GROUP_FILE 1
00033 #endif
00034
00035 #define INCLUDE_ERRNO_TEST GROUP_LIBC
00036 #define INCLUDE_TIMESTAMP_TEST GROUP_OS
00037 #define INCLUDE_EXCEPTION_TEST GROUP_LIBC
00038 #define INCLUDE_RAND_TEST GROUP_LIBC
00039 #define INCLUDE_LIST_TEST GROUP_DATA_STRUCTURE
00040 #define INCLUDE_HASH_TEST GROUP_DATA_STRUCTURE
00041 #define INCLUDE_POOL_TEST GROUP_LIBC
00042 #define INCLUDE_POOL_PERF_TEST GROUP_LIBC
00043 #define INCLUDE_STRING_TEST GROUP_DATA_STRUCTURE
00044 #define INCLUDE_FIFOBUF_TEST 0 // GROUP_DATA_STRUCTURE
00045 #define INCLUDE_RBTREE_TEST GROUP_DATA_STRUCTURE
00046 #define INCLUDE_TIMER_TEST GROUP_DATA_STRUCTURE
00047 #define INCLUDE_ATOMIC_TEST GROUP_OS
00048 #define INCLUDE_MUTEX_TEST (PJ_HAS_THREADS && GROUP_OS)
00049 #define INCLUDE_SLEEP_TEST GROUP_OS
00050 #define INCLUDE_OS_TEST GROUP_OS
00051 #define INCLUDE_THREAD_TEST (PJ_HAS_THREADS && GROUP_OS)
00052 #define INCLUDE_SOCK_TEST GROUP_NETWORK
00053 #define INCLUDE_SOCK_PERF_TEST GROUP_NETWORK
00054 #define INCLUDE_SELECT_TEST GROUP_NETWORK
00055 #define INCLUDE_UDP_IOQUEUE_TEST GROUP_NETWORK
00056 #define INCLUDE_TCP_IOQUEUE_TEST GROUP_NETWORK
00057 #define INCLUDE_ACTIVESOCK_TEST GROUP_NETWORK
00058 #define INCLUDE_SSLSOCK_TEST (PJ_HAS_SSL_SOCK && GROUP_NETWORK)
00059 #define INCLUDE_IOQUEUE_PERF_TEST (PJ_HAS_THREADS && GROUP_NETWORK)
00060 #define INCLUDE_IOQUEUE_UNREG_TEST (PJ_HAS_THREADS && GROUP_NETWORK)
00061 #define INCLUDE_FILE_TEST GROUP_FILE
00062
00063 #define INCLUDE_ECHO_SERVER 0
00064 #define INCLUDE_ECHO_CLIENT 0
00065
00066
00067 #define ECHO_SERVER_MAX_THREADS 2
00068 #define ECHO_SERVER_START_PORT 65000
00069 #define ECHO_SERVER_ADDRESS "compaq.home"
00070 #define ECHO_SERVER_DURATION_MSEC (60*60*1000)
00071
00072 #define ECHO_CLIENT_MAX_THREADS 6
00073
00074 PJ_BEGIN_DECL
00075
00076 extern int errno_test(void);
00077 extern int timestamp_test(void);
00078 extern int exception_test(void);
00079 extern int rand_test(void);
00080 extern int list_test(void);
00081 extern int hash_test(void);
00082 extern int os_test(void);
00083 extern int pool_test(void);
00084 extern int pool_perf_test(void);
00085 extern int string_test(void);
00086 extern int fifobuf_test(void);
00087 extern int timer_test(void);
00088 extern int rbtree_test(void);
00089 extern int atomic_test(void);
00090 extern int mutex_test(void);
00091 extern int sleep_test(void);
00092 extern int thread_test(void);
00093 extern int sock_test(void);
00094 extern int sock_perf_test(void);
00095 extern int select_test(void);
00096 extern int udp_ioqueue_test(void);
00097 extern int udp_ioqueue_unreg_test(void);
00098 extern int tcp_ioqueue_test(void);
00099 extern int ioqueue_perf_test(void);
00100 extern int activesock_test(void);
00101 extern int file_test(void);
00102 extern int ssl_sock_test(void);
00103
00104 extern int echo_server(void);
00105 extern int echo_client(int sock_type, const char *server, int port);
00106
00107 extern int echo_srv_sync(void);
00108 extern int udp_echo_srv_ioqueue(void);
00109 extern int echo_srv_common_loop(pj_atomic_t *bytes_counter);
00110
00111
00112 extern pj_pool_factory *mem;
00113
00114 extern int test_main(void);
00115 extern void app_perror(const char *msg, pj_status_t err);
00116 extern pj_status_t app_socket(int family, int type, int proto, int port,
00117 pj_sock_t *ptr_sock);
00118 extern pj_status_t app_socketpair(int family, int type, int protocol,
00119 pj_sock_t *server, pj_sock_t *client);
00120 extern int null_func(void);
00121
00122
00123 #define TRACE_(expr)
00124 #define HALT(msg) { PJ_LOG(3,(THIS_FILE,"%s halted",msg)); for(;;) sleep(1); }
00125
00126 PJ_END_DECL
00127
00128 #endif
00129