Commit 7518800e authored by Simon Morlat's avatar Simon Morlat

integrate cast_test to cunit

parent c848bbc3
......@@ -27,25 +27,107 @@
/***************/
typedef enum {
BELLE_SIP_DEBUG=1,
BELLE_SIP_MESSAGE=1<<1,
BELLE_SIP_WARNING=1<<2,
BELLE_SIP_ERROR=1<<3,
BELLE_SIP_FATAL=1<<4,
BELLE_SIP_LOGLEV_END=1<<5
BELLE_SIP_LOG_DEBUG=1,
BELLE_SIP_LOG_MESSAGE=1<<1,
BELLE_SIP_LOG_WARNING=1<<2,
BELLE_SIP_LOG_ERROR=1<<3,
BELLE_SIP_LOG_FATAL=1<<4,
BELLE_SIP_LOG_END=1<<5
} belle_sip_log_level;
#define BELLE_SIP_LOG_ALL (0xffff)
typedef void (*belle_sip_log_function_t)(belle_sip_log_level lev, const char *fmt, va_list args);
BELLE_SIP_BEGIN_DECLS
extern belle_sip_log_function_t belle_sip_logv_out;
extern unsigned int __belle_sip_log_mask;
#define belle_sip_log_level_enabled(level) (__belle_sip_log_mask & (level))
#if !defined(WIN32) && !defined(_WIN32_WCE)
#define belle_sip_logv(level,fmt,args) \
{\
if (belle_sip_logv_out!=NULL && belle_sip_log_level_enabled(level)) \
belle_sip_logv_out(level,fmt,args);\
if ((level)==BELLE_SIP_LOG_FATAL) abort();\
}while(0)
#else
void belle_sip_logv(int level, const char *fmt, va_list args);
#endif
#ifdef BELLE_SIP_DEBUG_MODE
static inline void belle_sip_debug(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_LOG_DEBUG, fmt, args);
va_end (args);
}
#else
#define belle_sip_debug(...)
#endif
#ifdef BELLE_SIP_NOMESSAGE_MODE
#define belle_sip_log(...)
#define belle_sip_message(...)
#define belle_sip_warning(...)
#else
static inline void belle_sip_log(belle_sip_log_level lev, const char *fmt,...){
va_list args;
va_start (args, fmt);
belle_sip_logv(lev, fmt, args);
va_end (args);
}
static inline void belle_sip_message(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_LOG_MESSAGE, fmt, args);
va_end (args);
}
static inline void belle_sip_warning(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_LOG_WARNING, fmt, args);
va_end (args);
}
#endif
static inline void belle_sip_error(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_LOG_ERROR, fmt, args);
va_end (args);
}
static inline void belle_sip_fatal(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_LOG_FATAL, fmt, args);
va_end (args);
}
void belle_sip_set_log_file(FILE *file);
void belle_sip_set_log_handler(belle_sip_log_function_t func);
void belle_sip_set_log_level_mask(int levelmask);
void belle_sip_set_log_level(int level);
BELLE_SIP_END_DECLS
......
......@@ -279,87 +279,6 @@ belle_sip_list_t * belle_sip_list_free(belle_sip_list_t *list);
#define belle_sip_list_next(elem) ((elem)->next)
extern belle_sip_log_function_t belle_sip_logv_out;
extern unsigned int __belle_sip_log_mask;
#define belle_sip_log_level_enabled(level) (__belle_sip_log_mask & (level))
#if !defined(WIN32) && !defined(_WIN32_WCE)
#define belle_sip_logv(level,fmt,args) \
{\
if (belle_sip_logv_out!=NULL && belle_sip_log_level_enabled(level)) \
belle_sip_logv_out(level,fmt,args);\
if ((level)==BELLE_SIP_FATAL) abort();\
}while(0)
#else
void belle_sip_logv(int level, const char *fmt, va_list args);
#endif
#ifdef BELLE_SIP_DEBUG_MODE
static inline void belle_sip_debug(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_DEBUG, fmt, args);
va_end (args);
}
#else
#define belle_sip_debug(...)
#endif
#ifdef BELLE_SIP_NOMESSAGE_MODE
#define belle_sip_log(...)
#define belle_sip_message(...)
#define belle_sip_warning(...)
#else
static inline void belle_sip_log(belle_sip_log_level lev, const char *fmt,...){
va_list args;
va_start (args, fmt);
belle_sip_logv(lev, fmt, args);
va_end (args);
}
static inline void belle_sip_message(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_MESSAGE, fmt, args);
va_end (args);
}
static inline void belle_sip_warning(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_WARNING, fmt, args);
va_end (args);
}
#endif
static inline void belle_sip_error(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_ERROR, fmt, args);
va_end (args);
}
static inline void belle_sip_fatal(const char *fmt,...)
{
va_list args;
va_start (args, fmt);
belle_sip_logv(BELLE_SIP_FATAL, fmt, args);
va_end (args);
}
......
......@@ -45,14 +45,14 @@ void belle_sip_set_log_handler(belle_sip_log_function_t func){
}
unsigned int __belle_sip_log_mask=BELLE_SIP_WARNING|BELLE_SIP_ERROR|BELLE_SIP_FATAL;
unsigned int __belle_sip_log_mask=BELLE_SIP_LOG_WARNING|BELLE_SIP_LOG_ERROR|BELLE_SIP_LOG_FATAL;
/**
* @ param levelmask a mask of BELLE_SIP_DEBUG, BELLE_SIP_MESSAGE, BELLE_SIP_WARNING, BELLE_SIP_ERROR
* BELLE_SIP_FATAL .
* @ param level: either BELLE_SIP_LOG_DEBUG, BELLE_SIP_LOG_MESSAGE, BELLE_SIP_LOG_WARNING, BELLE_SIP_LOG_ERROR
* BELLE_SIP_LOG_FATAL .
**/
void belle_sip_set_log_level_mask(int levelmask){
__belle_sip_log_mask=levelmask;
void belle_sip_set_log_level(int level){
__belle_sip_log_mask=(level<<1)-1;
}
char * belle_sip_strdup_vprintf(const char *fmt, va_list ap)
......@@ -128,19 +128,19 @@ static void __belle_sip_logv_out(belle_sip_log_level lev, const char *fmt, va_li
char *msg;
if (__log_file==NULL) __log_file=stderr;
switch(lev){
case BELLE_SIP_DEBUG:
case BELLE_SIP_LOG_DEBUG:
lname="debug";
break;
case BELLE_SIP_MESSAGE:
case BELLE_SIP_LOG_MESSAGE:
lname="message";
break;
case BELLE_SIP_WARNING:
case BELLE_SIP_LOG_WARNING:
lname="warning";
break;
case BELLE_SIP_ERROR:
case BELLE_SIP_LOG_ERROR:
lname="error";
break;
case BELLE_SIP_FATAL:
case BELLE_SIP_LOG_FATAL:
lname="fatal";
break;
default:
......
if BUILD_TESTS
noinst_PROGRAMS=belle_sip_tester cast_test basic_test belle_sip_object_describe
noinst_PROGRAMS=belle_sip_tester basic_test belle_sip_object_describe
belle_sip_tester_SOURCES= belle_sip_tester.c \
belle_sdp_tester.c \
belle_sip_uri_tester.c \
belle_sip_headers_tester.c \
belle_sip_message_tester.c \
auth_helper_tester.c
auth_helper_tester.c \
cast_test.c
belle_sip_tester_CFLAGS=$(CUNIT_CFLAGS)
belle_sip_tester_LDFLAGS=$(CUNIT_LIBS)
cast_test_SOURCES=cast_test.c
basic_test_SOURCES=basic_test.c
......
......@@ -25,7 +25,7 @@ int main(int argc, char *argv[]){
belle_sip_provider_t *prov;
belle_sip_request_t *req;
belle_sip_set_log_level_mask(BELLE_SIP_LOG_ALL);
belle_sip_set_log_level(BELLE_SIP_LOG_DEBUG);
lp=belle_sip_stack_create_listening_point(stack,"0.0.0.0",7060,"UDP");
prov=belle_sip_stack_create_provider(stack,lp);
......
......@@ -17,14 +17,26 @@
*/
#include <stdio.h>
#include "CUnit/Basic.h"
#include <belle-sip/belle-sip.h>
extern int belle_sip_uri_test_suite ();
extern int belle_sip_headers_test_suite ();
extern int belle_sip_message_test_suite ();
extern int belle_sdp_test_suite();
extern int belle_sip_authentication_helper_suite ();
extern int belle_sip_cast_test_suite();
int main (int argc, char *argv[]) {
if (argc>1){
if (strcmp(argv[1],"--help")==0){
fprintf(stderr,"%s \t--help\n\t\t\t--verbose",argv[0]);
return 0;
}else if (strcmp(argv[1],"--verbose")==0){
belle_sip_set_log_level(BELLE_SIP_LOG_DEBUG);
}
}
/* initialize the CUnit test registry */
if (CUE_SUCCESS != CU_initialize_registry())
return CU_get_error();
......@@ -37,6 +49,8 @@ int main (int argc, char *argv[]) {
belle_sdp_test_suite();
belle_sip_cast_test_suite();
belle_sip_authentication_helper_suite();
/* Run all tests using the CUnit Basic interface */
CU_basic_set_mode(CU_BRM_VERBOSE);
......
......@@ -16,26 +16,53 @@
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdio.h>
#include "CUnit/Basic.h"
#include "belle-sip/belle-sip.h"
int main(int argc, char *argv[]){
static int init_cast_suite(){
return 0;
}
static int cleanup_cast_suite(){
return 0;
}
static void cast_test(){
belle_sip_stack_t *stack=belle_sip_stack_new(NULL);
belle_sip_listening_point_t *lp=belle_sip_stack_create_listening_point(stack,"0.0.0.0",5060,"UDP");
belle_sip_provider_t *provider=belle_sip_stack_create_provider(stack,lp);
belle_sip_server_transaction_t *st=belle_sip_provider_create_server_transaction(provider,NULL);
belle_sip_client_transaction_t *ct=belle_sip_provider_create_client_transaction(provider,NULL);
belle_sip_transaction_t *t;
int tmp;
CU_ASSERT_PTR_NOT_NULL(stack);
CU_ASSERT_PTR_NOT_NULL(lp);
CU_ASSERT_PTR_NOT_NULL(provider);
CU_ASSERT_PTR_NOT_NULL(st);
CU_ASSERT_PTR_NOT_NULL(ct);
printf("Casting belle_sip_server_transaction_t to belle_sip_transaction_t\n");
belle_sip_message("Casting belle_sip_server_transaction_t to belle_sip_transaction_t");
t=BELLE_SIP_TRANSACTION(st);
printf("Ok.\n");
printf("Casting belle_sip_client_transaction_t to belle_sip_transaction_t\n");
CU_ASSERT_PTR_NOT_NULL(t);
belle_sip_message("Ok.");
belle_sip_message("Casting belle_sip_client_transaction_t to belle_sip_transaction_t");
t=BELLE_SIP_TRANSACTION(ct);
printf("Ok.\n");
printf("Casting belle_sip_server_transaction_t to belle_sip_client_transaction_t\n");
ct=BELLE_SIP_CLIENT_TRANSACTION(st);
printf("Ooops we should have aborted before, t=%p\n",t);
return 0;
CU_ASSERT_PTR_NOT_NULL(t);
belle_sip_message("Ok.");
tmp=BELLE_SIP_IS_INSTANCE_OF(st,belle_sip_client_transaction_t);
belle_sip_message("Casting belle_sip_server_transaction_t to belle_sip_client_transaction_t: %s",tmp ? "yes" : "no");
CU_ASSERT_EQUAL(tmp,0);
//ct=BELLE_SIP_CLIENT_TRANSACTION(st);
}
int belle_sip_cast_test_suite(){
CU_pSuite pSuite = CU_add_suite("Object inheritence", init_cast_suite, cleanup_cast_suite);
if (NULL == CU_add_test(pSuite, "casting transactions", cast_test)) {
return CU_get_error();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment