Fix tests: (#314)

- misprint in ports/zephyr/bip-init.c
- error processing PROP_TRACKING_VALUE for the Color Temperature object in
  src/bacnet/bacapp.c
- misprint MSV test
- add hostnport.c for each zephyr tests
- fix colors and ms-input tests - remove mocking Device_Inc_Database_Revision()
  for zephyr tests
- debug the color temperature test
This commit is contained in:
Mikhail Antropov
2022-07-30 11:31:38 +03:00
committed by GitHub
parent a945588340
commit 4b742effe1
46 changed files with 233 additions and 54 deletions
+1 -1
View File
@@ -573,7 +573,7 @@ static int createSocket(struct sockaddr_in *sin)
*/
bool bip_init(char *ifname)
{
int status = -1;
int sock_fd;
struct sockaddr_in sin = { 0 };
bip_set_interface(ifname);
+1
View File
@@ -91,6 +91,7 @@ list(APPEND testdirs
bacnet/basic/object/bo
bacnet/basic/object/bv
bacnet/basic/object/color_object
bacnet/basic/object/color_temperature
bacnet/basic/object/command
bacnet/basic/object/credential_data_input
bacnet/basic/object/device
@@ -54,6 +54,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/wp.c
# Test and test library files
./src/main.c
../mock/device_mock.c
${ZTST_DIR}/ztest_mock.c
${ZTST_DIR}/ztest.c
)
@@ -10,22 +10,6 @@
#include <bacnet/bactext.h>
#include <bacnet/basic/object/color_object.h>
bool Device_Valid_Object_Name(
BACNET_CHARACTER_STRING * object_name,
BACNET_OBJECT_TYPE *object_type,
uint32_t * object_instance)
{
return true;
}
void Device_Inc_Database_Revision(
void)
{
}
/**
* @addtogroup bacnet_tests
* @{
@@ -54,6 +54,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/wp.c
# Test and test library files
./src/main.c
../mock/device_mock.c
${ZTST_DIR}/ztest_mock.c
${ZTST_DIR}/ztest.c
)
@@ -11,21 +11,6 @@
#include <bacnet/basic/object/color_temperature.h>
bool Device_Valid_Object_Name(
BACNET_CHARACTER_STRING * object_name,
BACNET_OBJECT_TYPE *object_type,
uint32_t * object_instance)
{
return true;
}
void Device_Inc_Database_Revision(
void)
{
}
/**
* @addtogroup bacnet_tests
* @{
@@ -53,11 +38,11 @@ static void testColorTemperature(void)
rpdata.object_instance = instance;
rpdata.object_property = PROP_OBJECT_IDENTIFIER;
Color_Property_Lists(&required_property, NULL, NULL);
Color_Temperature_Property_Lists(&required_property, NULL, NULL);
while ((*required_property) >= 0) {
rpdata.object_property = *required_property;
rpdata.array_index = BACNET_ARRAY_ALL;
len = Color_Read_Property(&rpdata);
len = Color_Temperature_Read_Property(&rpdata);
zassert_true(len >= 0, NULL);
if (len >= 0) {
test_len = bacapp_decode_known_property(rpdata.application_data,
-4
View File
@@ -24,10 +24,6 @@ static void testLightingOutput(void)
{
uint8_t apdu[MAX_APDU] = { 0 };
int len = 0, test_len = 0;
uint32_t len_value = 0;
uint8_t tag_number = 0;
BACNET_OBJECT_TYPE decoded_type = 0;
uint32_t decoded_instance = 0;
BACNET_READ_PROPERTY_DATA rpdata;
BACNET_APPLICATION_DATA_VALUE value = {0};
const int *required_property = NULL;
@@ -0,0 +1,26 @@
/**
* @file
* @brief mock Device object functions
* @author Mikhail Antropov
* @date July 2022
*
* SPDX-License-Identifier: MIT
*/
#include <ztest.h>
#include <bacnet/bactext.h>
#include <bacnet/basic/object/device.h>
bool Device_Valid_Object_Name(
BACNET_CHARACTER_STRING * object_name,
BACNET_OBJECT_TYPE *object_type,
uint32_t * object_instance)
{
return true;
}
void Device_Inc_Database_Revision(
void)
{
}
@@ -51,6 +51,7 @@ add_executable(${PROJECT_NAME}
${SRC_DIR}/bacnet/wp.c
# Test and test library files
./src/main.c
../mock/device_mock.c
${ZTST_DIR}/ztest_mock.c
${ZTST_DIR}/ztest.c
)
@@ -11,19 +11,6 @@
#include <ztest.h>
#include <bacnet/basic/object/ms-input.h>
/**
* stub
*/
bool Device_Valid_Object_Name(BACNET_CHARACTER_STRING *object_name,
BACNET_OBJECT_TYPE *object_type,
uint32_t *object_instance)
{
(void)object_name;
(void)object_type;
(void)object_instance;
return false;
}
/**
* @addtogroup bacnet_tests
* @{
+2 -2
View File
@@ -19,7 +19,7 @@
/**
* @brief Test
*/
static void testMultistateInput(void)
static void testMultistateValue(void)
{
uint8_t apdu[MAX_APDU] = { 0 };
int len = 0;
@@ -54,7 +54,7 @@ static void testMultistateInput(void)
void test_main(void)
{
ztest_test_suite(msv_tests,
ztest_unit_test(testMultistateInput)
ztest_unit_test(testMultistateValue)
);
ztest_run_test_suite(msv_tests);
+4
View File
@@ -111,6 +111,8 @@ set(BACNETSTACK_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/bo.h
${BACNETSTACK_SRC}/bacnet/basic/object/bv.h
${BACNETSTACK_SRC}/bacnet/basic/object/channel.h
${BACNETSTACK_SRC}/bacnet/basic/object/color_object.h
${BACNETSTACK_SRC}/bacnet/basic/object/color_temperature.h
${BACNETSTACK_SRC}/bacnet/basic/object/command.h
${BACNETSTACK_SRC}/bacnet/basic/object/credential_data_input.h
${BACNETSTACK_SRC}/bacnet/basic/object/csv.h
@@ -327,6 +329,8 @@ set(BACNETSTACK_BASIC_SRCS
${BACNETSTACK_SRC}/bacnet/basic/object/channel.c
#${BACNETSTACK_SRC}/bacnet/basic/object/client/device-client.c
${BACNETSTACK_SRC}/bacnet/basic/object/command.c
${BACNETSTACK_SRC}/bacnet/basic/object/color_object.c
${BACNETSTACK_SRC}/bacnet/basic/object/color_temperature.c
${BACNETSTACK_SRC}/bacnet/basic/object/credential_data_input.c
${BACNETSTACK_SRC}/bacnet/basic/object/csv.c
${BACNETSTACK_SRC}/bacnet/basic/object/device.c
@@ -44,6 +44,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -48,6 +48,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/authentication_factor.c
${BACNET_SRC}/assigned_access_rights.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -44,6 +44,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -46,6 +46,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/access_rule.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -47,6 +47,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/wp.c
${BACNET_SRC}/cov.c
${BACNET_SRC}/memcopy.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.13.1)
# Extract module path and names
string(REGEX REPLACE
"/zephyr/tests/[a-zA-Z_/-]*$" ""
BACNET_BASE
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/src/"
BACNET_SRC_PATH
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/test/"
BACNET_TEST_PATH
${CMAKE_CURRENT_SOURCE_DIR})
get_filename_component(BACNET_NAME ${BACNET_BASE} NAME)
# Update include path for this module
list(APPEND BACNET_INCLUDE ${BACNET_BASE}/src)
if(BOARD STREQUAL unit_testing)
file(RELATIVE_PATH BACNET_INCLUDE $ENV{ZEPHYR_BASE} ${BACNET_BASE}/src)
list(APPEND INCLUDE ${BACNET_INCLUDE})
list(APPEND SOURCES
${BACNET_SRC_PATH}.c
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/../mock/device_mock.c
)
get_filename_component(BACNET_OBJECT_SRC ${BACNET_SRC_PATH} PATH)
get_filename_component(BACNET_BASIC_SRC ${BACNET_OBJECT_SRC} PATH)
get_filename_component(BACNET_SRC ${BACNET_BASIC_SRC} PATH)
list(APPEND SOURCES
${BACNET_SRC}/bacapp.c
${BACNET_SRC}/bacdcode.c
${BACNET_SRC}/bacstr.c
${BACNET_SRC}/bacint.c
${BACNET_SRC}/bacreal.c
${BACNET_SRC}/datetime.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/basic/sys/days.c
${BACNET_SRC}/basic/sys/keylist.c
${BACNET_SRC}/bacdevobjpropref.c
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/wp.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
project(${BACNET_NAME})
else()
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(${BACNET_NAME})
target_include_directories(app PRIVATE ${BACNET_INCLUDE})
target_sources(app PRIVATE
${BACNET_TEST_PATH}/src/main.c
)
endif()
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
CONFIG_BACNETSTACK=y
@@ -0,0 +1,6 @@
tests:
bacnet.basic.object.color_object:
tags: bacnet
bacnet.basic.object.color_object.unit:
tags: bacnet
type: unit
@@ -0,0 +1,63 @@
# SPDX-License-Identifier: MIT
cmake_minimum_required(VERSION 3.13.1)
# Extract module path and names
string(REGEX REPLACE
"/zephyr/tests/[a-zA-Z_/-]*$" ""
BACNET_BASE
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/src/"
BACNET_SRC_PATH
${CMAKE_CURRENT_SOURCE_DIR})
string(REGEX REPLACE
"/zephyr/tests/" "/test/"
BACNET_TEST_PATH
${CMAKE_CURRENT_SOURCE_DIR})
get_filename_component(BACNET_NAME ${BACNET_BASE} NAME)
# Update include path for this module
list(APPEND BACNET_INCLUDE ${BACNET_BASE}/src)
if(BOARD STREQUAL unit_testing)
file(RELATIVE_PATH BACNET_INCLUDE $ENV{ZEPHYR_BASE} ${BACNET_BASE}/src)
list(APPEND INCLUDE ${BACNET_INCLUDE})
list(APPEND SOURCES
${BACNET_SRC_PATH}.c
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/../mock/device_mock.c
)
get_filename_component(BACNET_OBJECT_SRC ${BACNET_SRC_PATH} PATH)
get_filename_component(BACNET_BASIC_SRC ${BACNET_OBJECT_SRC} PATH)
get_filename_component(BACNET_SRC ${BACNET_BASIC_SRC} PATH)
list(APPEND SOURCES
${BACNET_SRC}/bacapp.c
${BACNET_SRC}/bacdcode.c
${BACNET_SRC}/bacstr.c
${BACNET_SRC}/bacint.c
${BACNET_SRC}/bacreal.c
${BACNET_SRC}/datetime.c
${BACNET_SRC}/timestamp.c
${BACNET_SRC}/basic/sys/days.c
${BACNET_SRC}/basic/sys/keylist.c
${BACNET_SRC}/bacdevobjpropref.c
${BACNET_SRC}/bactext.c
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
project(${BACNET_NAME})
else()
include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)
project(${BACNET_NAME})
target_include_directories(app PRIVATE ${BACNET_INCLUDE})
target_sources(app PRIVATE
${BACNET_TEST_PATH}/src/main.c
)
endif()
@@ -0,0 +1,2 @@
CONFIG_ZTEST=y
CONFIG_BACNETSTACK=y
@@ -0,0 +1,6 @@
tests:
bacnet.basic.object.color_temperature:
tags: bacnet
bacnet.basic.object.color_temperature.unit:
tags: bacnet
type: unit
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -47,6 +47,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/wp.c
${BACNET_SRC}/authentication_factor.c
${BACNET_SRC}/authentication_factor_format.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -54,6 +54,11 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/npdu.c
${BACNET_SRC}/proplist.c
${BACNET_SRC}/reject.c
${BACNET_SRC}/abort.c
${BACNET_SRC}/bacaddr.c
${BACNET_SRC}/bactimevalue.c
${BACNET_SRC}/bacerror.c
${BACNET_SRC}/basic/binding/address.c
${BACNET_SRC}/basic/object/acc.c
${BACNET_SRC}/basic/object/ai.c
${BACNET_SRC}/basic/object/ao.c
@@ -62,6 +67,8 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/basic/object/bo.c
${BACNET_SRC}/basic/object/bv.c
${BACNET_SRC}/basic/object/channel.c
${BACNET_SRC}/basic/object/color_object.c
${BACNET_SRC}/basic/object/color_temperature.c
${BACNET_SRC}/basic/object/command.c
${BACNET_SRC}/basic/object/csv.c
${BACNET_SRC}/basic/object/iv.c
@@ -76,6 +83,14 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/basic/object/piv.c
${BACNET_SRC}/basic/object/schedule.c
${BACNET_SRC}/basic/object/trendlog.c
${BACNET_SRC}/hostnport.c
${BACNET_SRC}/basic/service/h_apdu.c
${BACNET_SRC}/basic/service/h_cov.c
${BACNET_SRC}/basic/service/h_wp.c
${BACNET_SRC}/basic/sys/bigend.c
${BACNET_SRC}/basic/sys/keylist.c
${BACNET_SRC}/basic/tsm/tsm.c
${BACNET_SRC}/datalink/bvlc.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -87,6 +102,6 @@ else()
target_include_directories(app PRIVATE ${BACNET_INCLUDE})
target_sources(app PRIVATE
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/stubs.c
#${BACNET_TEST_PATH}/stubs.c
)
endif()
@@ -47,6 +47,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_OBJECT_SRC}/ao.c
${BACNET_SRC}/hostnport.c
)
add_definitions(-DUNIT_TESTING)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -26,6 +26,7 @@ if(BOARD STREQUAL unit_testing)
list(APPEND SOURCES
${BACNET_SRC_PATH}.c
${BACNET_TEST_PATH}/src/main.c
${BACNET_TEST_PATH}/../mock/device_mock.c
)
get_filename_component(BACNET_OBJECT_SRC ${BACNET_SRC_PATH} PATH)
@@ -45,6 +46,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -47,6 +47,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/wp.c
${BACNET_SRC}/cov.c
${BACNET_SRC}/memcopy.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -47,6 +47,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/wp.c
${BACNET_SRC}/proplist.c
${BACNET_SRC}/datalink/bvlc.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -1,2 +1,11 @@
CONFIG_ZTEST=y
CONFIG_BACNETSTACK=y
# BIP Options
CONFIG_BACDL_BIP=y
CONFIG_BACDL_BIP_PORT=47808
CONFIG_BACDL_BIP_ADDRESS_INDEX=0
# networking
CONFIG_NETWORKING=y
CONFIG_NET_IPV4=y
@@ -46,6 +46,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_BASIC_SRC}/sys/keylist.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -45,6 +45,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/indtext.c
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)
@@ -46,6 +46,7 @@ if(BOARD STREQUAL unit_testing)
${BACNET_SRC}/lighting.c
${BACNET_SRC}/wp.c
${BACNET_SRC}/bactimevalue.c
${BACNET_SRC}/hostnport.c
)
include($ENV{ZEPHYR_BASE}/subsys/testsuite/unittest.cmake)