Skip to content

Commit

Permalink
Update test sources in meson build (#604)
Browse files Browse the repository at this point in the history
- Update list of tests according to CMakeLists.txt content.
- Update compiler args :
	- Add same arguments as in CMakeLists.txt.
	- Remove non-vitual-dtor warnings (code need to be fixed before enabling this warning).
	- Enable sanatizer.
- Add unittest-cpp subproject as a wrap dependency.
- Add `meson test`target to start the `etl_unit_tests` program.
  • Loading branch information
evantill authored and jwellbelove committed Oct 19, 2022
1 parent 0097f18 commit ccdd5c2
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 46 deletions.
2 changes: 1 addition & 1 deletion meson_options.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
option('use_stl', type : 'boolean', value : true)
option('use_stl', description: 'Compiling for STL', type: 'boolean', value: true)
9 changes: 9 additions & 0 deletions subprojects/unittest-cpp.wrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[wrap-file]
directory = unittest-cpp-2.0.0
source_url = https://github.com/unittest-cpp/unittest-cpp/archive/v2.0.0.zip
source_filename = unittest-cpp-2.0.0.zip
source_hash = 3ba4f8b6c6e75ca8c79dd6008c78e95fb08554fbf2e0f1195fb78a4bf5a8a805
patch_url = https://wrapdb.mesonbuild.com/v2/unittest-cpp_2.0.0-1/get_patch
patch_filename = unittest-cpp-2.0.0-1-wrap.zip
patch_hash = a887de2b619c13fc4fd8bff844ca7015a2046dc613ae0765dd4452ff70db12ca

123 changes: 78 additions & 45 deletions test/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,45 @@ etl_test_sources = files(
'murmurhash3.cpp',
'test_algorithm.cpp',
'test_alignment.cpp',
'test_array.cpp',
'test_array_view.cpp',
'test_array_wrapper.cpp',
'test_atomic_clang_sync.cpp',
'test_atomic_gcc_sync.cpp',
'test_atomic_std.cpp',
'test_array.cpp',
'test_atomic.cpp',
'test_binary.cpp',
'test_bip_buffer_spsc_atomic.cpp',
'test_bitset.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_bit_stream.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_bloom_filter.cpp',
'test_bresenham_line.cpp',
'test_bsd_checksum.cpp',
'test_buffer_descriptors.cpp',
'test_byte_stream.cpp',
'test_byte.cpp',
'test_callback_service.cpp',
'test_callback_timer_atomic.cpp',
'test_callback_timer_interrupt.cpp',
'test_callback_timer_locked.cpp',
'test_callback_timer.cpp',
'test_checksum.cpp',
'test_circular_buffer.cpp',
'test_circular_buffer_external_buffer.cpp',
'test_circular_buffer.cpp',
'test_circular_iterator.cpp',
'test_compare.cpp',
'test_compiler_settings.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',
Expand All @@ -56,7 +67,7 @@ etl_test_sources = files(
'test_crc16_usb.cpp',
'test_crc16_x25.cpp',
'test_crc16_xmodem.cpp',
'test_crc32.cpp',
'test_crc16.cpp',
'test_crc32_bzip2.cpp',
'test_crc32_c.cpp',
'test_crc32_d.cpp',
Expand All @@ -65,6 +76,7 @@ etl_test_sources = files(
'test_crc32_posix.cpp',
'test_crc32_q.cpp',
'test_crc32_xfer.cpp',
'test_crc32.cpp',
'test_crc64_ecma.cpp',
'test_crc8_ccitt.cpp',
'test_crc8_cdma2000.cpp',
Expand All @@ -76,16 +88,17 @@ etl_test_sources = files(
'test_crc8_maxim.cpp',
'test_crc8_rohc.cpp',
'test_crc8_wcdma.cpp',
'test_cumulative_moving_average.cpp',
'test_cyclic_value.cpp',
'test_debounce.cpp',
'test_delegate.cpp',
'test_delegate_service.cpp',
'test_delegate_cpp03.cpp',
'test_delegate_service_compile_time.cpp',
'test_delegate_service.cpp',
'test_delegate.cpp',
'test_deque.cpp',
'test_endian.cpp',
'test_enum_type.cpp',
'test_error_handler.cpp',
'test_etl_traits.cpp',
'test_exception.cpp',
'test_fixed_iterator.cpp',
'test_fixed_sized_memory_block_allocator.cpp',
Expand All @@ -96,17 +109,17 @@ etl_test_sources = files(
'test_flat_set.cpp',
'test_fnv_1.cpp',
'test_format_spec.cpp',
'test_forward_list.cpp',
'test_forward_list_shared_pool.cpp',
'test_forward_list.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_indirect_vector.cpp',
'test_instance_count.cpp',
'test_integral_limits.cpp',
'test_intrusive_forward_list.cpp',
Expand All @@ -121,92 +134,101 @@ etl_test_sources = files(
'test_largest.cpp',
'test_limiter.cpp',
'test_limits.cpp',
'test_list.cpp',
'test_list_shared_pool.cpp',
'test_list.cpp',
'test_make_string.cpp',
'test_map.cpp',
'test_maths.cpp',
'test_mean.cpp',
'test_memory.cpp',
'test_mem_cast.cpp',
'test_mem_cast_ptr.cpp',
#'test_mem_type.cpp',
'test_mem_cast.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_router.cpp',
'test_message_timer_atomic.cpp',
'test_message_timer_interrupt.cpp',
'test_message_timer_locked.cpp',
'test_message_timer.cpp',
'test_multimap.cpp',
'test_multiset.cpp',
'test_multi_array.cpp',
'test_multi_range.cpp',
'test_multi_span.cpp',
'test_multi_vector.cpp',
'test_multimap.cpp',
'test_multiset.cpp',
'test_murmur3.cpp',
'test_nth_type.cpp',
'test_numeric.cpp',
'test_observer.cpp',
'test_optional.cpp',
'test_overload.cpp',
'test_packet.cpp',
'test_parameter_pack.cpp',
'test_parameter_type.cpp',
'test_parity_checksum.cpp',
'test_pearson.cpp',
'test_pool.cpp',
'test_poly_span_dynamic_extent.cpp',
'test_poly_span_fixed_extent.cpp',
'test_pool_external_buffer.cpp',
'test_pool.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_lockable.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_mpmc_mutex.cpp',
'test_queue_spsc_atomic_small.cpp',
'test_queue_spsc_isr.cpp',
'test_queue_spsc_atomic.cpp',
'test_queue_spsc_isr_small.cpp',
'test_queue_spsc_locked.cpp',
'test_queue_spsc_isr.cpp',
'test_queue_spsc_locked_small.cpp',
'test_queue_spsc_locked.cpp',
'test_queue.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.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_compile_time_with_data_parameter.cpp',
'test_state_chart_compile_time.cpp',
'test_state_chart_with_data_parameter.cpp',
'test_state_chart_with_rvalue_data_parameter.cpp',
'test_string_char.cpp',
'test_state_chart.cpp',
'test_string_char_external_buffer.cpp',
'test_string_stream.cpp',
'test_string_char.cpp',
'test_string_stream_u16.cpp',
'test_string_stream_u32.cpp',
'test_string_stream_wchar_t.cpp',
'test_string_u16.cpp',
'test_string_stream.cpp',
'test_string_u16_external_buffer.cpp',
'test_string_u32.cpp',
'test_string_u16.cpp',
'test_string_u32_external_buffer.cpp',
'test_string_utilities.cpp',
'test_string_utilities_std.cpp',
'test_string_u32.cpp',
'test_string_utilities_std_u16.cpp',
'test_string_utilities_std_u32.cpp',
'test_string_utilities_std_wchar_t.cpp',
'test_string_utilities_std.cpp',
'test_string_utilities_u16.cpp',
'test_string_utilities_u32.cpp',
'test_string_utilities_wchar_t.cpp',
'test_string_utilities.cpp',
'test_string_view.cpp',
'test_string_wchar_t.cpp',
'test_string_wchar_t_external_buffer.cpp',
'test_string_wchar_t.cpp',
'test_successor.cpp',
'test_task_scheduler.cpp',
'test_threshold.cpp',
'test_to_string.cpp',
Expand All @@ -217,6 +239,8 @@ etl_test_sources = files(
'test_type_lookup.cpp',
'test_type_select.cpp',
'test_type_traits.cpp',
'test_unaligned_type_constexpr.cpp',
'test_unaligned_type.cpp',
'test_unordered_map.cpp',
'test_unordered_multimap.cpp',
'test_unordered_multiset.cpp',
Expand All @@ -225,33 +249,39 @@ etl_test_sources = files(
'test_utility.cpp',
'test_variance.cpp',
'test_variant_legacy.cpp',
'test_variant_pool.cpp',
'test_variant_pool_external_buffer.cpp',
'test_variant_pool.cpp',
'test_variant_variadic.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_vector_pointer.cpp',
'test_vector.cpp',
'test_visitor.cpp',
'test_xor_checksum.cpp',
'test_xor_rotate_checksum.cpp',
'test_xor_rotate_checksum.cpp'
)

compile_args = [
'-DENABLE_ETL_UNIT_TESTS',
'-DETL_DEBUG',
]
link_args = []

if get_option('use_stl')
compile_args += '-DETL_NO_STL=0'
elif
compile_args += '-DETL_NO_STL=1'
endif

if meson.get_compiler('cpp').get_id() == 'gcc'
etl_test_sources += files('test_atomic_gcc_sync.cpp')
if meson.get_compiler('cpp').get_argument_syntax() == 'gcc'
compile_args += '-fsanitize=address,undefined'
compile_args += '-fexceptions'
compile_args += '-Wall'
compile_args += '-Wextra'
compile_args += '-Wno-non-virtual-dtor' #TODO remove and fix warning in code
compile_args += '-Werror'
link_args += '-fsanitize=address,undefined'
endif

threads_dep = dependency('threads')
Expand All @@ -264,4 +294,7 @@ etl_unit_tests = executable('etl_unit_tests',
sources: etl_test_sources,
dependencies: [etl_dep, unittestcpp_dep, threads_dep],
cpp_args: compile_args,
link_args: link_args,
)

test('etl_unit_tests', etl_unit_tests)

0 comments on commit ccdd5c2

Please sign in to comment.