[test] use cmake to run unit tests (#8724)

This commit migrates unit tests to cmake.
* build unit tests with cmake
* add missing tests in cmake
* use ctest
* add platform udp stubs for test platform
* skip some static_assert with gcc-4
This commit is contained in:
Yakun Xu
2023-02-10 02:19:01 +08:00
committed by GitHub
parent 6e6a2ae145
commit 0e667b8e03
19 changed files with 273 additions and 472 deletions
+66
View File
@@ -60,3 +60,69 @@ jobs:
run: make -C third_party/tcplp/lib/test/
- name: Run
run: third_party/tcplp/lib/test/test_all
unit-tests:
runs-on: ubuntu-20.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@18bf8ad2ca49c14cbb28b91346d626ccfb00c518 # v2.1.0
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
with:
submodules: true
- name: Bootstrap
run: |
sudo rm /etc/apt/sources.list.d/* && sudo apt-get update
sudo apt-get --no-install-recommends install -y ninja-build
- name: Build Simulation
run: ./script/cmake-build simulation
- name: Test Simulation
run: cd build/simulation && ninja test
- name: Build POSIX
run: ./script/cmake-build posix
- name: Test POSIX
run: cd build/posix && ninja test
upload-coverage:
needs:
- unittests
runs-on: ubuntu-20.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@18bf8ad2ca49c14cbb28b91346d626ccfb00c518 # v2.1.0
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
with:
submodules: true
- name: Bootstrap
run: |
sudo apt-get --no-install-recommends install -y lcov
- uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
path: coverage/
- name: Combine Coverage
run: |
script/test combine_coverage
- name: Upload Coverage
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3.1.1
with:
files: final.info
fail_ci_if_error: true
delete-coverage-artifacts:
needs: upload-coverage
runs-on: ubuntu-20.04
steps:
- name: Harden Runner
uses: step-security/harden-runner@18bf8ad2ca49c14cbb28b91346d626ccfb00c518 # v2.1.0
with:
egress-policy: audit # TODO: change to 'egress-policy: block' after couple of runs
- uses: geekyeggo/delete-artifact@54ab544f12cdb7b71613a16a2b5a37a9ade990af # v2.0.0
with:
name: cov-*
useGlob: true
+1 -4
View File
@@ -33,6 +33,7 @@ file(READ .default-version OT_DEFAULT_VERSION)
string(STRIP ${OT_DEFAULT_VERSION} OT_DEFAULT_VERSION)
project(openthread VERSION ${OT_DEFAULT_VERSION})
include(CTest)
option(OT_BUILD_EXECUTABLES "Build executables" ON)
option(OT_COVERAGE "enable coverage" OFF)
@@ -204,10 +205,6 @@ endif()
add_subdirectory(src)
add_subdirectory(third_party EXCLUDE_FROM_ALL)
if(OT_PLATFORM STREQUAL "simulation")
enable_testing()
endif()
add_subdirectory(tests)
add_subdirectory(tools)
-1
View File
@@ -1031,7 +1031,6 @@ tests/Makefile
tests/fuzz/Makefile
tests/scripts/Makefile
tests/scripts/thread-cert/Makefile
tests/unit/Makefile
doc/Makefile
])
+1
View File
@@ -33,6 +33,7 @@ OT_SRCDIR="$(pwd)"
readonly OT_SRCDIR
OT_BUILD_OPTIONS=(
"-DBUILD_TESTING=OFF"
"-DOT_ANYCAST_LOCATOR=ON"
"-DOT_BUILD_EXECUTABLES=OFF"
"-DOT_BORDER_AGENT=ON"
+1
View File
@@ -39,6 +39,7 @@ main()
{
local builddir
local options=(
"-DBUILD_TESTING=OFF"
"-DCMAKE_BUILD_TYPE=Release"
"-DOT_COVERAGE=OFF"
"-DOT_LOG_LEVEL=INFO"
+8
View File
@@ -84,3 +84,11 @@ target_link_libraries(openthread-spinel-rcp
ot-config-radio
ot-config
)
add_executable(ot-test-spinel
spinel.c
)
target_compile_definitions(ot-test-spinel
PRIVATE -DSPINEL_SELF_TEST=1 -D_GNU_SOURCE
)
add_test(NAME ot-test-spinel COMMAND ot-test-spinel)
-12
View File
@@ -99,18 +99,6 @@ libopenthread_spinel_rcp_a_SOURCES = \
if OPENTHREAD_BUILD_TESTS
check_PROGRAMS = spinel-test
spinel_test_SOURCES = spinel.c
spinel_test_CFLAGS = \
$(COMMON_CPPFLAGS) \
-DSPINEL_SELF_TEST=1 \
-D_GNU_SOURCE \
-I$(top_srcdir)/src/core \
-I$(top_srcdir)/include \
$(NULL)
TESTS = spinel-test
install-headers: install-includeHEADERS
if OPENTHREAD_BUILD_COVERAGE
+11
View File
@@ -31,3 +31,14 @@ add_library(openthread-url EXCLUDE_FROM_ALL
)
target_link_libraries(openthread-url PRIVATE ot-config)
add_executable(ot-test-url
url.cpp
)
target_compile_definitions(ot-test-url
PRIVATE -DSELF_TEST=1
)
target_link_libraries(ot-test-url
PRIVATE ot-config
)
add_test(NAME ot-test-url COMMAND ot-test-url)
-17
View File
@@ -41,21 +41,4 @@ libopenthread_url_a_SOURCES = \
url.hpp \
$(NULL)
check_PROGRAMS = test-url
test_url_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/core \
-DSELF_TEST \
$(NULL)
test_url_SOURCES = \
url.cpp \
$(NULL)
TESTS = \
test-url \
$(NULL)
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
+15
View File
@@ -170,3 +170,18 @@ target_include_directories(openthread-posix PRIVATE
PUBLIC
${PROJECT_SOURCE_DIR}/src/posix/platform/include
)
add_executable(ot-posix-test-settings
settings.cpp
)
target_compile_definitions(ot-posix-test-settings
PRIVATE -DSELF_TEST=1 -DOPENTHREAD_CONFIG_LOG_PLATFORM=0
)
target_include_directories(ot-posix-test-settings
PRIVATE
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/src/core
${PROJECT_SOURCE_DIR}/src/posix/platform/include
)
add_test(NAME ot-posix-test-settings COMMAND ot-posix-test-settings)
-19
View File
@@ -97,23 +97,4 @@ if OPENTHREAD_BUILD_COVERAGE
CLEANFILES = $(wildcard *.gcda *.gcno)
endif # OPENTHREAD_BUILD_COVERAGE
check_PROGRAMS = test-settings
test_settings_CPPFLAGS = \
-I$(top_srcdir)/include \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/core \
-I$(top_srcdir)/src/posix/platform/include \
-DOPENTHREAD_CONFIG_LOG_PLATFORM=0 \
-DSELF_TEST \
$(NULL)
test_settings_SOURCES = \
settings.cpp \
$(NULL)
TESTS = \
test-settings \
$(NULL)
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
+2 -4
View File
@@ -26,10 +26,8 @@
# POSSIBILITY OF SUCH DAMAGE.
#
if(OT_PLATFORM STREQUAL "simulation")
if(OT_FTD)
add_subdirectory(unit)
endif()
if(OT_FTD AND BUILD_TESTING)
add_subdirectory(unit)
endif()
option(OT_FUZZ_TARGETS "enable fuzz targets" OFF)
-5
View File
@@ -31,7 +31,6 @@ include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
# Always package (e.g. for 'make dist') these subdirectories.
DIST_SUBDIRS = \
unit \
scripts \
fuzz \
$(NULL)
@@ -41,10 +40,6 @@ DIST_SUBDIRS = \
SUBDIRS = \
$(NULL)
SUBDIRS += \
unit \
$(NULL)
if OPENTHREAD_POSIX
if OPENTHREAD_ENABLE_CLI
SUBDIRS += \
+96
View File
@@ -60,6 +60,8 @@ target_link_libraries(ot-test-platform
)
set(COMMON_LIBS
openthread-spinel-ncp
openthread-hdlc
ot-test-platform
openthread-ftd
ot-test-platform
@@ -1006,6 +1008,15 @@ add_executable(ot-test-timer
test_timer.cpp
)
add_executable(ot-test-toolchain
test_toolchain.cpp test_toolchain_c.c
)
target_include_directories(ot-test-toolchain
PRIVATE
${COMMON_INCLUDES}
)
add_test(NAME ot-test-toolchain COMMAND ot-test-toolchain)
target_include_directories(ot-test-timer
PRIVATE
${COMMON_INCLUDES}
@@ -1043,3 +1054,88 @@ target_link_libraries(ot-test-tlv
)
add_test(NAME ot-test-tlv COMMAND ot-test-tlv)
add_executable(ot-test-hdlc
test_hdlc.cpp
)
target_include_directories(ot-test-hdlc
PRIVATE
${COMMON_INCLUDES}
)
target_compile_options(ot-test-hdlc
PRIVATE
${COMMON_COMPILE_OPTIONS}
)
target_link_libraries(ot-test-hdlc
PRIVATE
${COMMON_LIBS}
)
add_test(NAME ot-test-hdlc COMMAND ot-test-hdlc)
add_executable(ot-test-spinel-buffer
test_spinel_buffer.cpp
)
target_include_directories(ot-test-spinel-buffer
PRIVATE
${COMMON_INCLUDES}
)
target_compile_options(ot-test-spinel-buffer
PRIVATE
${COMMON_COMPILE_OPTIONS}
)
target_link_libraries(ot-test-spinel-buffer
PRIVATE
${COMMON_LIBS}
)
add_test(NAME ot-test-spinel-buffer COMMAND ot-test-spinel-buffer)
add_executable(ot-test-spinel-decoder
test_spinel_decoder.cpp
)
target_include_directories(ot-test-spinel-decoder
PRIVATE
${COMMON_INCLUDES}
)
target_compile_options(ot-test-spinel-decoder
PRIVATE
${COMMON_COMPILE_OPTIONS}
)
target_link_libraries(ot-test-spinel-decoder
PRIVATE
${COMMON_LIBS}
)
add_test(NAME ot-test-spinel-decoder COMMAND ot-test-spinel-decoder)
add_executable(ot-test-spinel-encoder
test_spinel_encoder.cpp
)
target_include_directories(ot-test-spinel-encoder
PRIVATE
${COMMON_INCLUDES}
)
target_compile_options(ot-test-spinel-encoder
PRIVATE
${COMMON_COMPILE_OPTIONS}
)
target_link_libraries(ot-test-spinel-encoder
PRIVATE
${COMMON_LIBS}
)
add_test(NAME ot-test-spinel-encoder COMMAND ot-test-spinel-encoder)
add_executable(ot-test-address-sanitizer
test_address_sanitizer.cpp
)
target_include_directories(ot-test-address-sanitizer
PRIVATE
${COMMON_INCLUDES}
)
target_compile_options(ot-test-address-sanitizer
PRIVATE
${COMMON_COMPILE_OPTIONS}
)
target_link_libraries(ot-test-address-sanitizer
PRIVATE
${COMMON_LIBS}
)
add_test(NAME ot-test-address-sanitizer COMMAND ot-test-address-sanitizer)
-404
View File
@@ -1,404 +0,0 @@
#
# Copyright (c) 2016, The OpenThread Authors.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of the copyright holder nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
include $(abs_top_nlbuild_autotools_dir)/automake/pre.am
COMMON_LIBTOOLFLAGS = --preserve-dup-deps
#
# Local headers to build against and distribute but not to install
# since they are not part of the package.
#
noinst_HEADERS = \
test_lowpan.hpp \
test_platform.h \
test_util.h \
test_util.hpp \
$(NULL)
#
# Other files we do want to distribute with the package.
#
EXTRA_DIST = \
$(NULL)
if OPENTHREAD_BUILD_TESTS
# C preprocessor option flags that will apply to all compiled objects in this
# makefile.
AM_CPPFLAGS = \
-DOPENTHREAD_FTD=1 \
-DOPENTHREAD_MTD=0 \
-DOPENTHREAD_RADIO=0 \
-DOPENTHREAD_RADIO_CLI=0 \
-DOPENTHREAD_SPINEL_CONFIG_OPENTHREAD_MESSAGE_ENABLE=1 \
-I$(top_srcdir)/include \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/core \
$(NULL)
if OPENTHREAD_EXAMPLES_SIMULATION
AM_CPPFLAGS += \
-I$(top_srcdir)/examples/platforms \
$(NULL)
endif
if OPENTHREAD_PLATFORM_POSIX
AM_CPPFLAGS += \
-DOPENTHREAD_PLATFORM_POSIX=1 \
-I$(top_srcdir)/src/posix/platform \
$(NULL)
endif
COMMON_LDADD = \
$(NULL)
if OPENTHREAD_ENABLE_NCP
COMMON_LDADD += \
$(top_builddir)/src/ncp/libopenthread-ncp-ftd.a \
$(NULL)
endif
COMMON_LDADD += \
$(top_builddir)/src/core/libopenthread-ftd.a \
$(top_builddir)/third_party/tcplp/libtcplp.a \
$(top_builddir)/src/core/libopenthread-ftd.a \
-lpthread \
$(NULL)
if OPENTHREAD_ENABLE_BUILTIN_MBEDTLS
COMMON_LDADD += \
$(top_builddir)/third_party/mbedtls/libmbedcrypto.a \
$(NULL)
endif
if OPENTHREAD_PLATFORM_POSIX
COMMON_LDADD += \
-lutil
$(NULL)
endif
# Test applications that should be run when the 'check' target is run.
check_PROGRAMS = \
ot-test-toolchain \
$(NULL)
if OPENTHREAD_ENABLE_FTD
check_PROGRAMS += \
ot-test-aes \
ot-test-array \
ot-test-binary-search \
ot-test-checksum \
ot-test-child \
ot-test-child-table \
ot-test-cmd-line-parser \
ot-test-data \
ot-test-dns \
ot-test-dso \
ot-test-ecdsa \
ot-test-flash \
ot-test-frame-builder \
ot-test-heap \
ot-test-heap-array \
ot-test-heap-string \
ot-test-hkdf-sha256 \
ot-test-hmac-sha256 \
ot-test-ip4-header \
ot-test-ip6-header \
ot-test-ip-address \
ot-test-link-quality \
ot-test-linked-list \
ot-test-lowpan \
ot-test-mac-frame \
ot-test-macros \
ot-test-meshcop \
ot-test-message \
ot-test-message-queue \
ot-test-multicast-listeners-table \
ot-test-nat64 \
ot-test-ndproxy-table \
ot-test-netif \
ot-test-network-data \
ot-test-network-name \
ot-test-pool \
ot-test-priority-queue \
ot-test-pskc \
ot-test-serial-number \
ot-test-routing-manager \
ot-test-smart-ptrs \
ot-test-srp-server \
ot-test-string \
ot-test-timer \
ot-test-tlv \
$(NULL)
if OPENTHREAD_ENABLE_NCP
check_PROGRAMS += \
ot-test-hdlc \
ot-test-spinel-buffer \
ot-test-spinel-decoder \
ot-test-spinel-encoder \
$(NULL)
endif
endif # OPENTHREAD_ENABLE_FTD
XFAIL_TESTS = \
$(NULL)
if OPENTHREAD_WITH_ADDRESS_SANITIZER
check_PROGRAMS += ot-test-address-sanitizer
XFAIL_TESTS += ot-test-address-sanitizer
ot_test_address_sanitizer_SOURCES = test_address_sanitizer.cpp
endif # OPENTHREAD_WITH_ADDRESS_SANITIZER
# Test applications and scripts that should be built and run when the
# 'check' target is run.
TESTS = \
$(check_PROGRAMS) \
$(NULL)
# The additional environment variables and their values that will be
# made available to all programs and scripts in TESTS.
TESTS_ENVIRONMENT = \
top_srcdir='$(top_srcdir)' \
$(NULL)
COMMON_SOURCES = test_platform.cpp test_util.cpp
# Source, compiler, and linker options for test programs.
ot_test_aes_LDADD = $(COMMON_LDADD)
ot_test_aes_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_aes_SOURCES = $(COMMON_SOURCES) test_aes.cpp
ot_test_array_LDADD = $(COMMON_LDADD)
ot_test_array_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_array_SOURCES = $(COMMON_SOURCES) test_array.cpp
ot_test_binary_search_LDADD = $(COMMON_LDADD)
ot_test_binary_search_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_binary_search_SOURCES = $(COMMON_SOURCES) test_binary_search.cpp
ot_test_checksum_LDADD = $(COMMON_LDADD)
ot_test_checksum_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_checksum_SOURCES = $(COMMON_SOURCES) test_checksum.cpp
ot_test_child_LDADD = $(COMMON_LDADD)
ot_test_child_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_child_SOURCES = $(COMMON_SOURCES) test_child.cpp
ot_test_child_table_LDADD = $(COMMON_LDADD)
ot_test_child_table_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_child_table_SOURCES = $(COMMON_SOURCES) test_child_table.cpp
ot_test_cmd_line_parser_LDADD = $(COMMON_LDADD)
ot_test_cmd_line_parser_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_cmd_line_parser_SOURCES = $(COMMON_SOURCES) test_cmd_line_parser.cpp
ot_test_data_LDADD = $(COMMON_LDADD)
ot_test_data_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_data_SOURCES = $(COMMON_SOURCES) test_data.cpp
ot_test_dns_LDADD = $(COMMON_LDADD)
ot_test_dns_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_dns_SOURCES = $(COMMON_SOURCES) test_dns.cpp
ot_test_dso_LDADD = $(COMMON_LDADD)
ot_test_dso_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_dso_SOURCES = $(COMMON_SOURCES) test_dso.cpp
ot_test_ecdsa_LDADD = $(COMMON_LDADD)
ot_test_ecdsa_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_ecdsa_SOURCES = $(COMMON_SOURCES) test_ecdsa.cpp
ot_test_flash_LDADD = $(COMMON_LDADD)
ot_test_flash_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_flash_SOURCES = $(COMMON_SOURCES) test_flash.cpp
ot_test_frame_builder_LDADD = $(COMMON_LDADD)
ot_test_frame_builder_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_frame_builder_SOURCES = $(COMMON_SOURCES) test_frame_builder.cpp
ot_test_hdlc_LDADD = $(COMMON_LDADD)
ot_test_hdlc_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_hdlc_SOURCES = $(COMMON_SOURCES) test_hdlc.cpp
ot_test_heap_LDADD = $(COMMON_LDADD)
ot_test_heap_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_heap_SOURCES = $(COMMON_SOURCES) test_heap.cpp
ot_test_heap_array_LDADD = $(COMMON_LDADD)
ot_test_heap_array_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_heap_array_SOURCES = $(COMMON_SOURCES) test_heap_array.cpp
ot_test_heap_string_LDADD = $(COMMON_LDADD)
ot_test_heap_string_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_heap_string_SOURCES = $(COMMON_SOURCES) test_heap_string.cpp
ot_test_hkdf_sha256_LDADD = $(COMMON_LDADD)
ot_test_hkdf_sha256_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_hkdf_sha256_SOURCES = $(COMMON_SOURCES) test_hkdf_sha256.cpp
ot_test_hmac_sha256_LDADD = $(COMMON_LDADD)
ot_test_hmac_sha256_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_hmac_sha256_SOURCES = $(COMMON_SOURCES) test_hmac_sha256.cpp
ot_test_ip4_header_LDADD = $(COMMON_LDADD)
ot_test_ip4_header_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_ip4_header_SOURCES = $(COMMON_SOURCES) test_ip4_header.cpp
ot_test_ip6_header_LDADD = $(COMMON_LDADD)
ot_test_ip6_header_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_ip6_header_SOURCES = $(COMMON_SOURCES) test_ip6_header.cpp
ot_test_ip_address_LDADD = $(COMMON_LDADD)
ot_test_ip_address_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_ip_address_SOURCES = $(COMMON_SOURCES) test_ip_address.cpp
ot_test_link_quality_LDADD = $(COMMON_LDADD)
ot_test_link_quality_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_link_quality_SOURCES = $(COMMON_SOURCES) test_link_quality.cpp
ot_test_linked_list_LDADD = $(COMMON_LDADD)
ot_test_linked_list_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_linked_list_SOURCES = $(COMMON_SOURCES) test_linked_list.cpp
ot_test_lowpan_LDADD = $(COMMON_LDADD)
ot_test_lowpan_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_lowpan_SOURCES = $(COMMON_SOURCES) test_lowpan.cpp
ot_test_mac_frame_LDADD = $(COMMON_LDADD)
ot_test_mac_frame_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_mac_frame_SOURCES = $(COMMON_SOURCES) test_mac_frame.cpp
ot_test_macros_LDADD = $(COMMON_LDADD)
ot_test_macros_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_macros_SOURCES = $(COMMON_SOURCES) test_macros.cpp
ot_test_message_LDADD = $(COMMON_LDADD)
ot_test_message_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_message_SOURCES = $(COMMON_SOURCES) test_message.cpp
ot_test_message_queue_LDADD = $(COMMON_LDADD)
ot_test_message_queue_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_message_queue_SOURCES = $(COMMON_SOURCES) test_message_queue.cpp
ot_test_multicast_listeners_table_LDADD = $(COMMON_LDADD)
ot_test_multicast_listeners_table_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_multicast_listeners_table_SOURCES = $(COMMON_SOURCES) test_multicast_listeners_table.cpp
ot_test_nat64_LDADD = $(COMMON_LDADD)
ot_test_nat64_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_nat64_SOURCES = $(COMMON_SOURCES) test_nat64.cpp
ot_test_network_name_LDADD = $(COMMON_LDADD)
ot_test_network_name_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_network_name_SOURCES = $(COMMON_SOURCES) test_network_name.cpp
ot_test_spinel_buffer_LDADD = $(COMMON_LDADD)
ot_test_spinel_buffer_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_spinel_buffer_SOURCES = $(COMMON_SOURCES) test_spinel_buffer.cpp
ot_test_ndproxy_table_LDADD = $(COMMON_LDADD)
ot_test_ndproxy_table_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_ndproxy_table_SOURCES = $(COMMON_SOURCES) test_ndproxy_table.cpp
ot_test_netif_LDADD = $(COMMON_LDADD)
ot_test_netif_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_netif_SOURCES = $(COMMON_SOURCES) test_netif.cpp
ot_test_network_data_LDADD = $(COMMON_LDADD)
ot_test_network_data_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_network_data_SOURCES = $(COMMON_SOURCES) test_network_data.cpp
ot_test_pool_LDADD = $(COMMON_LDADD)
ot_test_pool_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_pool_SOURCES = $(COMMON_SOURCES) test_pool.cpp
ot_test_priority_queue_LDADD = $(COMMON_LDADD)
ot_test_priority_queue_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_priority_queue_SOURCES = $(COMMON_SOURCES) test_priority_queue.cpp
ot_test_pskc_LDADD = $(COMMON_LDADD)
ot_test_pskc_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_pskc_SOURCES = $(COMMON_SOURCES) test_pskc.cpp
ot_test_smart_ptrs_LDADD = $(COMMON_LDADD)
ot_test_smart_ptrs_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_smart_ptrs_SOURCES = $(COMMON_SOURCES) test_smart_ptrs.cpp
ot_test_meshcop_LDADD = $(COMMON_LDADD)
ot_test_meshcop_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_meshcop_SOURCES = $(COMMON_SOURCES) test_meshcop.cpp
ot_test_routing_manager_LDADD = $(COMMON_LDADD)
ot_test_routing_manager_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_routing_manager_SOURCES = $(COMMON_SOURCES) test_routing_manager.cpp
ot_test_serial_number_LDADD = $(COMMON_LDADD)
ot_test_serial_number_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_serial_number_SOURCES = $(COMMON_SOURCES) test_serial_number.cpp
ot_test_srp_server_LDADD = $(COMMON_LDADD)
ot_test_srp_server_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_srp_server_SOURCES = $(COMMON_SOURCES) test_srp_server.cpp
ot_test_string_LDADD = $(COMMON_LDADD)
ot_test_string_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_string_SOURCES = $(COMMON_SOURCES) test_string.cpp
ot_test_spinel_decoder_LDADD = $(COMMON_LDADD)
ot_test_spinel_decoder_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_spinel_decoder_SOURCES = $(COMMON_SOURCES) test_spinel_decoder.cpp
ot_test_spinel_encoder_LDADD = $(COMMON_LDADD)
ot_test_spinel_encoder_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_spinel_encoder_SOURCES = $(COMMON_SOURCES) test_spinel_encoder.cpp
ot_test_timer_LDADD = $(COMMON_LDADD)
ot_test_timer_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_timer_SOURCES = $(COMMON_SOURCES) test_timer.cpp
ot_test_tlv_LDADD = $(COMMON_LDADD)
ot_test_tlv_LIBTOOLFLAGS = $(COMMON_LIBTOOLFLAGS)
ot_test_tlv_SOURCES = $(COMMON_SOURCES) test_tlv.cpp
ot_test_toolchain_LDADD = $(NULL)
ot_test_toolchain_SOURCES = test_toolchain.cpp test_toolchain_c.c
if OPENTHREAD_BUILD_COVERAGE
CLEANFILES = $(wildcard *.gcda *.gcno)
endif # OPENTHREAD_BUILD_COVERAGE
endif # OPENTHREAD_BUILD_TESTS
include $(abs_top_nlbuild_autotools_dir)/automake/post.am
+3
View File
@@ -64,9 +64,12 @@ void TestBinarySearch(void)
constexpr Entry kUnsortedTable[] = {{"z", 0}, {"a", 0}, {"b", 0}};
constexpr Entry kDuplicateEntryTable[] = {{"duplicate", 1}, {"duplicate", 2}};
// gcc-4 does not support constexpr function
#if __GNUC__ > 4
static_assert(BinarySearch::IsSorted(kTable), "IsSorted() failed");
static_assert(!BinarySearch::IsSorted(kUnsortedTable), "failed for unsorted table");
static_assert(!BinarySearch::IsSorted(kDuplicateEntryTable), "failed for table with duplicate entries");
#endif
for (const Entry &tableEntry : kTable)
{
+60
View File
@@ -445,4 +445,64 @@ OT_TOOL_WEAK void otPlatDsoDisconnect(otPlatDsoConnection *aConnection, otPlatDs
#endif // #if OPENTHREAD_CONFIG_DNS_DSO_ENABLE
#if OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE
otError otPlatUdpSocket(otUdpSocket *aUdpSocket)
{
OT_UNUSED_VARIABLE(aUdpSocket);
return OT_ERROR_NONE;
}
otError otPlatUdpClose(otUdpSocket *aUdpSocket)
{
OT_UNUSED_VARIABLE(aUdpSocket);
return OT_ERROR_NONE;
}
otError otPlatUdpBind(otUdpSocket *aUdpSocket)
{
OT_UNUSED_VARIABLE(aUdpSocket);
return OT_ERROR_NONE;
}
otError otPlatUdpBindToNetif(otUdpSocket *aUdpSocket, otNetifIdentifier aNetifIdentifier)
{
OT_UNUSED_VARIABLE(aUdpSocket);
OT_UNUSED_VARIABLE(aNetifIdentifier);
return OT_ERROR_NONE;
}
otError otPlatUdpConnect(otUdpSocket *aUdpSocket)
{
OT_UNUSED_VARIABLE(aUdpSocket);
return OT_ERROR_NONE;
}
otError otPlatUdpSend(otUdpSocket *aUdpSocket, otMessage *aMessage, const otMessageInfo *aMessageInfo)
{
OT_UNUSED_VARIABLE(aUdpSocket);
OT_UNUSED_VARIABLE(aMessageInfo);
return OT_ERROR_NONE;
}
otError otPlatUdpJoinMulticastGroup(otUdpSocket *aUdpSocket,
otNetifIdentifier aNetifIdentifier,
const otIp6Address *aAddress)
{
OT_UNUSED_VARIABLE(aUdpSocket);
OT_UNUSED_VARIABLE(aNetifIdentifier);
OT_UNUSED_VARIABLE(aAddress);
return OT_ERROR_NONE;
}
otError otPlatUdpLeaveMulticastGroup(otUdpSocket *aUdpSocket,
otNetifIdentifier aNetifIdentifier,
const otIp6Address *aAddress)
{
OT_UNUSED_VARIABLE(aUdpSocket);
OT_UNUSED_VARIABLE(aNetifIdentifier);
OT_UNUSED_VARIABLE(aAddress);
return OT_ERROR_NONE;
}
#endif // OPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE
} // extern "C"
+6 -6
View File
@@ -145,7 +145,7 @@ void TestEncoder(void)
DumpBuffer("Frame", frame, frameLen);
parsedLen = spinel_datatype_unpack(
frame, (spinel_size_t)frameLen,
frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_BOOL_S SPINEL_DATATYPE_BOOL_S SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_INT8_S
SPINEL_DATATYPE_UINT16_S SPINEL_DATATYPE_INT16_S SPINEL_DATATYPE_UINT32_S SPINEL_DATATYPE_INT32_S
SPINEL_DATATYPE_UINT64_S SPINEL_DATATYPE_INT64_S SPINEL_DATATYPE_UINT_PACKED_S
@@ -200,7 +200,7 @@ void TestEncoder(void)
DumpBuffer("Frame", frame, frameLen);
parsedLen = spinel_datatype_unpack(
frame, (spinel_size_t)frameLen,
frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_STRUCT_S(
SPINEL_DATATYPE_UINT32_S SPINEL_DATATYPE_EUI48_S SPINEL_DATATYPE_UINT_PACKED_S) SPINEL_DATATYPE_INT16_S
@@ -215,7 +215,7 @@ void TestEncoder(void)
VerifyOrQuit(memcmp(eui48, &kEui48, sizeof(spinel_eui48_t)) == 0);
// Parse the struct as a "data with len".
parsedLen = spinel_datatype_unpack(frame, (spinel_size_t)frameLen,
parsedLen = spinel_datatype_unpack(frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_DATA_WLEN_S SPINEL_DATATYPE_INT16_S
),
@@ -258,7 +258,7 @@ void TestEncoder(void)
SuccessOrQuit(ReadFrame(ncpBuffer, frame, frameLen));
parsedLen = spinel_datatype_unpack(
frame, (spinel_size_t)frameLen,
frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_STRUCT_S(SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_UTF8_S SPINEL_DATATYPE_STRUCT_S(
SPINEL_DATATYPE_BOOL_S SPINEL_DATATYPE_IPv6ADDR_S) SPINEL_DATATYPE_UINT16_S)
SPINEL_DATATYPE_EUI48_S SPINEL_DATATYPE_STRUCT_S(SPINEL_DATATYPE_UINT32_S) SPINEL_DATATYPE_INT32_S),
@@ -296,7 +296,7 @@ void TestEncoder(void)
SuccessOrQuit(ReadFrame(ncpBuffer, frame, frameLen));
parsedLen = spinel_datatype_unpack(
frame, (spinel_size_t)frameLen,
frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_STRUCT_S(
SPINEL_DATATYPE_UINT32_S SPINEL_DATATYPE_STRUCT_S(SPINEL_DATATYPE_EUI48_S SPINEL_DATATYPE_UINT_PACKED_S))),
&u8, &u32, &eui48, &u_3);
@@ -340,7 +340,7 @@ void TestEncoder(void)
SuccessOrQuit(ReadFrame(ncpBuffer, frame, frameLen));
parsedLen = spinel_datatype_unpack(
frame, (spinel_size_t)frameLen,
frame, static_cast<spinel_size_t>(frameLen),
(SPINEL_DATATYPE_UINT8_S SPINEL_DATATYPE_STRUCT_S(
SPINEL_DATATYPE_UINT32_S SPINEL_DATATYPE_IPv6ADDR_S SPINEL_DATATYPE_EUI64_S) SPINEL_DATATYPE_UTF8_S),
&u8, &u32, &ip6Addr, &eui64, &utf_1);
+3
View File
@@ -309,12 +309,15 @@ void TestStringToLowercase(void)
printf(" -- PASS\n");
}
// gcc-4 does not support constexpr function
#if __GNUC__ > 4
static_assert(ot::AreStringsInOrder("a", "b"), "AreStringsInOrder() failed");
static_assert(ot::AreStringsInOrder("aa", "aaa"), "AreStringsInOrder() failed");
static_assert(ot::AreStringsInOrder("", "a"), "AreStringsInOrder() failed");
static_assert(!ot::AreStringsInOrder("cd", "cd"), "AreStringsInOrder() failed");
static_assert(!ot::AreStringsInOrder("z", "abcd"), "AreStringsInOrder() failed");
static_assert(!ot::AreStringsInOrder("0", ""), "AreStringsInOrder() failed");
#endif
} // namespace ot