From 988cd9544064025842fd9b144c618353a99114e9 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Wed, 11 Aug 2021 15:48:17 +0100 Subject: [PATCH] Added C++17 variadic versions of etl::message_router ans etl::fsm Fixed meson.build --- .gitignore | 1 + include/etl/fsm.h | 26 ++- include/etl/generators/fsm_generator.h | 22 ++- include/etl/version.h | 2 +- library.json | 2 +- library.properties | 2 +- support/Release notes.txt | 5 + test/runsanitychecks.sh | 256 +++++++++++++++++++++---- test/runtests.sh | 48 ++++- test/vs2019/etl.vcxproj | 8 +- test/vs2019/etl.vcxproj.filters | 6 + 11 files changed, 322 insertions(+), 56 deletions(-) diff --git a/.gitignore b/.gitignore index a3f4ac99..3797ca0d 100644 --- a/.gitignore +++ b/.gitignore @@ -321,3 +321,4 @@ test/vs2019/Debug-LLVM-NoSTL-Builtins/etl.exe test/vs2019/cmake-build test/vs2019/Debug MSVC - No STL - Built-ins test/vs2019/Test1 +test/vs2019/Test2 diff --git a/include/etl/fsm.h b/include/etl/fsm.h index d2429ea3..df724384 100644 --- a/include/etl/fsm.h +++ b/include/etl/fsm.h @@ -80,12 +80,17 @@ namespace etl // For internal FSM use. typedef typename etl::larger_type::type fsm_internal_id_t; - template +#if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above + template class fsm_state; +#else + template + class fsm_state; +#endif //*************************************************************************** /// Base exception class for FSM. @@ -178,12 +183,18 @@ namespace etl /// Allows ifsm_state functions to be private. friend class etl::fsm; friend class etl::hfsm; + +#if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above + template + friend class fsm_state; +#else template friend class etl::fsm_state; +#endif //******************************************* /// Gets the id for this state. @@ -483,8 +494,8 @@ namespace etl #if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above //*************************************************************************** -// The definition for all types. -//*************************************************************************** + // The definition for all types. + //*************************************************************************** template class fsm_state : public ifsm_state { @@ -526,7 +537,6 @@ namespace etl etl::fsm_state_id_t process_event(const etl::imessage& message) { etl::fsm_state_id_t new_state_id; - etl::message_id_t event_id = message.get_message_id(); const bool was_handled = (process_event_type(message, new_state_id) || ...); diff --git a/include/etl/generators/fsm_generator.h b/include/etl/generators/fsm_generator.h index 35638249..131e8018 100644 --- a/include/etl/generators/fsm_generator.h +++ b/include/etl/generators/fsm_generator.h @@ -92,19 +92,24 @@ namespace etl // For internal FSM use. typedef typename etl::larger_type::type fsm_internal_id_t; +#if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above + template + class fsm_state; +#else /*[[[cog import cog - cog.outl("template " % int(Handlers)) + cog.outl("typename>") cog.outl("class fsm_state;") ]]]*/ /*[[[end]]]*/ +#endif //*************************************************************************** /// Base exception class for FSM. @@ -197,6 +202,11 @@ namespace etl /// Allows ifsm_state functions to be private. friend class etl::fsm; friend class etl::hfsm; + +#if ETL_CPP17_SUPPORTED && !defined(ETL_FSM_FORCE_CPP03) // For C++17 and above + template + friend class fsm_state; +#else /*[[[cog import cog cog.outl(" template class fsm_state : public ifsm_state { @@ -552,7 +563,6 @@ namespace etl etl::fsm_state_id_t process_event(const etl::imessage& message) { etl::fsm_state_id_t new_state_id; - etl::message_id_t event_id = message.get_message_id(); const bool was_handled = (process_event_type(message, new_state_id) || ...); diff --git a/include/etl/version.h b/include/etl/version.h index 581d4f6b..129a8b88 100644 --- a/include/etl/version.h +++ b/include/etl/version.h @@ -38,7 +38,7 @@ SOFTWARE. ///\ingroup utilities #define ETL_VERSION_MAJOR 20 -#define ETL_VERSION_MINOR 15 +#define ETL_VERSION_MINOR 16 #define ETL_VERSION_PATCH 0 #define ETL_VERSION ETL_STRINGIFY(ETL_VERSION_MAJOR) "." ETL_STRINGIFY(ETL_VERSION_MINOR) "." ETL_STRINGIFY(ETL_VERSION_PATCH) #define ETL_VERSION_W ETL_STRINGIFY(ETL_VERSION_MAJOR) L"." ETL_STRINGIFY(ETL_VERSION_MINOR) L"." ETL_STRINGIFY(ETL_VERSION_PATCH) diff --git a/library.json b/library.json index 98bbae72..c12b64fb 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "ETL Embedded Template Library", - "version": "20.15.0", + "version": "20.16.0", "author s": { "name": "John Wellbelove", "email": "john.wellbelove@etlcpp.com" diff --git a/library.properties b/library.properties index d09ea365..70a6923a 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=Embedded Template Library ETL -version=20.15.0 +version=20.16.0 author= John Wellbelove maintainer=John Wellbelove license=MIT diff --git a/support/Release notes.txt b/support/Release notes.txt index 11deb07f..06259d00 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,3 +1,8 @@ +=============================================================================== +20.16.0 +Added C++17 variadic versions of etl::message_router ans etl::fsm +Fixed meson.build + =============================================================================== 20.15.0 Added a Bipartite buffer, by Benedek Kupper. diff --git a/test/runsanitychecks.sh b/test/runsanitychecks.sh index a0de3ff3..de9b5486 100755 --- a/test/runsanitychecks.sh +++ b/test/runsanitychecks.sh @@ -16,42 +16,90 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt #CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bgcc +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt #CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bclang +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi ############################################################################### cd ../c++11 || exit 1 @@ -64,42 +112,90 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt #CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bgcc +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt #CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bclang +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi ############################################################################### cd ../c++14 || exit 1 @@ -112,42 +208,90 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt #CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt #CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bclang +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi ############################################################################### cd ../c++17 || exit 1 @@ -160,42 +304,90 @@ echo "-----------------------------------------------" echo "GCC - STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "GCC - No STL - Builtins"; } | tee -a ../log.txt g++ --version | head --lines=1 | tee -a ../log.txt CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bgcc +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt #g++ --version | head --lines=1 | tee -a ../log.txt #CC=gcc CXX=g++ cmake -E chdir bgcc cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bgcc || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bgcc +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi { echo ""; echo "Clang - STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi { echo ""; echo "Clang - No STL - Builtins"; } | tee -a ../log.txt clang++ --version | head --lines=1 | tee -a ../log.txt CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +cmake --build bclang +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt #clang++ --version | head --lines=1 | tee -a ../log.txt #CC=clang CXX=clang++ cmake -E chdir bclang cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON .. -#cmake --build bclang || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +#cmake --build bclang +#if [ $? -eq 0 ]; then +# echo "Passed" +#else +# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +# exit $? +#fi { echo "" echo "-----------------------------------------------" diff --git a/test/runtests.sh b/test/runtests.sh index 9bbb9c4f..4c887d8e 100755 --- a/test/runtests.sh +++ b/test/runtests.sh @@ -9,7 +9,13 @@ echo " GCC" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt @@ -17,7 +23,13 @@ echo " GCC - No STL" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt @@ -25,7 +37,13 @@ echo " GCC - No STL - Builtins" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt gcc --version | grep gcc | tee -a log.txt CC=gcc CXX=g++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt @@ -33,7 +51,13 @@ echo " Clang" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt @@ -41,7 +65,13 @@ echo " Clang - No STL" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt @@ -49,7 +79,13 @@ echo " Clang - No STL - Builtins" | tee -a log.txt echo "-----------------------------------------------" | tee -a log.txt clang --version | grep clang | tee -a log.txt CC=clang CXX=clang++ cmake --cmake-clean-cache -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF .. -make -j8 || echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt +make -j8 +if [ $? -eq 0 ]; then + echo "Passed" +else + echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt + exit $? +fi ./etl_tests | tee log.txt echo "" echo "-----------------------------------------------" | tee -a log.txt diff --git a/test/vs2019/etl.vcxproj b/test/vs2019/etl.vcxproj index 51c01cf3..29d2d692 100644 --- a/test/vs2019/etl.vcxproj +++ b/test/vs2019/etl.vcxproj @@ -424,6 +424,12 @@ true Unicode + + v142 + + + v142 + @@ -1073,7 +1079,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;_LIB;_CRT_SECURE_NO_WARNINGS;_SCL_SECURE_NO_WARNINGS;ETL_NO_STL;ETL_USE_TYPE_TRAITS_BUILTINS;__clang__;%(PreprocessorDefinitions) - ../../../unittest-cpp/;../../include;../../test + ./;../../../unittest-cpp/;../../include;../../test false diff --git a/test/vs2019/etl.vcxproj.filters b/test/vs2019/etl.vcxproj.filters index 25a56d06..46a2c31d 100644 --- a/test/vs2019/etl.vcxproj.filters +++ b/test/vs2019/etl.vcxproj.filters @@ -2696,6 +2696,12 @@ Source Files\Sanity Checks + + Source Files + + + Source Files +