da2dc9841a
* fixed BACnetXYcolor and BACnetColorCommand encode and decoding and improved unit test coverage. Refactored BACnetXYcolor to/from ascii into lighting module. * added to the color, color temperature, and lighting output objects a fade/ramp/step engine. Added color and color command coercion into the channel object and enabled color temperature object coercion. Added CreateObject and DeleteObject service handling to the color, color temperature, lighting output, and channel objects. * added blinkt demo app for Raspberry Pi [WIP] * updated gitignore to simplify handling of apps folder contents * fixed piface demo build * added RaspiOS to pipeline for piface and blinkt! demo builds * added device object timer function for child object types into example Device object. Refactored device object to increment database revision for create or delete object services. Refactored example app/server to use mstimer library and device child object timers. --------- Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
172 lines
4.5 KiB
CMake
172 lines
4.5 KiB
CMake
# SPDX-License-Identifier: MIT
|
|
|
|
cmake_minimum_required(VERSION 3.10 FATAL_ERROR)
|
|
# set the project name
|
|
project(Unit_Tests)
|
|
|
|
# add definitions
|
|
add_definitions(-fprofile-arcs -ftest-coverage)
|
|
|
|
option(BACNET_STACK_DEPRECATED_DISABLE "Disable deprecation compile warnings" ON)
|
|
|
|
if(BACNET_STACK_DEPRECATED_DISABLE)
|
|
add_definitions(-DBACNET_STACK_DEPRECATED_DISABLE)
|
|
endif()
|
|
|
|
# Set the compiler options
|
|
if (NOT MSVC)
|
|
add_compile_options(-Wall -g -O0 -W -fprofile-arcs -ftest-coverage)
|
|
# ignore some warnings that occur during unit testing
|
|
add_compile_options(-Wno-unused-variable -Wno-unused-function)
|
|
add_compile_options(-Wno-sign-compare -Wno-unused-parameter)
|
|
add_link_options(-fprofile-arcs -ftest-coverage)
|
|
endif()
|
|
|
|
# Create the lcov target. Run result tests with 'make lcov'
|
|
add_custom_target(lcov
|
|
COMMAND mkdir -p lcoverage
|
|
)
|
|
add_custom_command(TARGET lcov
|
|
COMMAND echo "=================== LCOV ===================="
|
|
COMMAND echo "-- Passing lcov tool under code coverage"
|
|
COMMAND lcov --capture --directory ../ --output-file lcoverage/main_coverage.info
|
|
COMMAND echo "-- Generating HTML output files"
|
|
COMMAND genhtml lcoverage/main_coverage.info --output-directory lcoverage
|
|
)
|
|
|
|
#
|
|
# add tests
|
|
#
|
|
|
|
list(APPEND testdirs
|
|
# unit/bacnet/bacerror
|
|
unit/bacnet/bits
|
|
)
|
|
|
|
list(APPEND testdirs
|
|
bacnet/abort
|
|
bacnet/alarm_ack
|
|
bacnet/arf
|
|
bacnet/awf
|
|
bacnet/bacaddr
|
|
bacnet/bacapp
|
|
bacnet/bacdcode
|
|
bacnet/bacdevobjpropref
|
|
bacnet/bacdest
|
|
bacnet/bacerror
|
|
bacnet/bacint
|
|
bacnet/bacpropstates
|
|
bacnet/bacreal
|
|
bacnet/bacstr
|
|
bacnet/bactimevalue
|
|
bacnet/cov
|
|
bacnet/create_object
|
|
bacnet/datetime
|
|
bacnet/dcc
|
|
bacnet/delete_object
|
|
bacnet/event
|
|
bacnet/getalarm
|
|
bacnet/getevent
|
|
bacnet/hostnport
|
|
bacnet/iam
|
|
bacnet/ihave
|
|
bacnet/indtext
|
|
bacnet/lighting
|
|
bacnet/list_element
|
|
bacnet/lso
|
|
bacnet/memcopy
|
|
bacnet/npdu
|
|
bacnet/property
|
|
bacnet/ptransfer
|
|
bacnet/rd
|
|
bacnet/reject
|
|
bacnet/rp
|
|
bacnet/rpm
|
|
bacnet/timestamp
|
|
bacnet/timesync
|
|
bacnet/whohas
|
|
bacnet/whois
|
|
bacnet/wp
|
|
bacnet/wpm
|
|
bacnet/weeklyschedule
|
|
)
|
|
|
|
# bacnet/basic/*
|
|
list(APPEND testdirs
|
|
bacnet/basic/binding/address
|
|
bacnet/basic/bbmd6
|
|
# basic/object
|
|
bacnet/basic/object/acc
|
|
bacnet/basic/object/access_credential
|
|
bacnet/basic/object/access_door
|
|
bacnet/basic/object/access_point
|
|
bacnet/basic/object/access_rights
|
|
bacnet/basic/object/access_user
|
|
bacnet/basic/object/access_zone
|
|
bacnet/basic/object/ai
|
|
bacnet/basic/object/ao
|
|
bacnet/basic/object/av
|
|
bacnet/basic/object/bacfile
|
|
bacnet/basic/object/bi
|
|
bacnet/basic/object/bo
|
|
bacnet/basic/object/bv
|
|
bacnet/basic/object/channel
|
|
bacnet/basic/object/color_object
|
|
bacnet/basic/object/color_temperature
|
|
bacnet/basic/object/command
|
|
bacnet/basic/object/credential_data_input
|
|
bacnet/basic/object/csv
|
|
bacnet/basic/object/device
|
|
bacnet/basic/object/iv
|
|
#bacnet/basic/object/lc #Tests skipped, redesign to use only API
|
|
bacnet/basic/object/lo
|
|
bacnet/basic/object/lsp
|
|
bacnet/basic/object/ms-input
|
|
bacnet/basic/object/mso
|
|
bacnet/basic/object/msv
|
|
bacnet/basic/object/netport
|
|
bacnet/basic/object/objects
|
|
bacnet/basic/object/osv
|
|
bacnet/basic/object/piv
|
|
bacnet/basic/object/schedule
|
|
bacnet/basic/object/trendlog
|
|
# basic/sys
|
|
bacnet/basic/sys/color_rgb
|
|
bacnet/basic/sys/days
|
|
bacnet/basic/sys/fifo
|
|
bacnet/basic/sys/filename
|
|
bacnet/basic/sys/keylist
|
|
bacnet/basic/sys/linear
|
|
bacnet/basic/sys/ringbuf
|
|
bacnet/basic/sys/sbuf
|
|
)
|
|
|
|
# bacnet/datalink/*
|
|
list(APPEND testdirs
|
|
bacnet/datalink/cobs
|
|
bacnet/datalink/crc
|
|
bacnet/datalink/bvlc
|
|
)
|
|
|
|
enable_testing()
|
|
foreach(testdir IN ITEMS ${testdirs})
|
|
get_filename_component(basename ${testdir} NAME)
|
|
add_subdirectory(${testdir})
|
|
add_test(build_${basename}
|
|
"${CMAKE_COMMAND}"
|
|
--build "${CMAKE_BINARY_DIR}"
|
|
--config "$<CONFIG>"
|
|
--target test_${basename}
|
|
)
|
|
add_test(test_${basename} ${testdir}/test_${basename})
|
|
set_tests_properties(test_${basename} PROPERTIES FIXTURES_REQUIRED test_fixture)
|
|
set_tests_properties(build_${basename} PROPERTIES FIXTURES_SETUP test_fixture)
|
|
endforeach()
|
|
|
|
message(STATUS "BACNET: using cmake:....................\"${CMAKE_VERSION}\"")
|
|
message(STATUS "BACNET: CMAKE_C_COMPILER_ID:............\"${CMAKE_C_COMPILER_ID}\"")
|
|
message(STATUS "BACNET: CMAKE_C_COMPILER_VERSION:.......\"${CMAKE_C_COMPILER_VERSION}\"")
|
|
message(STATUS "BACNET: CMAKE_CXX_COMPILER_ID:..........\"${CMAKE_CXX_COMPILER_ID}\"")
|
|
message(STATUS "BACNET: CMAKE_CXX_COMPILER_VERSION:.....\"${CMAKE_CXX_COMPILER_VERSION}\"")
|
|
message(STATUS "BACNET: CMAKE_INSTALL_PREFIX:...........\"${CMAKE_INSTALL_PREFIX}\"")
|