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

            Bug ID: 358454
           Summary: Crash when importing cmake tests if test arguments
                    contain )
           Product: kdevelop
           Version: 4.90.91
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: Build tools: CMake
          Assignee: kdevelop-bugs-n...@kde.org
          Reporter: andrew.i.co...@googlemail.com

In projectmanagers/cmake/cmakeimportjsonjob.cpp, there's a regular expression
that matches 'add_test' lines from CTestTestfile.cmake files, but it stops
reading at the first ) character:

const QRegularExpression rx("add_test *\\((.+?) (.*?)\\)");

If the argument list for the add_test line contains brackets, for instance:

add_test(some-test "/some/path" "(foo)" "bar")

...then this causes a segfault.

I've worked around this in my copy of the sources by changing the regexp to:

const QRegularExpression rx("add_test *\\((.+?) (.*?)\\) *$");

That is, only stop if the ) character is at the end of the line.  That way, )
characters in the argument list are fine.

Reproducible: Always

Steps to Reproduce:
Create a CMake test:

add_test(some-test "/some/path" "(foo)" "bar")

..then try to import the project.

Actual Results:  
It segfaults

Expected Results:  
It should load the test

I'm using the 5.0 branch from the git repo.

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

Reply via email to