Thanks Jerome I use sonarqube at the moment ( I am also learning on this
one, but at least is working) but I wanted to check other alternatives as
sonarqibe slow down the pipeline as it takes quiet some computing time.
Would you recommend sonarqube over cppcheck for a jenkins pipeline?

El vie., 26 mar. 2021 14:52, Jérôme Godbout <[email protected]> escribió:

> You probably need something like this:
>
> cppcheck --xml-version=2 --enable=all <path1> <path2> 2>samplecppcheck.xml
>
>
>
>
> https://stackoverflow.com/questions/10611011/cannot-generate-xml-output-from-cppcheck
>
>
>
> cppcheck is a pain from command line, the command line was an after
> though, they screw big time. I stop using it just for that reason, the CLI
> is not matching the GUI and the results are unpredictable in case of
> errors. The fact that it requires the redirection of std_err, just that
> show a bad design from people who doesn’t give a damn about CLI. I strongly
> recommend you find something else to do your static analysis into your CI.
>
>
>
>
>
> *Jérôme Godbout, B. Ing.*
>
>
> Software / Firmware Team Lead
> *O:* (418) 682-3636 ext.: 114
>
> *C:* (581) 777-0050
> [email protected]
>
> [image: signature_1613841900] <https://www.dimonoff.com/>
>
> *dimonoff.com* <https://www.dimonoff.com/>
>
> 1015 Avenue Wilfrid-Pelletier,
>
> Québec, QC G1W 0C4, 4e étage
>
>
>
>
>
> *From: *[email protected] <[email protected]>
> on behalf of Ullrich Hafner <[email protected]>
> *Date: *Friday, March 26, 2021 at 7:44 AM
> *To: *Jenkins Users <[email protected]>
> *Subject: *Re: How to publish cppcheck results in a pipeline?
>
> I don’t know. Don’t you have a dedicated forum to ask cppcheck questions?
>
>
>
> I still do not understand why you are redirecting stdout or stderr. I
> would assume that every tool that creates XML files automatically creates
> the file in your workspace. Did you check the workspace if there is a file
> if you omit the redirect (>)?
>
>
>
>
>
> Am 26.03.2021 um 11:28 schrieb jesus fernandez <
> [email protected]>:
>
>
>
> Thanks for the replies but how woud the command be then? something like
> this cppcheck "E:/Source" --force — enable=all — inconclusive — xml —
> xml-version=2 . > cppcheck.xm
>
> El jueves, 25 de marzo de 2021 a las 21:49:15 UTC+1, [email protected]
> escribió:
>
> Yes, this is definitely not XML :-)
>
> This is the stderr of your program!
>
>
>
> 2 > cppcheck.xml pipes your stderr to a file. You do not need this part.
>
>
>
> Am 25.03.2021 um 20:08 schrieb jesus fernandez <[email protected]>:
>
>
>
> so it seems like if it basically is writting all the outputs the cmd throws
>
> El jueves, 25 de marzo de 2021 a las 20:07:20 UTC+1, jesus fernandez
> escribió:
>
> the supposely .xml does not have any format, these are the first 5 lines:
>
> Checking E:\Source\Game\AchievementManager.cpp ...
>
>
> Checking E:\Source\Game\AchievementManager.cpp: 
> APP_STEAM;FINAL_RELEASE;_DEBUG...
>
>
> Checking E:\Source\Game\AchievementManager.cpp: 
> APP_STEAM;NEED_AOE1DE_ACHIEVEMENT_TEST;_DEBUG...
>
>
> Checking E:\Source\Game\AchievementManager.cpp: 
> APP_STEAM;NEED_AOE3DE_ACHIEVEMENT_TEST;_DEBUG...
>
> Checking E:\Source\Game\AchievementManager.cpp: APP_STEAM;_DEBUG...
>
>
>
> El jueves, 25 de marzo de 2021 a las 19:47:22 UTC+1, [email protected]
>  escribió:
>
> If you can’t check on your own if the file contains valid XML can you
> please show the first 5 lines of the XML file here?
>
>
>
> Am 25.03.2021 um 19:36 schrieb jesus fernandez <[email protected]>:
>
>
>
> I thought the  ```bat'cppcheck "E:/Source" --force — enable=all —
> inconclusive — xml — xml-version=2 . 2 > cppcheck.xml'``` command does
> genearate a valid xml. is it a matter of missing parameters or a matter of
> having to parse the output? in the documentation and the SO link I attached
> it is supposed to be done like that... what am I missing here?
>
> El jueves, 25 de marzo de 2021 a las 18:21:38 UTC+1, [email protected]
>  escribió:
>
> The exception says it is not a valid XML file. Is it a valid XML file?
> Seems that there is content before the fir XML tag. Can you open it in an
> editor that can validate the XML?
>
>
>
> Am 25.03.2021 um 17:57 schrieb jesus fernandez <[email protected]>:
>
>
>
> Thanks for replying, I have opened and it has 2000 lines of code but I do
> not know if it is valid or not as I have never used cppcheck before, and if
> it is not valid is it because I am not using the right parameters when
> calling cppcheck or how?
>
>
>
>
>
> El jueves, 25 de marzo de 2021 a las 17:44:44 UTC+1, [email protected]
>  escribió:
>
> It look like your create XML is not valid. Can you please open the XML
> file and check?
>
>
>
> Am 25.03.2021 um 17:40 schrieb jesus fernandez <[email protected]>:
>
>
>
> I am learning about Jenkins on my own, and I wanted to try the cppcheck
> plugin, I have setup the following sample pipeline:
>
> ```
>
> pipeline {
>
>     agent any
>
>
>
>     stages {
>
>         stage('analysis') {
>
>             steps {
>
>                 script{
>
>                     bat'cppcheck "E:/Source" --force — enable=all —
> inconclusive — xml — xml-version=2 . 2 > cppcheck.xml'
>
>                 }
>
>             }
>
>         }
>
>     }
>
>     post {
>
>         always {
>
>             // scanForIssues tool: cppCheck(pattern: 'cppcheck.xml')
>
>             publishCppcheck pattern:'cppcheck.xml'
>
>         }
>
>     }
>
> }
>
> ```
>
>
>
> But I get an error in the post step which I do not know if it is related
> to my projecto or if I am doing something wrong. I have follow the
> instructions on this thread [cppcheck][1]but it does not seem to work,
> wehther I use ```publushCppcheck``` :
>
> ```
>
> [Pipeline] { (Declarative: Post Actions)
>
> [Pipeline] publishCppcheck (hide)
>
> [Cppcheck] Starting the cppcheck analysis.
>
> [Cppcheck] Processing 1 files with the pattern 'cppcheck.xml'.
>
> [Cppcheck] Parsing throws exceptions. javax.xml.bind.UnmarshalException
>
>  - with linked exception:
>
> [org.xml.sax.SAXParseException; systemId:
> file:/C:/Users/anton/.jenkins/workspace/JOB4/cppcheck.xml; lineNumber: 1;
> columnNumber: 1; El contenido no está permitido en el prólogo.]
>
> [Cppcheck] java.io.IOException: javax.xml.bind.UnmarshalException
>
>  - with linked exception:
>
> [org.xml.sax.SAXParseException; systemId:
> file:/C:/Users/anton/.jenkins/workspace/JOB4/cppcheck.xml; lineNumber: 1;
> columnNumber: 1; El contenido no está permitido en el prólogo.]
>
> at
> org.jenkinsci.plugins.cppcheck.parser.CppcheckParser.parse(CppcheckParser.java:67)
>
> at
> org.jenkinsci.plugins.cppcheck.CppcheckParserResult.invoke(CppcheckParserResult.java:69)
>
> at
> org.jenkinsci.plugins.cppcheck.CppcheckParserResult.invoke(CppcheckParserResult.java:24)
>
> at hudson.FilePath.act(FilePath.java:1164)
>
> at hudson.FilePath.act(FilePath.java:1147)
>
> at
> org.jenkinsci.plugins.cppcheck.CppcheckPublisher.perform(CppcheckPublisher.java:337)
>
> at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
>
> at
> org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:99)
>
> at
> org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:69)
>
> at
> org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>
> at java.util.concurrent.FutureTask.run(Unknown Source)
>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>
> at java.lang.Thread.run(Unknown Source)
>
> Caused by: javax.xml.bind.UnmarshalException
>
> ```
>
>
>
> or ```scanforIssues``` from warnings ng plugin::
>
> ```
>
> [Pipeline] { (Declarative: Post Actions)
>
> [Pipeline] scanForIssues
>
> [CPPCheck] [-ERROR-] Parsing of file
> 'C:\Users\anton\.jenkins\workspace\JOB4\cppcheck.xml' failed due to an
> exception:
>
> [CPPCheck] [-ERROR-] com.ctc.wstx.exc.WstxUnexpectedCharException:
> Unexpected character 'C' (code 67) in prolog; expected '<'
>
>  at [row,col {unknown-source}]: [1,1]
>
> [CPPCheck] [-ERROR-]  at [row,col {unknown-source}]: [1,1]
>
> [CPPCheck] [-ERROR-]  at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:648)
>
> [CPPCheck] [-ERROR-]  at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2047)
>
> [CPPCheck] [-ERROR-]  at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
>
> [CPPCheck] [-ERROR-]  at
> se.bjurr.violations.lib.parsers.CPPCheckParser.parseReportOutput(CPPCheckParser.java:43)
>
> [CPPCheck] [-ERROR-]  at
> edu.hm.hafner.analysis.parser.violations.AbstractViolationAdapter.parse(AbstractViolationAdapter.java:35)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.FilesScanner.aggregateIssuesOfFile(FilesScanner.java:105)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.FilesScanner.scanFiles(FilesScanner.java:89)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.FilesScanner.invoke(FilesScanner.java:72)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.FilesScanner.invoke(FilesScanner.java:30)
>
> [CPPCheck] [-ERROR-]  at hudson.FilePath.act(FilePath.java:1164)
>
> [CPPCheck] [-ERROR-]  at hudson.FilePath.act(FilePath.java:1147)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.ReportScanningTool.scanInWorkspace(ReportScanningTool.java:152)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.model.ReportScanningTool.scan(ReportScanningTool.java:134)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.steps.IssuesScanner.scan(IssuesScanner.java:95)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.steps.ScanForIssuesStep$Execution.run(ScanForIssuesStep.java:214)
>
> [CPPCheck] [-ERROR-]  at
> io.jenkins.plugins.analysis.core.steps.ScanForIssuesStep$Execution.run(ScanForIssuesStep.java:175)
>
> [CPPCheck] [-ERROR-]  at
> org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
>
> [CPPCheck] [-ERROR-]  at
> java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>
> [CPPCheck] [-ERROR-]  at java.util.concurrent.FutureTask.run(Unknown
> Source)
>
> [CPPCheck] [-ERROR-]  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>
> [CPPCheck] [-ERROR-]  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>
> [CPPCheck] [-ERROR-]  at java.lang.Thread.run(Unknown Source)
>
> [CPPCheck] [-ERROR-]  [wrapped] edu.hm.hafner.analysis.ParsingException:
> Exception occurred during parsing
>
> WstxUnexpectedCharException: Unexpected character 'C' (code 67) in prolog;
> expected '<'
>
>  at [row,col {unknown-source}]: [1,1]
>
> com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character 'C'
> (code 67) in prolog; expected '<'
>
>  at [row,col {unknown-source}]: [1,1]
>
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:648)
>
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2047)
>
> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1069)
>
> at
> se.bjurr.violations.lib.parsers.CPPCheckParser.parseReportOutput(CPPCheckParser.java:43)
>
> at
> edu.hm.hafner.analysis.parser.violations.AbstractViolationAdapter.parse(AbstractViolationAdapter.java:35)
>
> at
> io.jenkins.plugins.analysis.core.model.FilesScanner.aggregateIssuesOfFile(FilesScanner.java:105)
>
> at
> io.jenkins.plugins.analysis.core.model.FilesScanner.scanFiles(FilesScanner.java:89)
>
> at
> io.jenkins.plugins.analysis.core.model.FilesScanner.invoke(FilesScanner.java:72)
>
> at
> io.jenkins.plugins.analysis.core.model.FilesScanner.invoke(FilesScanner.java:30)
>
> at hudson.FilePath.act(FilePath.java:1164)
>
> at hudson.FilePath.act(FilePath.java:1147)
>
> at
> io.jenkins.plugins.analysis.core.model.ReportScanningTool.scanInWorkspace(ReportScanningTool.java:152)
>
> at
> io.jenkins.plugins.analysis.core.model.ReportScanningTool.scan(ReportScanningTool.java:134)
>
> at
> io.jenkins.plugins.analysis.core.steps.IssuesScanner.scan(IssuesScanner.java:95)
>
> at
> io.jenkins.plugins.analysis.core.steps.ScanForIssuesStep$Execution.run(ScanForIssuesStep.java:214)
>
> at
> io.jenkins.plugins.analysis.core.steps.ScanForIssuesStep$Execution.run(ScanForIssuesStep.java:175)
>
> at
> org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
>
> at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
>
> at java.util.concurrent.FutureTask.run(Unknown Source)
>
> at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>
> at java.lang.Thread.run(Unknown Source)
>
> ```
>
>
>
>
>
>   [1]:
> https://stackoverflow.com/questions/45836071/cppcheck-into-jenkins-with-qt-project
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/eefe0887-c933-4541-aab3-1f286c04b371n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/eefe0887-c933-4541-aab3-1f286c04b371n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
>
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/8c629824-db3d-404f-9845-a95f14f4849dn%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/8c629824-db3d-404f-9845-a95f14f4849dn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
>
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/1cfaf8d9-b011-4249-9540-168f075d4049n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/1cfaf8d9-b011-4249-9540-168f075d4049n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
>
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/d268e9b6-727c-4697-87e1-a9df64781a60n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/d268e9b6-727c-4697-87e1-a9df64781a60n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/233a664a-9d1c-4833-b6e7-29f959b374cfn%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-users/233a664a-9d1c-4833-b6e7-29f959b374cfn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/A54FBCD1-C520-4109-9A5B-4CEECF0B8F4B%40gmail.com
> <https://groups.google.com/d/msgid/jenkinsci-users/A54FBCD1-C520-4109-9A5B-4CEECF0B8F4B%40gmail.com?utm_medium=email&utm_source=footer>
> .
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Jenkins Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/jenkinsci-users/IEyGzpdo1-8/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-users/QB1PR01MB3844C2C47704FA2735D7C364CD619%40QB1PR01MB3844.CANPRD01.PROD.OUTLOOK.COM
> <https://groups.google.com/d/msgid/jenkinsci-users/QB1PR01MB3844C2C47704FA2735D7C364CD619%40QB1PR01MB3844.CANPRD01.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-users/CALZFchfsYmyonc-MPWFFt3yR_C_fSLs5VbO%2B%2B99jL9ZRVyxX%3Dg%40mail.gmail.com.

Reply via email to