diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index bd7b480b..b2dc7815 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -12,283 +12,7 @@ project(etl_unit_tests LANGUAGES CXX) add_executable(etl_tests main.cpp - murmurhash3.cpp - test_algorithm.cpp - test_alignment.cpp - test_array.cpp - test_array_view.cpp - test_array_wrapper.cpp - test_atomic.cpp - test_base64.cpp - test_binary.cpp - test_bip_buffer_spsc_atomic.cpp - test_bit.cpp - test_bitset_legacy.cpp - test_bitset_new_default_element_type.cpp - test_bitset_new_explicit_single_element_type.cpp - test_bitset_new_ext_default_element_type.cpp - test_bitset_new_ext_explicit_single_element_type.cpp - test_bit_stream.cpp - test_bit_stream_reader_big_endian.cpp - test_bit_stream_reader_little_endian.cpp - test_bit_stream_writer_big_endian.cpp - test_bit_stream_writer_little_endian.cpp - test_byte.cpp - test_byte_stream.cpp - test_bloom_filter.cpp - test_bresenham_line.cpp - test_bsd_checksum.cpp - test_buffer_descriptors.cpp - test_callback_service.cpp - test_callback_timer.cpp - test_callback_timer_atomic.cpp - test_callback_timer_interrupt.cpp - test_callback_timer_locked.cpp - test_char_traits.cpp - test_checksum.cpp - test_circular_buffer.cpp - test_circular_buffer_external_buffer.cpp - test_circular_iterator.cpp - test_compare.cpp - test_constant.cpp - test_container.cpp - test_correlation.cpp - test_covariance.cpp - test_crc.cpp - test_crc16.cpp - test_crc16_a.cpp - test_crc16_arc.cpp - test_crc16_aug_ccitt.cpp - test_crc16_buypass.cpp - test_crc16_ccitt.cpp - test_crc16_cdma2000.cpp - test_crc16_dds110.cpp - test_crc16_dectr.cpp - test_crc16_dectx.cpp - test_crc16_dnp.cpp - test_crc16_en13757.cpp - test_crc16_genibus.cpp - test_crc16_kermit.cpp - test_crc16_m17.cpp - test_crc16_maxim.cpp - test_crc16_mcrf4xx.cpp - test_crc16_modbus.cpp - test_crc16_profibus.cpp - test_crc16_riello.cpp - test_crc16_t10dif.cpp - test_crc16_teledisk.cpp - test_crc16_tms37157.cpp - test_crc16_usb.cpp - test_crc16_x25.cpp - test_crc16_xmodem.cpp - test_crc32.cpp - test_crc32_bzip2.cpp - test_crc32_c.cpp - test_crc32_d.cpp - test_crc32_jamcrc.cpp - test_crc32_mpeg2.cpp - test_crc32_posix.cpp - test_crc32_q.cpp - test_crc32_xfer.cpp - test_crc64_ecma.cpp - test_crc8_ccitt.cpp - test_crc8_cdma2000.cpp - test_crc8_darc.cpp - test_crc8_dvbs2.cpp - test_crc8_ebu.cpp - test_crc8_icode.cpp - test_crc8_itu.cpp - test_crc8_j1850_zero.cpp - test_crc8_j1850.cpp - test_crc8_maxim.cpp - test_crc8_rohc.cpp - test_crc8_wcdma.cpp - test_cyclic_value.cpp - test_debounce.cpp - test_delegate.cpp - test_delegate_cpp03.cpp - test_delegate_service.cpp - test_delegate_service_compile_time.cpp - test_deque.cpp - test_endian.cpp - test_enum_type.cpp - test_error_handler.cpp - test_etl_traits.cpp - test_exception.cpp - test_expected.cpp - test_fixed_iterator.cpp - test_fixed_sized_memory_block_allocator.cpp - test_flags.cpp - test_flat_map.cpp - test_flat_multimap.cpp - test_flat_multiset.cpp - test_flat_set.cpp - test_fnv_1.cpp - test_format_spec.cpp - test_forward_list.cpp - test_forward_list_shared_pool.cpp - test_fsm.cpp - test_function.cpp - test_functional.cpp - test_gamma.cpp - test_hash.cpp - test_hfsm.cpp - test_histogram.cpp - test_indirect_vector.cpp - test_indirect_vector_external_buffer.cpp - test_instance_count.cpp - test_integral_limits.cpp - test_intrusive_forward_list.cpp - test_intrusive_links.cpp - test_intrusive_list.cpp - test_intrusive_queue.cpp - test_intrusive_stack.cpp - test_invert.cpp - test_io_port.cpp - test_iterator.cpp - test_jenkins.cpp - test_largest.cpp - test_limiter.cpp - test_limits.cpp - test_list.cpp - test_list_shared_pool.cpp - test_make_string.cpp - test_map.cpp - test_math.cpp - test_math_functions.cpp - test_mean.cpp - test_mem_cast.cpp - test_mem_cast_ptr.cpp - test_memory.cpp - test_message_broker.cpp - test_message_bus.cpp test_message_packet.cpp - test_message_router.cpp - test_message_router_registry.cpp - test_message_timer.cpp - test_message_timer_atomic.cpp - test_message_timer_interrupt.cpp - test_message_timer_locked.cpp - test_multimap.cpp - test_multiset.cpp - test_multi_array.cpp - test_multi_range.cpp - test_multi_vector.cpp - test_murmur3.cpp - test_nth_type.cpp - test_numeric.cpp - test_observer.cpp - test_optional.cpp - test_packet.cpp - test_parameter_pack.cpp - test_parameter_type.cpp - test_parity_checksum.cpp - test_pearson.cpp - test_poly_span_dynamic_extent.cpp - test_poly_span_fixed_extent.cpp - test_pool.cpp - test_pool_external_buffer.cpp - test_priority_queue.cpp - test_pseudo_moving_average.cpp - test_quantize.cpp - test_queue.cpp - test_queue_lockable.cpp - test_queue_lockable_small.cpp - test_queue_memory_model_small.cpp - test_queue_mpmc_mutex.cpp - test_queue_mpmc_mutex_small.cpp - test_queue_spsc_atomic.cpp - test_queue_spsc_atomic_small.cpp - test_queue_spsc_isr.cpp - test_queue_spsc_isr_small.cpp - test_queue_spsc_locked.cpp - test_queue_spsc_locked_small.cpp - test_random.cpp - test_reference_flat_map.cpp - test_reference_flat_multimap.cpp - test_reference_flat_multiset.cpp - test_reference_flat_set.cpp - test_rescale.cpp - test_result.cpp - test_rms.cpp - test_scaled_rounding.cpp - test_set.cpp - test_shared_message.cpp - test_singleton.cpp - test_smallest.cpp - test_span_dynamic_extent.cpp - test_span_fixed_extent.cpp - test_stack.cpp - test_standard_deviation.cpp - test_state_chart.cpp - test_state_chart_with_data_parameter.cpp - test_state_chart_with_rvalue_data_parameter.cpp - test_state_chart_compile_time.cpp - test_state_chart_compile_time_with_data_parameter.cpp - test_string_char.cpp - test_string_char_external_buffer.cpp - test_string_stream.cpp - test_string_stream_u8.cpp - test_string_stream_u16.cpp - test_string_stream_u32.cpp - test_string_stream_wchar_t.cpp - test_string_u8.cpp - test_string_u8_external_buffer.cpp - test_string_u16.cpp - test_string_u16_external_buffer.cpp - test_string_u32.cpp - test_string_u32_external_buffer.cpp - test_string_utilities.cpp - test_string_utilities_std.cpp - test_string_utilities_std_u8.cpp - test_string_utilities_std_u16.cpp - test_string_utilities_std_u32.cpp - test_string_utilities_std_wchar_t.cpp - test_string_utilities_u8.cpp - test_string_utilities_u16.cpp - test_string_utilities_u32.cpp - test_string_utilities_wchar_t.cpp - test_string_view.cpp - test_string_wchar_t.cpp - test_string_wchar_t_external_buffer.cpp - test_successor.cpp - test_task_scheduler.cpp - test_threshold.cpp - test_to_arithmetic.cpp - test_to_arithmetic_u8.cpp - test_to_arithmetic_u16.cpp - test_to_arithmetic_u32.cpp - test_to_arithmetic_wchar_t.cpp - test_to_string.cpp - test_to_u8string.cpp - test_to_u16string.cpp - test_to_u32string.cpp - test_to_wstring.cpp - test_type_def.cpp - test_type_lookup.cpp - test_type_select.cpp - test_type_traits.cpp - test_unaligned_type.cpp - test_unaligned_type_constexpr.cpp - test_unordered_map.cpp - test_unordered_multimap.cpp - test_unordered_multiset.cpp - test_unordered_set.cpp - test_user_type.cpp - test_utility.cpp - test_variance.cpp - test_variant_legacy.cpp - test_variant_variadic.cpp - test_variant_pool.cpp - test_variant_pool_external_buffer.cpp - test_vector.cpp - test_vector_external_buffer.cpp - test_vector_non_trivial.cpp - test_vector_pointer.cpp - test_vector_pointer_external_buffer.cpp - test_visitor.cpp - test_xor_checksum.cpp - test_xor_rotate_checksum.cpp ) target_compile_definitions(etl_tests PRIVATE -DETL_DEBUG) @@ -403,7 +127,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif () if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) - if (ETL_ENABLE_SANITIZER) + if (ETL_ENABLE_SANITIZER MATCHES "ON") message(STATUS "Compiling with Sanitizer enabled") # MinGW doesn't presently support sanitization if (NOT MINGW) diff --git a/test/etl_error_handler/exceptions/CMakeLists.txt b/test/etl_error_handler/exceptions/CMakeLists.txt index 3eb91a71..fcbbdc48 100644 --- a/test/etl_error_handler/exceptions/CMakeLists.txt +++ b/test/etl_error_handler/exceptions/CMakeLists.txt @@ -54,21 +54,61 @@ target_include_directories(etl_tests ${CMAKE_CURRENT_LIST_DIR} ) -if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + message(STATUS "Using GCC compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message(STATUS "Using Clang compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds -fno-omit-frame-pointer + -fno-common -Wall -Wextra - -Werror + -Werror + -Wfloat-equal + -Wuseless-cast + -Wshadow + -Wnull-dereference ) - target_link_options(etl_tests +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds + -fno-omit-frame-pointer + -fno-common + -Wall + -Wextra + -Werror + -Wfloat-equal + -Wshadow + -Wnull-dereference ) endif () +if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + if (ETL_ENABLE_SANITIZER MATCHES "ON") + message(STATUS "Compiling with Sanitizer enabled") + # MinGW doesn't presently support sanitization + if (NOT MINGW) + target_compile_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + + target_link_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + endif() + endif () +endif () + # Enable the 'make test' CMake target using the executable defined above add_test(etl_error_handler_unit_tests etl_tests) diff --git a/test/etl_error_handler/log_errors/CMakeLists.txt b/test/etl_error_handler/log_errors/CMakeLists.txt index cbea8e44..4019cf25 100644 --- a/test/etl_error_handler/log_errors/CMakeLists.txt +++ b/test/etl_error_handler/log_errors/CMakeLists.txt @@ -54,21 +54,61 @@ target_include_directories(etl_tests ${CMAKE_CURRENT_LIST_DIR} ) -if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + message(STATUS "Using GCC compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message(STATUS "Using Clang compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds -fno-omit-frame-pointer + -fno-common -Wall -Wextra -Werror + -Wfloat-equal + -Wuseless-cast + -Wshadow + -Wnull-dereference ) - target_link_options(etl_tests +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds + -fno-omit-frame-pointer + -fno-common + -Wall + -Wextra + -Werror + -Wfloat-equal + -Wshadow + -Wnull-dereference ) endif () +if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + if (ETL_ENABLE_SANITIZER MATCHES "ON") + message(STATUS "Compiling with Sanitizer enabled") + # MinGW doesn't presently support sanitization + if (NOT MINGW) + target_compile_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + + target_link_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + endif() + endif () +endif () + # Enable the 'make test' CMake target using the executable defined above add_test(etl_error_handler_unit_tests etl_tests) diff --git a/test/etl_error_handler/log_errors_and_exceptions/CMakeLists.txt b/test/etl_error_handler/log_errors_and_exceptions/CMakeLists.txt index 6ef1fa64..a043c9c2 100644 --- a/test/etl_error_handler/log_errors_and_exceptions/CMakeLists.txt +++ b/test/etl_error_handler/log_errors_and_exceptions/CMakeLists.txt @@ -55,21 +55,61 @@ target_include_directories(etl_tests ${CMAKE_CURRENT_LIST_DIR} ) -if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + message(STATUS "Using GCC compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message(STATUS "Using Clang compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds -fno-omit-frame-pointer + -fno-common -Wall -Wextra -Werror + -Wfloat-equal + -Wuseless-cast + -Wshadow + -Wnull-dereference ) - target_link_options(etl_tests +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds + -fno-omit-frame-pointer + -fno-common + -Wall + -Wextra + -Werror + -Wfloat-equal + -Wshadow + -Wnull-dereference ) endif () +if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + if (ETL_ENABLE_SANITIZER MATCHES "ON") + message(STATUS "Compiling with Sanitizer enabled") + # MinGW doesn't presently support sanitization + if (NOT MINGW) + target_compile_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + + target_link_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + endif() + endif () +endif () + # Enable the 'make test' CMake target using the executable defined above add_test(etl_error_handler_unit_tests etl_tests) diff --git a/test/etl_initializer_list/CMakeLists.txt b/test/etl_initializer_list/CMakeLists.txt index 132fb00f..647b590a 100644 --- a/test/etl_initializer_list/CMakeLists.txt +++ b/test/etl_initializer_list/CMakeLists.txt @@ -55,21 +55,61 @@ target_include_directories(etl_tests ${CMAKE_CURRENT_LIST_DIR} ) -if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") + message(STATUS "Using GCC compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + message(STATUS "Using Clang compiler") +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "GNU") target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds -fno-omit-frame-pointer + -fno-common -Wall -Wextra -Werror + -Wfloat-equal + -Wuseless-cast + -Wshadow + -Wnull-dereference ) - target_link_options(etl_tests +endif () + +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + target_compile_options(etl_tests PRIVATE - -fsanitize=address,undefined,bounds + -fno-omit-frame-pointer + -fno-common + -Wall + -Wextra + -Werror + -Wfloat-equal + -Wshadow + -Wnull-dereference ) endif () +if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang")) + if (ETL_ENABLE_SANITIZER MATCHES "ON") + message(STATUS "Compiling with Sanitizer enabled") + # MinGW doesn't presently support sanitization + if (NOT MINGW) + target_compile_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + + target_link_options(etl_tests + PRIVATE + -fsanitize=address,undefined,bounds + ) + endif() + endif () +endif () + # Enable the 'make test' CMake target using the executable defined above add_test(etl_initializer_list_unit_tests etl_tests)