Code Monkey home page Code Monkey logo

llvm-cov-plugin's People

Contributors

cizezsy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

llvm-cov-plugin's Issues

missing source data on the report page

I'm also trying llvm-cov-plugin 1.0.0-alpha-2 and Code Coverage API Plugin 1.0.10

Under pipeline->post->always the llvmAdapter is defined
/* publish llvm coverage report*/ publishCoverage adapters: [llvmAdapter('UnittestsReport/Report.json')], sourceFileResolver: sourceFiles('STORE_LAST_BUILD')

There is also no error or waning in Jenkins log, but no source file was shown on the report page:
grafik

logs of publishCoverage:

[Pipeline] publishCoverage
Publishing Coverage report....
A total of 1 reports were found
Source File Navigation is enabled - Current level: STORE_LAST_BUILD
0 source files need to be copied

I've created the Report.json with llvm-cov-6.0

Coverage data doesn't match report

Sorry for bothering you again. Now that the API plugin in the dev version is installed I do get a coverage report. However I can't really make sense of these numbers. I can't upload images to GitHub so text will have to do:

I get

LLVM Function

  • Covered: 403
  • Missed: 22

However looking at the totals section in coverage.json it has345 functions and 4 covered (which is expected because I'm only running a single test case).

I could understand if the files outside the repository are filtered, however there are more than the total number of functions which I don't get.

llvm-cov moved to json format 2.0.1

Version report

Jenkins and plugins versions report:

Irrelevant

  • What Operating System are you using (both controller, and any agents involved in the problem)?

Windows 10

Reproduction steps

Use current llvm release (12) to produce coverage report in json format.
The llvm-cov-plugin then will return an error:
Publishing Coverage report....
report <some_path.json> for llvm-cov has met some errors: Unsupported Json file - version must be 2.0.0

Results

Expected result:

Coverage to be imported

Actual result:

No coverage is imported

Comments:
Since the json file version 2.0.1 only introduced additional fields the importer for version 2.0.0 should still be able to work with the file. It would just not recognize the new fields. May be it makes sense as a quick fix to change the check to accept all 2.0.* versions?

Null Pointer exception while processing llvm-cov.json

Hi,

I work with your latest master version (Commit ID: 844134b) and get a NullPointer exception while processing our llvm-cov.json file. The crash always happens in LLVMCoverageParser.java L57 While debugging it with a test where I use the same JSON file, I figured out that there is no CoverageElement for "LLVM Function" available.

Now I added a check before proceeding with the result of the CoverageElement get call. But is this the right way doing it?

Best Regards,
Thomas

Null pointer exception seen while parsing coverage json file

Jenkins and plugins versions report

Jenkins: 2.382
OS: Windows Server 2016 - 10.0

ace-editor:1.1
adoptopenjdk:1.5
ant:481.v7b_09e538fcca
antisamy-markup-formatter:155.v795fb_8702324
apache-httpcomponents-client-4-api:4.5.13-138.v4e7d9a_7b_a_e61
authentication-tokens:1.4
bootstrap4-api:4.6.0-5
bootstrap5-api:5.2.1-3
bouncycastle-api:2.26
branch-api:2.1051.v9985666b_f6cc
build-timeout:1.25
build-token-trigger:1.0.0
built-on-column:1.3
caffeine-api:2.9.3-65.v6a_47d0f4d1fe
changes-since-last-success:0.6
checks-api:1.8.1
cloudbees-folder:6.800.v71307ca_b_986b
code-coverage-api:3.4.0
command-launcher:90.v669d7ccb_7c31
commons-lang3-api:3.12.0-36.vd97de6465d5b_
commons-text-api:1.10.0-27.vb_fa_3896786a_7
conditional-buildstep:1.4.2
credentials:1214.v1de940103927
credentials-binding:523.vd859a_4b_122e6
data-tables-api:1.12.1-4
description-setter:1.10
display-url-api:2.3.7
dtkit-api:3.0.2
durable-task:503.v57154d18d478
echarts-api:5.4.0-1
email-ext:2.92
envinject:2.892.v25453b_80e595
envinject-api:1.199.v3ce31253ed13
external-monitor-job:203.v683c09d993b_9
extra-columns:1.25
font-awesome-api:6.2.1-1
forensics-api:1.17.0
git:4.14.3
git-client:3.13.1
git-server:99.va_0826a_b_cdfa_d
handlebars:3.0.8
handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
htmlpublisher:1.31
instance-identity:142.v04572ca_5b_265
ionicons-api:31.v4757b_6987003
jackson2-api:2.14.1-313.v504cdd45c18b
jakarta-activation-api:2.0.1-2
jakarta-mail-api:2.0.1-2
javadoc:226.v71211feb_e7e9
javax-activation-api:1.2.0-5
javax-mail-api:1.6.2-8
jaxb:2.3.7-1
jdk-tool:63.v62d2fd4b_4793
jenkins-design-language:1.26.0
jjwt-api:0.11.5-77.v646c772fddb_0
jnr-posix-api:3.1.16-1
jquery:1.12.4-1
jquery-detached:1.2.1
jquery3-api:3.6.1-2
jsch:0.1.55.61.va_e9ee26616e7
junit:1166.va_436e268e972
ldap:2.12
llvm-cov:1.0.1-SNAPSHOT (private-66de0adc-jenkins)
lockable-resources:1069.v726298f53f8c
mailer:438.v02c7f0a_12fa_4
matrix-auth:3.1.6
matrix-project:785.v06b_7f47b_c631
maven-plugin:3.20
mina-sshd-api-common:2.9.2-50.va_0e1f42659a_a
mina-sshd-api-core:2.9.2-50.va_0e1f42659a_a
momentjs:1.1.1
okhttp-api:4.9.3-108.v0feda04578cf
p4:1.13.0
pam-auth:1.10
parameterized-trigger:2.45
pipeline-build-step:2.18
pipeline-graph-analysis:195.v5812d95a_a_2f9
pipeline-groovy-lib:621.vb_44ce045b_582
pipeline-input-step:466.v6d0a_5df34f81
pipeline-milestone-step:101.vd572fef9d926
pipeline-model-api:2.2118.v31fd5b_9944b_5
pipeline-model-definition:2.2118.v31fd5b_9944b_5
pipeline-model-extensions:2.2118.v31fd5b_9944b_5
pipeline-rest-api:2.28
pipeline-stage-step:296.v5f6908f017a_5
pipeline-stage-tags-metadata:2.2118.v31fd5b_9944b_5
pipeline-stage-view:2.28
plain-credentials:139.ved2b_9cf7587b
plugin-util-api:2.20.0
popper-api:1.16.1-3
popper2-api:2.11.6-2
powershell:1.7
prism-api:1.29.0-2
project-description-setter:1.2
publish-over:0.22
publish-over-ssh:1.24
pubsub-light:1.17
qtest:1.4.8
resource-disposer:0.20
run-condition:1.5
scm-api:631.v9143df5b_e4a_a
script-security:1228.vd93135a_2fb_25
slave-setup:1.10
snakeyaml-api:1.33-90.v80dcb_3814d35
ssh-credentials:305.v8f4381501156
ssh-slaves:2.854.v7fd446b_337c9
sshd:3.275.v9e17c10f2571
structs:324.va_f5d6774f3a_d
test-results-analyzer:0.4.0
timestamper:1.21
token-macro:321.vd7cc1f2a_52c8
trilead-api:2.84.v72119de229b_7
uno-choice:2.6.4
variant:59.vf075fe829ccb
windows-slaves:1.8.1
workflow-aggregator:590.v6a_d052e5a_a_b_5
workflow-api:1200.v8005c684b_a_c6
workflow-basic-steps:994.vd57e3ca_46d24
workflow-cps:3583.v4f58de0d78d5
workflow-durable-task-step:1217.v38306d8fa_b_5c
workflow-job:1254.v3f64639b_11dd
workflow-multibranch:716.vc692a_e52371b_
workflow-scm-step:400.v6b_89a_1317c9a_
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:839.v35e2736cfd5c
ws-cleanup:0.44

What Operating System are you using (both controller, and any agents involved in the problem)?

Agent running on Ubuntu 22.04
Controller running on Windows Server 2016

Reproduction steps

Hi,

I am working with commit ID 66de0ad. While publishing the coverage report, a null pointer exception is seen:

Publishing Coverage report....
ERROR: Build step failed with exception
java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.databind.JsonNode.iterator()" because "segmentsNode" is null
at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processLines(LLVMCovReportDocumentConverter.java:177)
at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processFiles(LLVMCovReportDocumentConverter.java:111)
at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.processDataObj(LLVMCovReportDocumentConverter.java:72)
at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.convert(LLVMCovReportDocumentConverter.java:45)
at io.jenkins.plugins.llvm.LLVMCovReportDocumentConverter.convert(LLVMCovReportDocumentConverter.java:17)
at io.jenkins.plugins.coverage.adapter.converter.DocumentConverter.convert(DocumentConverter.java:41)
at io.jenkins.plugins.coverage.adapter.JSONCoverageReportAdapter.convert(JSONCoverageReportAdapter.java:23)
at io.jenkins.plugins.coverage.adapter.CoverageReportAdapter.getResult(CoverageReportAdapter.java:57)
at io.jenkins.plugins.coverage.CoverageProcessor.convertToResults(CoverageProcessor.java:363)
at io.jenkins.plugins.coverage.CoverageProcessor.performCoverageReport(CoverageProcessor.java:112)
at io.jenkins.plugins.coverage.CoveragePublisher.perform(CoveragePublisher.java:116)
at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:818)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:767)
at hudson.model.Build$BuildExecution.post2(Build.java:179)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:711)
at hudson.model.Run.execute(Run.java:1925)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
at hudson.model.ResourceController.execute(ResourceController.java:101)
at hudson.model.Executor.run(Executor.java:442)
Build step 'Publish Coverage Report' marked build as failure

