Skip to content

Commit

Permalink
Merge pull request #109 from pinealservo/wip_tests
Browse files Browse the repository at this point in the history
Refactored and extended test double code; added PDU tests
  • Loading branch information
andrew-elder committed Nov 1, 2014
2 parents b6cd593 + bbf87cd commit a00a409
Show file tree
Hide file tree
Showing 13 changed files with 1,607 additions and 120 deletions.
2 changes: 1 addition & 1 deletion daemons/mrpd/mrp.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
/* state machine controls */
int p2pmac;

#if LOG_MVRP || LOG_MSRP || LOG_MMRP || LOG_MRP
#if LOG_MVRP || LOG_MSRP || LOG_MMRP || LOG_MRP || MRP_CPPUTEST

/* can use static string since module is single threaded */
static char state_status_string[64];
Expand Down
5 changes: 0 additions & 5 deletions daemons/mrpd/mrpd.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,3 @@ int mrpd_close_socket(SOCKET sock);
int mrpd_recvmsgbuf(SOCKET sock, char **buf);

void mrpd_log_printf(const char *fmt, ...);

#ifdef MRP_CPPUTEST
void mrpd_reset(void);
unsigned int mrpd_send_packet_count(void);
#endif
10 changes: 9 additions & 1 deletion daemons/mrpd/msrp.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ static struct msrp_attribute *msrp_alloc(void);
int msrp_send_notifications(struct msrp_attribute *attrib, int notify);
static struct msrp_attribute *msrp_conditional_reclaim(struct msrp_attribute *sattrib);

int msrp_event(int event, struct msrp_attribute *rattrib);

unsigned char MSRP_ADDR[] = { 0x01, 0x80, 0xC2, 0x00, 0x00, 0x0E };

extern unsigned char STATION_ADDR[];
Expand All @@ -58,7 +60,7 @@ extern unsigned char STATION_ADDR[];
SOCKET msrp_socket;
struct msrp_database *MSRP_db;

static char *msrp_attrib_type_string(int t)
char *msrp_attrib_type_string(int t)
{
switch (t) {
case MSRP_TALKER_ADV_TYPE:
Expand Down Expand Up @@ -342,7 +344,11 @@ int msrp_merge(struct msrp_attribute *rattrib)
return 0;
}

#ifdef MRP_CPPUTEST /* MSRP_PDU_TEST */
int msrp_event_orig(int event, struct msrp_attribute *rattrib)
#else
int msrp_event(int event, struct msrp_attribute *rattrib)
#endif
{
struct msrp_attribute *attrib;
int count = 0;
Expand Down Expand Up @@ -1791,9 +1797,11 @@ int msrp_recv_msg()
* we can seek for an endmark to recover .. but this version
* dumps the entire packet as malformed
*/
#if LOG_MSRP
printf
("################## unrecognized attribute type (%d)\n",
mrpdu_msg->AttributeType);
#endif
goto out;
}
}
Expand Down
106 changes: 0 additions & 106 deletions daemons/mrpd/tests/simple/AllTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,112 +34,6 @@
#include "CppUTest/TestHarness.h"
#include "CppUTest/CommandLineTestRunner.h"

extern "C"
{
#include "mrpd.h"
#include "mrp.h"
#include "mvrp.h"
#include "msrp.h"
#include "mmrp.h"
}

extern "C"
{

HTIMER periodic_timer;
unsigned char STATION_ADDR[] = { 0x00, 0x88, 0x77, 0x66, 0x55, 0x44 };
unsigned int send_count = 0;

HTIMER mrpd_timer_create(void)
{
#if defined WIN32
return NULL;
#else
return 1;
#endif
}

void mrpd_timer_close(HTIMER t)
{
}

int mrpd_timer_start_interval(HTIMER timerfd,
unsigned long value_ms, unsigned long interval_ms)
{
return 0;
}

int mrpd_timer_start(HTIMER timerfd, unsigned long value_ms)
{
return mrpd_timer_start_interval(timerfd, value_ms, 0);
}

int mrpd_timer_stop(HTIMER timerfd)
{
return 0;
}

int mrp_periodictimer_start()
{
return mrpd_timer_start_interval(periodic_timer, 1000, 1000);
}

int mrp_periodictimer_stop()
{
return mrpd_timer_stop(periodic_timer);
}

int mrpd_recvmsgbuf(SOCKET sock, char **buf)
{
return 0;
}

int mrpd_send_ctl_msg(struct sockaddr_in *client_addr, char *notify_data,
int notify_len)
{
return notify_len;
}

size_t mrpd_send(SOCKET sockfd, const void *buf, size_t len, int flags)
{
send_count++;
return len;
}

unsigned int mrpd_send_packet_count(void)
{
return send_count;
}

void mrpd_reset(void)
{
send_count = 0;
}

int mrpd_close_socket(SOCKET sock)
{
return 0;
}

int mrpd_init_protocol_socket(uint16_t etype, SOCKET *sock,
unsigned char *multicast_addr)
{
return 0;
}

int mrpd_init_timers(struct mrp_database *mrp_db)
{
mrp_db->join_timer = mrpd_timer_create();
mrp_db->lv_timer = mrpd_timer_create();
mrp_db->lva_timer = mrpd_timer_create();
mrp_db->join_timer_running = 0;
mrp_db->lv_timer_running = 0;
mrp_db->lva_timer_running = 0;

return 0;
};
}

int main(int ac, char **av)
{
return CommandLineTestRunner::RunAllTests(ac, av);
Expand Down
6 changes: 3 additions & 3 deletions daemons/mrpd/tests/simple/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ if(APPLE)
elseif(UNIX)
include_directories( include ${CPPUTEST_DIR}/include/Platforms/Gcc )
link_directories(${CPPUTEST_DIR}/src/CppUTest ${CPPUTEST_DIR}/src/CppUTestExt )
add_executable (mrpd_simple_test ${MRPD_SRC} ${CPPUTEST_SRC} )
add_executable (mrpd_simple_test ${MRPD_SRC} ${CPPUTEST_SRC} mrp_doubles.c)
target_link_libraries(mrpd_simple_test CppUTest CppUTestExt)
elseif(WIN32)
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
Expand All @@ -28,8 +28,8 @@ elseif(WIN32)

add_definitions(-D_CRT_SECURE_NO_WARNINGS)
include_directories( include $ENV{WPCAP_DIR}/Include ${CPPUTEST_DIR}/include/Platforms/VisualCpp )
add_executable (mrpd_simple_test ${MRPD_SRC} ${CPPUTEST_SRC} ${SRC_DIR}/que.c)
add_executable (mrpd_simple_test ${MRPD_SRC} ${CPPUTEST_SRC} ${SRC_DIR}/que.c mrp_doubles.c)
target_link_libraries(mrpd_simple_test wpcap Iphlpapi Ws2_32 CppUTest CppUTestExt)
endif()

add_test( test_mrpd mrpd_simple_test )
add_test( test_mrpd mrpd_simple_test -v )
3 changes: 2 additions & 1 deletion daemons/mrpd/tests/simple/mmrp_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ typedef unsigned __int64 uint64_t;
extern "C"
{

#include "mrpd.h"
#include "mrp_doubles.h"
#include "mrp.h"
#include "mmrp.h"
#include "parse.h"
Expand All @@ -69,6 +69,7 @@ TEST_GROUP(MmrpTestGroup)
{
void setup()
{
mrpd_reset();
mmrp_init(1);
}

Expand Down
Loading

0 comments on commit a00a409

Please sign in to comment.