I'm running cppcheck as a step in a CircleCI flow. Cppcheck is hitting some code that is causing a python exception. I'm not worried about the python assertion itself. The issue is that cppcheck still exites with code 0, implying that everything worked fine. How can cppcheck report a fail when it hits an exception? Here's one example for the output I'm seeing:
Buildingwith"cppcheck"Generatingcppcheck-commandRunningcppcheckBailingoutfromchecking/root/project/test.csincetherewasaninternalerror:Failedtoexecute'python3 /opt/conda/envs/test/share/Cppcheck/addons/misra.py --cli --rule-texts=/root/project/tools/cppcheck/misra-rules.txt -P /root/project/src /root/project/build/cppcheck_build_dir/test.a1.dump'.{"file":"/root/project/src/include/as6221_regs.h","linenr":66,"column":30,"severity":"style","message":"When an array with external linkage is declared, its size should be explicitly specified","addon":"misra","errorId":"c2012-8.11","extra":"Advisory"}Traceback(mostrecentcalllast):File"/opt/conda/envs/test/share/Cppcheck/addons/misra.py",line3492,in<module>main()File"/opt/conda/envs/test/share/Cppcheck/addons/misra.py",line3436,inmainchecker.parseDump(item)File"/opt/conda/envs/test/share/Cppcheck/addons/misra.py",line3267,inparseDumpself.executeCheck(902,self.misra_9_2,cfg)File"/opt/conda/envs/test/share/Cppcheck/addons/misra.py",line3197,inexecuteCheckcheck_function(*args)File"/opt/conda/envs/test/share/Cppcheck/addons/misra.py",line1643,inmisra_9_2misra_9.misra_9_x(self,data,902)File"/opt/conda/envs/test/share/Cppcheck/addons/misra_9.py",line413,inmisra_9_xparser.parseInitializer(ed,eq.astOperand2)File"/opt/conda/envs/test/share/Cppcheck/addons/misra_9.py",line321,inparseInitializerifchild.elementType!='record'orself.token.valueType.type!='record'orchild.valueType.typeScope!=self.token.valueType.typeScope:AttributeError:'NoneType'objecthasnoattribute'type'Builttargetstatic-checkBuilttargetcppcheckCircleCIreceivedexitcode0
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I'm running cppcheck as a step in a CircleCI flow. Cppcheck is hitting some code that is causing a python exception. I'm not worried about the python assertion itself. The issue is that cppcheck still exites with code 0, implying that everything worked fine. How can cppcheck report a fail when it hits an exception? Here's one example for the output I'm seeing: