Andrej Radović - 2021-12-15

When I try to run the checks in parallel, with the following command:

cppcheck --project=build/compile_commands.json --enable=all -j4 --addon=misra.json --xml-version=2

the report is littered with errors such as this one:

                <error id="internalError" severity="information"
msg="Bailing out from checking
test/ErrTrac/MockErrTrac_Test_HandlerCallbacks.c since there was an
internal error: Failed to execute &apos;python3
/usr/share/cppcheck/addons/runaddon.py /usr/share/cppcheck/addons/misra.py
--cli --rule-texts=thirdparty/misra/misra.txt
test/ErrTrac/MockErrTrac_Test_HandlerCallbacks.c.dump&apos;. Traceback
(most recent call last):" verbose="  File
&quot;/usr/share/cppcheck/addons/runaddon.py&quot;, line 8, in
&lt;module&gt;\012    runpy.run_path(addon,
run_name=&apos;__main__&apos;)\012  File
&quot;/usr/lib/python3.10/runpy.py&quot;, line 269, in run_path\012
return _run_module_code(code, init_globals, run_name,\012  File
&quot;/usr/lib/python3.10/runpy.py&quot;, line 96, in _run_module_code\012
  _run_code(code, mod_globals, init_globals,\012  File
&quot;/usr/lib/python3.10/runpy.py&quot;, line 86, in _run_code\012
exec(code, run_globals)\012  File
&quot;/usr/share/cppcheck/addons/misra.py&quot;, line 4630, in
&lt;module&gt;\012    main()\012  File
&quot;/usr/share/cppcheck/addons/misra.py&quot;, line 4572, in main\012
checker.parseDump(item)\012  File
&quot;/usr/share/cppcheck/addons/misra.py&quot;, line 4168, in
parseDump\012    data = cppcheckdata.parsedump(dumpfile)\012  File
&quot;/usr/share/cppcheck/addons/cppcheckdata.py&quot;, line 1188, in
parsedump\012    return CppcheckData(filename)\012  File
&quot;/usr/share/cppcheck/addons/cppcheckdata.py&quot;, line 1000, in
__init__\012    for event, node in ElementTree.iterparse(self.filename,
events=(&apos;start&apos;, &apos;end&apos;)):\012  File
&quot;/usr/lib/python3.10/xml/etree/ElementTree.py&quot;, line 1254, in
iterator\012    yield from pullparser.read_events()\012  File
&quot;/usr/lib/python3.10/xml/etree/ElementTree.py&quot;, line 1329, in
read_events\012    raise event\012  File
&quot;/usr/lib/python3.10/xml/etree/ElementTree.py&quot;, line 1301, in
feed\012    self._parser.feed(data)\012xml.etree.ElementTree.ParseError:
not well-formed (invalid token): line 12744, column 0">
            <location
file="test/ErrTrac/MockErrTrac_Test_HandlerCallbacks.c" line="0"
column="0"/>

No such errors are reported if I remove the -j4 arg, or the
--addon=misra.json arg.

I'd like to be able to check files in parallel because it's pretty
time-consuming like this.

 

Last edit: Andrej Radović 2021-12-15