37 Commits

Author SHA1 Message Date
Roland Reichwein
5dc682b7ff
Support for C++26 (#1375)
Includes C++26 related infrastructure macros.
Fixes compile errors when compiling under C++26.
Initially supported C++26 features:

- [[indeterminate]]
- new 2022 ISO prefixes in ratio.h
- atomic fetch_max() and fetch_min()
- is_virtual_base_of
- is_trivially_relocatable and trivially_relocate
- saturation arithmetic: add_sat, sub_sat, mul_sat, div_sat, saturate_cast
2026-04-15 15:53:29 +02:00
Roland Reichwein
866c8a315e
Extensions for testing (#1380)
* Extensions for testing

Generalize run-tests.sh

Test all C++ versions at once

Fix combination of big endian and -Wsign-conversion

Failed on s390x (as reference for big endian)

Add github workflow for s390x

Add armhf container files

Devcontainers for i386 and riscv

Add github workflows for armhf, i386 and riscv64

Add run-tests.sh for foreign architectures

Document testing in doc/testing.md

Adjustments from clang-format run

Fix .devcontainer/s390x/Dockerfile for linebreak syntax

Fix exit code of run-test.sh

Previously, "exit $?" was used, actually the return value of
FailedCompilation and FailedTest which are always 0.

Now just using 1.

In run-tests.sh at ctest, use -V for printing number of tests unconditionally

While ctest suppresses individual test list by default, it didn't even
print the number of tests anymore, as run_tests.sh does because
it suppresses it output completely.

Now, by default print number of tests, and in verbose mode, print test list
in addition.

* Support powerpc as foreign architecture

* Add SFINAE constraints to etl::begin/end and reverse iterator free functions

The unconstrained etl::begin(), etl::end(), etl::cbegin(), etl::cend(),
etl::rbegin(), etl::rend(), etl::crbegin(), and etl::crend() templates
in the no-STL code path were matching iterator types during ADL, causing
a hard error with GCC 15's std::ranges::begin. When std::ranges performed
ADL on an etl::*::iterator, it found etl::begin() as a candidate; since
the iterator type has a nested iterator typedef, the return type TContainer::iterator
was valid, but calling .begin() on the iterator failed.

Fix: add etl::void_t<decltype(...)> SFINAE guards to each template,
ensuring they only participate in overload resolution when TContainer
actually has the corresponding member function (.begin(), .end(), etc.).

* - Fix red unit tests on 32 bits big-endian platform.

* Document powerpc architecture for testing

* Use Dockerfiles in cross testing github workflows

Synchronizes environment setup for github workflows to what is
defined in the development Dockerfiles. So they don't need to
be maintained separately.

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Sergei Shirokov <sergej.shirokov@gmail.com>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2026-04-15 10:47:52 +02:00
Roland Reichwein
78d8b82afb Print test names at test time (#1343) 2026-03-12 20:08:22 +00:00
John Wellbelove
922cfde453 Reverted scrolling changes on test script 2025-12-22 21:02:54 +00:00
John Wellbelove
84f037b616 Enhanced test and syntax check scripts to add non-scrolling command line header 2025-12-22 10:04:17 +00:00
John Wellbelove
5f8b7f7120 Added builtin mem function tests 2025-08-22 19:20:15 +01:00
John Wellbelove
52cd92d31a Minor format change 2025-06-26 20:23:24 +01:00
Roland Reichwein
3ec2db51c8 Fix error on running clang test only (#1135)
* Fix error on running clang test only

Consolidate tests by factoring out redundant test function

* Make run-tests.sh executable
2025-06-26 20:23:23 +01:00
John Wellbelove
896baaa076 Minor script updates 2025-05-31 15:56:24 +01:00
Roland Reichwein
fe928fa53a
Support C++23 (#1069)
* Support C++23

* Fix syntax checks for correct C++ standard version

---------

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
2025-05-13 21:27:04 +01:00
John Wellbelove
ceeb2e706e Updated bash test script help 2025-03-04 09:27:07 +00:00
John Wellbelove
d1e5112e2a Restored full units test permutations
Fixed unit test for non-virtual message_packet
2025-02-17 12:45:32 +00:00
John Wellbelove
574da35b10 Attempt to fix Github CI errors 2025-02-03 15:03:28 +00:00
John Wellbelove
7aa7c870b3 Updates to CI scripts 2025-02-03 11:37:26 +00:00
John Wellbelove
98c35f7f3e Updates to CI scripts 2025-02-01 18:27:05 +00:00
John Wellbelove
aa0f292cce Added new test script for light weight assert 2025-01-22 17:11:16 +00:00
John Wellbelove
962264e0b1 Changed case for script header 2024-11-27 16:35:09 +00:00
Chiraffollo
aa852a9998 Fix run-tests.sh script (#929)
* Fix run-tests.sh script

- Fix ordering of parameters in help info
- Change spaces to tabs in indentation of methods (unique usage of indentation)
- Fix check for number of parameters to avoid empty string as default parameter value

* Fix incorrect comparison
2024-07-28 16:47:12 +01:00
John Wellbelove
81aae1a962 Changed default action to Linux test script 2024-07-28 16:47:12 +01:00
John Wellbelove
208d8f9642 Implementation of Base64 encoder and decoder 2024-06-24 17:44:53 +01:00
John Wellbelove
77513730e0 Fixed shadow warnings in all files
#823 Multiple variable shadowing warnings in private/bitset_new.h
2024-01-25 14:22:26 +00:00
John Wellbelove
6775dba40d Fixed output iterator for frame_check_sequence and pseudo_moving_average 2023-12-08 08:46:16 +00:00
John Wellbelove
9492ca101c Corrected clang version name detection 2023-12-05 14:29:44 +00:00
John Wellbelove
f7845f8530 Updated help screen in CI script 2023-12-04 09:34:14 +00:00
John Wellbelove
92109bd779 Updated script text 2023-12-04 08:38:50 +00:00
John Wellbelove
63d1a64e6c #787 etl::expected doesn't compile with ETL_LOG_ERRORS
Updated CI scripts
#786 u8string
#783 Cannot insert existing value to full set
#781 etl::multi_span::iterator::operator *() fails if first span is empty
#780 endian enum_type produces useless-cast warnings
#779 hash.h: warnings produced with -Wfloat-equal
2023-11-24 09:59:35 +00:00
John Wellbelove
f5879a757a Merge branch 'hotfix/#779-hash-h-warnings-produced-with-Wfloat-equal' into development
# Conflicts:
#	test/run-tests.sh
#	test/vs2022/etl.vcxproj.filters
2023-11-21 17:55:57 +00:00
John Wellbelove
61da85fa77 Removed float-equal warnings
Added functions is_nan, is_infinity, is_zero & is_exactly_equal
Fixed array-bounds warnings for GCC and -O2 optimisation
2023-11-21 15:13:24 +00:00
John Wellbelove
23f961eb88 Added Git branch to terminal prompt 2023-11-15 10:40:59 +00:00
John Wellbelove
9c16706835 Updated syntax checks 2023-11-14 18:34:08 +00:00
John Wellbelove
45fb06af3f Changes require for non-virtual messages 2023-08-18 20:51:36 +01:00
John Wellbelove
8b5ff06e44 Resolve all C++ -O2 warnings 2023-08-06 23:39:11 +01:00
John Wellbelove
cb99d47f81 Refactored parallel build methods 2023-07-04 18:20:20 +01:00
John Wellbelove
dda6ae53c8 Refactored parallel build methods 2023-07-04 11:46:00 +01:00
John Wellbelove
83f439628b Added missing colour change 2023-07-04 11:41:00 +01:00
John Wellbelove
f4b8fd73c6 Updated Github actions yml files 2023-05-08 17:19:01 +01:00
John Wellbelove
3aa4a8af03 Sanity check CI test 2023-05-07 10:20:26 +01:00