Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-4458

Selection of the C++ test framework for Thrift Compilers



    • Brainstorming
    • Status: Closed
    • Major
    • Resolution: Information Provided
    • None
    • None
    • C++ - Compiler, Test Suite
    • None


      Want to discuss in scope of this brainstorming - what will be the best choice of c++ test framework for us.

      We have few cases:

      • Catch (already reused for .netcore compiler tests)
      • Google Test (also powerful test framework)
      • Boost Test
      • other (your proposal)

      I tried to reuse Catch (reused 1st version - and owner already produced 2nd version - https://github.com/catchorg/Catch2).

      Catch works well and easy to reuse (you can check samples in tests folder for compiler).
      Problems: it's hard to integrate it into a lot of different IDEs (also 2nd version of Catch removed support of C++98 standard).
      But it's not hard to use it with CMake(CTest), console, etc.

      From other side - Google Test - also powerful framework, has a lot of integration into different IDEs (support of at least VSVC2010, C++98 standard, etc.).
      But I didn't try to integrate it (also it seems that it doesn't "single file integration").

      Not sure about Boost Test - it looks for me like a something very old and hard to reuse sometimes. Better to discuss - "do we need it?"

      From my side - I can say that unit tests for compiler can help a lot (already found some "hidden" problems with generation of C# code (like re-usage of keywords, other) and fixed them).

      Can be great to discuss, make a proper selection and later to reuse it something like a top priority choice for all contributors.
      It should help current contributors and new contributors to create unit tests for their compilers easier and we will not spend a lot of time for integration into builds.




            jking3 James E. King III
            vgotra Volodymyr Gotra
            0 Vote for this issue
            2 Start watching this issue