Fixed compilation issues for const containers unit tests

This commit is contained in:
John Wellbelove 2025-09-04 10:10:52 +01:00
parent d92eb4d3ff
commit 119d381570
11 changed files with 377 additions and 36 deletions

1
.gitignore vendored
View File

@ -409,3 +409,4 @@ examples/UniquePtrWithPool/Makefile
examples/UniquePtrWithPool/CMakeCache.txt
examples/UniquePtrWithPool/UniquePtrWithPool
test/vs2022/Debug Clang C++20 - Optimised -O2
include/etl/header_file_list.txt

View File

@ -445,9 +445,6 @@ namespace etl
using const_iterator = typename base_t::const_iterator;
using size_type = typename base_t::size_type;
/// Defines the parameter types
using const_reference = const key_type&;
static_assert((etl::is_default_constructible<key_type>::value), "key_type must be default constructible");
//*************************************************************************

View File

@ -12,16 +12,358 @@ 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_RFC2152_decoder.cpp
test_base64_RFC2152_encoder.cpp
test_base64_RFC3501_decoder.cpp
test_base64_RFC3501_encoder.cpp
test_base64_RFC4648_decoder_with_no_padding.cpp
test_base64_RFC4648_decoder_with_padding.cpp
test_base64_RFC4648_encoder_with_no_padding.cpp
test_base64_RFC4648_encoder_with_padding.cpp
test_base64_RFC4648_URL_decoder_with_no_padding.cpp
test_base64_RFC4648_URL_decoder_with_padding.cpp
test_base64_RFC4648_URL_encoder_with_no_padding.cpp
test_base64_RFC4648_URL_encoder_with_padding.cpp
test_binary.cpp
test_bip_buffer_spsc_atomic.cpp
test_bit.cpp
test_bitset_legacy.cpp
test_bitset_new_comparisons.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_bloom_filter.cpp
test_bresenham_line.cpp
test_bsd_checksum.cpp
test_buffer_descriptors.cpp
test_byte.cpp
test_byte_stream.cpp
test_callback_service.cpp
test_callback_timer.cpp
test_callback_timer_atomic.cpp
test_callback_timer_deferred_locked.cpp
test_callback_timer_interrupt.cpp
test_callback_timer_locked.cpp
test_char_traits.cpp
test_checksum.cpp
test_chrono_clocks.cpp
test_chrono_day.cpp
test_chrono_duration.cpp
test_chrono_hh_mm_ss.cpp
test_chrono_literals.cpp
test_chrono_month.cpp
test_chrono_month_day.cpp
test_chrono_month_day_last.cpp
test_chrono_month_weekday.cpp
test_chrono_month_weekday_last.cpp
test_chrono_operators.cpp
test_chrono_time_point.cpp
test_chrono_weekday.cpp
test_chrono_weekday_indexed.cpp
test_chrono_weekday_last.cpp
test_chrono_year.cpp
test_chrono_year_month.cpp
test_chrono_year_month_day.cpp
test_chrono_year_month_day_last.cpp
test_chrono_year_month_weekday.cpp
test_chrono_year_month_weekday_last.cpp
test_circular_buffer.cpp
test_circular_buffer_external_buffer.cpp
test_circular_iterator.cpp
test_closure.cpp
test_closure_constexpr.cpp
test_compare.cpp
test_constant.cpp
test_const_map.cpp
test_const_map_constexpr.cpp
test_const_map_ext.cpp
test_const_map_ext_constexpr.cpp
test_const_multimap.cpp
test_const_multimap_constexpr.cpp
test_const_multimap_ext.cpp
test_const_multimap_ext_constexpr.cpp
test_const_multiset.cpp
test_const_multiset_constexpr.cpp
test_const_multiset_ext.cpp
test_const_multiset_ext_constexpr.cpp
test_const_set.cpp
test_const_set_constexpr.cpp
test_const_set_ext.cpp
test_const_set_ext_constexpr.cpp
test_container.cpp
test_correlation.cpp
test_covariance.cpp
test_crc1.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_opensafety_a.cpp
test_crc16_opensafety_b.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_crc64_iso.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.cpp
test_crc8_j1850_zero.cpp
test_crc8_maxim.cpp
test_crc8_nrsc5.cpp
test_crc8_opensafety.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_observable.cpp
test_delegate_service.cpp
test_delegate_service_compile_time.cpp
test_delegate_service_cpp03.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_function_traits.cpp
test_gamma.cpp
test_hash.cpp
test_hfsm.cpp
test_hfsm_recurse_to_inner_state_on_start.cpp
test_histogram.cpp
test_index_of_type.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_macros.cpp
test_make_string.cpp
test_map.cpp
test_math.cpp
test_math_functions.cpp
test_mean.cpp
test_memory.cpp
test_mem_cast.cpp
test_mem_cast_ptr.cpp
test_message.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_span.cpp
test_multi_vector.cpp
test_murmur3.cpp
test_not_null_pointer.cpp
test_not_null_pointer_constexpr.cpp
test_not_null_unique_pointer.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_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_ratio.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_rounded_integral_division.cpp
test_scaled_rounding.cpp
test_set.cpp
test_shared_message.cpp
test_singleton.cpp
test_singleton_base.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_compile_time.cpp
test_state_chart_compile_time_with_data_parameter.cpp
test_state_chart_with_data_parameter.cpp
test_state_chart_with_rvalue_data_parameter.cpp
test_string_char.cpp
test_string_char_external_buffer.cpp
test_string_stream.cpp
test_string_stream_u16.cpp
test_string_stream_u32.cpp
test_string_stream_u8.cpp
test_string_stream_wchar_t.cpp
test_string_u16.cpp
test_string_u16_external_buffer.cpp
test_string_u32.cpp
test_string_u32_external_buffer.cpp
test_string_u8.cpp
test_string_u8_external_buffer.cpp
test_string_utilities.cpp
test_string_utilities_std.cpp
test_string_utilities_std_u16.cpp
test_string_utilities_std_u32.cpp
test_string_utilities_std_u8.cpp
test_string_utilities_std_wchar_t.cpp
test_string_utilities_u16.cpp
test_string_utilities_u32.cpp
test_string_utilities_u8.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_u16.cpp
test_to_arithmetic_u32.cpp
test_to_arithmetic_u8.cpp
test_to_arithmetic_wchar_t.cpp
test_to_string.cpp
test_to_u16string.cpp
test_to_u32string.cpp
test_to_u8string.cpp
test_to_wstring.cpp
test_tuple.cpp
test_type_def.cpp
test_type_list.cpp
test_type_lookup.cpp
test_type_select.cpp
test_type_traits.cpp
test_unaligned_type.cpp
test_unaligned_type_ext.cpp
test_uncopyable.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_pool.cpp
test_variant_pool_external_buffer.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_visitor.cpp
test_xor_checksum.cpp
test_xor_rotate_checksum.cpp
)
target_compile_definitions(etl_tests PRIVATE -DETL_DEBUG)

View File

@ -86,10 +86,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -86,10 +86,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -87,10 +87,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -86,11 +86,11 @@ namespace
return (lhs.k == rhs.k);
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//// Equality operator for Key != Key
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -84,10 +84,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -84,10 +84,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN
@ -1129,6 +1129,7 @@ namespace
CHECK_TRUE(equal12);
CHECK_FALSE(equal13);
CHECK_FALSE(equal14);
}
//*************************************************************************

View File

@ -90,10 +90,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN

View File

@ -90,10 +90,10 @@ namespace
}
// Equality operator for Key != Key
constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
{
return !(lhs.k == rhs.k);
}
//constexpr bool operator !=(const Key& lhs, const Key& rhs) noexcept
//{
// return !(lhs.k == rhs.k);
//}
#define TEST_GREATER_THAN
#ifdef TEST_GREATER_THAN