https://bugs.kde.org/show_bug.cgi?id=405225

            Bug ID: 405225
           Summary: Unit-test not discovered when added using
                    gtest_discover_tests()
           Product: kdevelop
           Version: git master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Build tools: CMake
          Assignee: kdevelop-bugs-n...@kde.org
          Reporter: thibault.no...@gmail.com
  Target Milestone: ---

Created attachment 118651
  --> https://bugs.kde.org/attachment.cgi?id=118651&action=edit
diff for importTestSuite.{cpp,h}

SUMMARY

Unit-tests produced via gtest_discover_tests() are not discovered by KDevelop.
There seem to be two reasons for that:

- KDevelop is able to discover unit-tests from CMake files given that:
1) There is a CTestTestfile.cmake file in the root of the build directory
2) if that file contains "subdir" directives, unit-tests are searched in
${subdir}/CTestTestfile.cmake (recursively). It seems (?) that include()
directives are not followed.

- Bracket arguments (
https://cmake.org/cmake/help/v3.14/manual/cmake-language.7.html#bracket-argument
) are used to pass command-line arguments to the unit-tests. It seems that the
parser can't interpret those (?).


STEPS TO REPRODUCE
1. Create executable targets with CMake, and pass them to
gtest_discover_tests() with some EXTRA_ARGS directives
2. Run Kdevelop on that project

OBSERVED RESULT
The unit-test view is empty


EXPECTED RESULT
Unit-tests are shown


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 29
(available in About System)
KDE Plasma Version: 5.14.5
KDE Frameworks Version: 5.55.0
Qt Version: 5.11.3

ADDITIONAL INFORMATION

CTestTestfile.cmake may contain:
include("/home/.../build/unittests/test_foo[1]_include.cmake")
The import seems to skip that. A minimal fix is attached to follow include()
directives.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to