Expected Results

Coverage report gets generated and published successfully

Actual Results

Null pointer exception is seen

Anything else?

No response

java.lang.NoSuchMethodError: No such DSL method 'llvmAdapter' found

Hi,

I've trouble getting the latest version (master: 799b043) of the llvm-cov-plugin working. Last time I was required to remove the llvm-adapter symbol, but this time nothing works for me.

Jenkins Version 2.164.1
Code Coverage API: 1.0.8

I've configured our Jenkinsfile like this

publishCoverage adapters: [llvmAdapter('Build/reports/llvm-cov.json')], sourceFileResolver: sourceFiles('NEVER_STORE')

And each job fails with

java.lang.NoSuchMethodError: No such DSL method 'llvmAdapter' found among steps [addEmbeddableBadgeConfiguration, ansiColor, archive, bat, build, catchError, checkout, deleteDir, dir, dockerFingerprintFrom, dockerFingerprintRun, echo, emailext, emailextrecipients, envVarsForTool, error, fileExists, getContext, git, input, isUnix, jiraComment, jiraIssueSelector, jiraSearch, junit, library, libraryResource, load, lock, mail, milestone, node, parallel, powershell, properties, publishHTML, pwd, readFile, readTrusted, resolveScm, retry, script, sh, slackSend, sleep, stage, stash, step, svn, timeout, timestamps, tm, tool, unarchive, unstable, unstash, validateDeclarativePipeline, waitUntil, warnError, withContext, withCredentials, withDockerContainer, withDockerRegistry, withDockerServer, withEnv, wrap, writeFile, ws] or symbols [all, allOf, always, ant, antFromApache, antOutcome, antPath, antTarget, any, anyOf, apiToken, architecture, archiveArtifacts, artifactManager, authorizationMatrix, batchFile, bitbucket, booleanParam, branch, brokenBuildSuspects, brokenTestsSuspects, buildButton, buildDiscarder, buildingTag, caseInsensitive, caseSensitive, certificate, changeRequest, changelog, changeset, checkoutToSubdirectory, checkstyle, choice, choiceParam, cleanWs, clock, cloud, cobertura, coberturaAdapter, command, credentials, cron, crumb, culprits, defaultView, demand, developers, disableConcurrentBuilds, disableResume, docker, dockerCert, dockerfile, downloadSettings, downstream, dumb, durabilityHint, envVars, environment, equals, exportIpa, expression, file, fileParam, filePath, fingerprint, frameOptions, freeStyle, freeStyleJob, fromScm, fromSource, git, gitHubBranchDiscovery, gitHubBranchHeadAuthority, gitHubForkDiscovery, gitHubTagDiscovery, gitHubTrustContributors, gitHubTrustEveryone, gitHubTrustNobody, gitHubTrustPermissions, github, githubPush, gradle, headRegexFilter, headWildcardFilter, hyperlink, hyperlinkToModels, importDeveloperProfile, inheriting, inheritingGlobal, installSource, isRestartedRun, istanbulCobertura, istanbulCoberturaAdapter, jacoco, jacocoAdapter, jdk, jdkInstaller, jgit, jgitapache, jnlp, jobName, label, lastDuration, lastFailure, lastGrantedAuthorities, lastStable, lastSuccess, legacy, legacySCM, list, local, location, logRotator, loggedInUsersCanDoAnything, masterBuild, maven, maven3Mojos, mavenErrors, mavenMojos, mavenWarnings, modernSCM, myView, newContainerPerStage, node, nodeProperties, nonInheriting, nonStoredPasswordParam, none, not, overrideIndexTriggers, paneStatus, parallelsAlwaysFailFast, parameters, password, pattern, permanent, pipeline-model, pipelineTriggers, plainText, plugin, pollSCM, preserveStashes, projectNamingStrategy, proxy, publishCoverage, queueItemAuthenticator, quietPeriod, rateLimitBuilds, recipients, remotingCLI, requestor, run, runParam, schedule, scmRetryCount, scriptApprovalLink, search, security, shell, skipDefaultCheckout, skipStagesAfterUnstable, slackNotifier, slave, sourceFiles, sourceRegexFilter, sourceWildcardFilter, sshUserPrivateKey, stackTrace, standard, status, string, stringParam, swapSpace, tag, text, textParam, tmpSpace, toolLocation, triggeredBy, unlockMacOSKeychain, unsecured, upstream, upstreamDevelopers, userSeed, usernameColonPassword, usernamePassword, viewsTabBar, weather, withAnt, xcode, xcodeBuild, zfs, zip] or globals [currentBuild, docker, env, params, pipeline, scm]
	at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:199)
	at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
	at sun.reflect.GeneratedMethodAccessor283.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213)
	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:158)
	at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:157)
	at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:156)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:160)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:130)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:130)
	at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:130)
	at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
	at WorkflowScript.run(WorkflowScript:80)
	at ___cps.transform___(Native Method)
	at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109)
	at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82)
	at sun.reflect.GeneratedMethodAccessor219.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
	at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
	at com.cloudbees.groovy.cps.Next.step(Next.java:83)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
	at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
	at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:129)
	at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:268)
	at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
	at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
	at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:186)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:370)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:93)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:282)
	at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:270)
	at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Can you help me getting this running again!?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.