66d897667c
Client: hs Patch: Jens Geyer This closes #2352 |
||
---|---|---|
.. | ||
catch | ||
netcore | ||
CMakeLists.txt | ||
README.md | ||
tests_main.cc |
Build and run compiler tests using CMake
General information
Added generic way to cover code by tests for many languages (you just need to make a correct header file for generator for your language - example in netstd implementation)
At current moment these tests use free Catch library (https://github.com/catchorg/Catch2/tree/Catch1.x) for easy test creation and usage. Decision to use it was because of simplicity, easy usage, one header file to use, stable community and growing interest (https://cpp.libhunt.com/project/googletest-google/vs/catch?rel=cmp-cmp)
Also, maybe, later it will be migrated to Catch2 (https://github.com/philsquared/Catch) - depends on need to support legacy compilers (c++98)
How to add your tests
- Open CMakeLists.txt
- Set On to call of THRIFT_ADD_COMPILER for your language
THRIFT_ADD_COMPILER(netstd "Enable compiler for .NET Standard" ON)
-
Create folder with name specified in list of languages in CMakeLists.txt
-
Create tests in folder for your language (with extensions like .c - cc, cpp, etc)
- Don't forget to add include of catch.hpp in your test file
#include "../catch/catch.hpp"
-
If you need - add files manually to thrift_compiler_tests_manual_SOURCES in CMakeLists.txt similar to
# you can add some files manually there
set(thrift_compiler_tests_manual_SOURCES
# tests file to avoid main in every test file
${CMAKE_CURRENT_SOURCE_DIR}/tests_main.cc
)
- Run cmake with arguments for your environment and compiler
- Enjoy
Build and run tests on Unix-like systems
Prerequisites:
- Install CMake - https://cmake.org/download/
- Install winflexbison - https://sourceforge.net/projects/winflexbison/
Build and run test with CMake
- Run commands in command line in current directory:
mkdir cmake-vs && cd cmake-vs
cmake ..
cmake --build .
ctest -C Debug -V
Build and run tests on Windows
Prerequisites:
- Install CMake - https://cmake.org/download/
- Install winflexbison - https://sourceforge.net/projects/winflexbison/
- Install VS2017 Community Edition - https://www.visualstudio.com/vs/whatsnew/ (ensure that you installed workload "Desktop Development with C++" for VS2017)
Generation of VS project with CMake, build and run on Windows
- Run commands in command line in current directory (ensure that VS installed):
mkdir cmake-vs
cd cmake-vs
cmake ..
cmake --build .
ctest -C Debug -V