Skip to content

Commit

Permalink
Add unit tests for webcfg_notify.c
Browse files Browse the repository at this point in the history
  • Loading branch information
nlrcomcast committed Oct 20, 2023
1 parent 9ea7349 commit 2d6d857
Show file tree
Hide file tree
Showing 3 changed files with 166 additions and 10 deletions.
18 changes: 9 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,15 +68,6 @@ endif (MULTIPART_UTILITY)

if (WEBCONFIG_BIN_SUPPORT)

# rbus external dependency
#-------------------------------------------------------------------------------
ExternalProject_Add(rbus
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/_prefix/rbus
GIT_REPOSITORY https://github.com/rdkcentral/rbus.git
GIT_TAG main
CMAKE_ARGS += -DBUILD_FOR_DESKTOP=ON -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_TESTING=OFF
)

add_library(librbuscore STATIC SHARED IMPORTED)
add_dependencies(librbuscore rbuscore)

Expand Down Expand Up @@ -157,6 +148,15 @@ ExternalProject_Add(curl
)
add_library(libcurl STATIC SHARED IMPORTED)
add_dependencies(libcurl curl)

# rbus external dependency
#-------------------------------------------------------------------------------
ExternalProject_Add(rbus
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/_prefix/rbus
GIT_REPOSITORY https://github.com/rdkcentral/rbus.git
GIT_TAG main
CMAKE_ARGS += -DBUILD_FOR_DESKTOP=ON -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_TESTING=OFF
)
endif()
#find_library( LIB_CURL,
# NAMES curl
Expand Down
13 changes: 12 additions & 1 deletion tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,15 @@ endif (WEBCONFIG_BIN_SUPPORT)

target_link_libraries (test_generic gcov -Wl,--no-as-needed )

#-------------------------------------------------------------------------------
# test_notify
#-------------------------------------------------------------------------------
add_test(NAME test_notify COMMAND ${MEMORY_CHECK} ./test_notify)
add_executable(test_notify test_notify.c ../src/webcfg_notify.c)
target_link_libraries (test_notify -lcunit -lmsgpackc -lcimplog -ltrower-base64 -lwdmp-c -lcjson -lpthread)

target_link_libraries (test_notify gcov -Wl,--no-as-needed )

# Code coverage

add_custom_target(coverage
Expand Down Expand Up @@ -335,7 +344,8 @@ COMMAND lcov -q --capture --directory
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/test_generic.dir/__/src --output-file test_generic.info
COMMAND lcov -q --capture --directory
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/test_rbus_fr.dir/__/src --output-file test_rbus_fr.info

COMMAND lcov -q --capture --directory
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/test_notify.dir/__/src --output-file test_notify.info

COMMAND lcov
-a test_events_supp.info
Expand All @@ -350,6 +360,7 @@ COMMAND lcov
-a test_webcfgpack.info
-a test_generic.info
-a test_rbus_fr.info
-a test_notify.info
--output-file coverage.info

COMMAND genhtml coverage.info
Expand Down
145 changes: 145 additions & 0 deletions tests/test_notify.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <CUnit/Basic.h>
#include "../src/webcfg_notify.h"

#define UNUSED(x) (void )(x)

char *get_deviceMAC(void)
{
return "123456789000";
}

void sendNotification_rbus(char *payload, char *source, char *destination)
{
UNUSED(payload);
UNUSED(source);
UNUSED(destination);
}

void sendNotification(char *payload, char *source, char *destination)
{
WebcfgDebug("B4 sendNotification_rbus\n");
sendNotification_rbus(payload, source, destination);
}

bool get_global_shutdown()
{
return false;
}

void test_getStatusErrorCodeAndMessage()
{
char* result = NULL;
uint16_t ret = 0;
ret = getStatusErrorCodeAndMessage(DECODE_ROOT_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 111);
CU_ASSERT_STRING_EQUAL(result, "decode_root_failure");

ret = getStatusErrorCodeAndMessage(INCORRECT_BLOB_TYPE,&result);
CU_ASSERT_EQUAL(ret, 211);
CU_ASSERT_STRING_EQUAL(result, "incorrect_blob_type");

ret = getStatusErrorCodeAndMessage(BLOB_PARAM_VALIDATION_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 211);
CU_ASSERT_STRING_EQUAL(result, "blob_param_validation_failure");

ret = getStatusErrorCodeAndMessage(WEBCONFIG_DATA_EMPTY,&result);
CU_ASSERT_EQUAL(ret, 211);
CU_ASSERT_STRING_EQUAL(result, "webconfig_data_empty");

ret = getStatusErrorCodeAndMessage(MULTIPART_BOUNDARY_NULL,&result);
CU_ASSERT_EQUAL(ret, 211);
CU_ASSERT_STRING_EQUAL(result, "multipart_boundary_NULL");

ret = getStatusErrorCodeAndMessage(INVALID_CONTENT_TYPE,&result);
CU_ASSERT_EQUAL(ret, 211);
CU_ASSERT_STRING_EQUAL(result, "invalid_content_type");

ret = getStatusErrorCodeAndMessage(ADD_TO_CACHE_LIST_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 311);
CU_ASSERT_STRING_EQUAL(result, "add_to_cache_list_failure");

ret = getStatusErrorCodeAndMessage(FAILED_TO_SET_BLOB,&result);
CU_ASSERT_EQUAL(ret, 311);
CU_ASSERT_STRING_EQUAL(result, "failed_to_set_blob");

ret = getStatusErrorCodeAndMessage(MULTIPART_CACHE_NULL,&result);
CU_ASSERT_EQUAL(ret, 311);
CU_ASSERT_STRING_EQUAL(result, "multipart_cache_NULL");

ret = getStatusErrorCodeAndMessage(AKER_SUBDOC_PROCESSING_FAILED,&result);
CU_ASSERT_EQUAL(ret, 411);
CU_ASSERT_STRING_EQUAL(result, "aker_subdoc_processing_failed");

ret = getStatusErrorCodeAndMessage(AKER_RESPONSE_PARSE_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 411);
CU_ASSERT_STRING_EQUAL(result, "aker_response_parse_failure");

ret = getStatusErrorCodeAndMessage(INVALID_AKER_RESPONSE,&result);
CU_ASSERT_EQUAL(ret, 411);
CU_ASSERT_STRING_EQUAL(result, "invalid_aker_response");

ret = getStatusErrorCodeAndMessage(LIBPARODUS_RECEIVE_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 411);
CU_ASSERT_STRING_EQUAL(result, "libparodus_receive_failure");

ret = getStatusErrorCodeAndMessage(COMPONENT_EVENT_PARSE_FAILURE,&result);
CU_ASSERT_EQUAL(ret, 511);
CU_ASSERT_STRING_EQUAL(result, "component_event_parse_failure");

ret = getStatusErrorCodeAndMessage(SUBDOC_RETRY_FAILED,&result);
CU_ASSERT_EQUAL(ret, 611);
CU_ASSERT_STRING_EQUAL(result, "subdoc_retry_failed");

ret = getStatusErrorCodeAndMessage(999,&result);
CU_ASSERT_EQUAL(ret, 0);
CU_ASSERT_STRING_EQUAL(result, "Unknown Error");
}

void test_addWebConfgNotifyMsg()
{
addWebConfgNotifyMsg("moca",123,"xyz","none","1122334455",10,"req",400,"root",200);
}

void test_initWebConfigNotifyTask()
{
initWebConfigNotifyTask();
}

void add_suites( CU_pSuite *suite )
{
*suite = CU_add_suite( "tests", NULL, NULL );
CU_add_test( *suite, "test getStatusErrorCodeAndMessage", test_getStatusErrorCodeAndMessage);
CU_add_test( *suite, "test initWebConfigNotifyTask", test_initWebConfigNotifyTask);
CU_add_test( *suite, "test addWebConfgNotifyMsg", test_addWebConfgNotifyMsg);
}

int main( int argc, char *argv[] )
{
unsigned rv = 1;
CU_pSuite suite = NULL;

(void ) argc;
(void ) argv;

if( CUE_SUCCESS == CU_initialize_registry() ) {
add_suites( &suite );

if( NULL != suite ) {
CU_basic_set_mode( CU_BRM_VERBOSE );
CU_basic_run_tests();
printf( "\n" );
CU_basic_show_failures( CU_get_failure_list() );
printf( "\n\n" );
rv = CU_get_number_of_tests_failed();
}

CU_cleanup_registry();

}

return rv;
}

0 comments on commit 2d6d857

Please sign in to comment.