Welcome to the Linux Foundation Forum!

Running unit tests with Jacoco fails

Posts: 19
edited December 2021 in LFS261 Class Forum

Hi.

I'm trying to reproduce the first scenario of the Lab 9: "Continuous Testing" that was was explained on vídeo "Code Coverage Setup with JaCoCo" and it throw me warnings and errors.
I went through the steps several times and I think that I'm not doing anything different to the video or the first part of Lab 9 (Code coverage with Jacoco).
I try creating a maven project like the lab 9 suggests and a freestyle project as in the video but on both cases I get the same error:

  1. [WARNING] /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/src/integration-test/java/ITFizzBuzzTest.java: Some input files use or override a deprecated API.
  2. [WARNING] /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/src/integration-test/java/ITFizzBuzzTest.java: Recompile with -Xlint:deprecation for details.
  3. [INFO]
  4.  
  5. T E S T S
  6. -------------------------------------------------------
  7. Exception in thread "main" java.lang.reflect.InvocationTargetException
  8. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  9. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  10. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  11. at java.base/java.lang.reflect.Method.invoke(Unknown Source)
  12. at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
  13. at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
  14. Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
  15. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:139)
  16. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:100)
  17. at org.jacoco.agent.rt.internal_b0d6a23.PreMain.createRuntime(PreMain.java:55)
  18. at org.jacoco.agent.rt.internal_b0d6a23.PreMain.premain(PreMain.java:47)
  19. ... 6 more
  20. Caused by: java.lang.NoSuchFieldException: $jacocoAccess
  21. at java.base/java.lang.Class.getField(Unknown Source)
  22. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:137)
  23. ... 9 more
  24. *** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at ./src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
  25. FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed
  26. Aborted (core dumped)
  27.  
  28. Results :
  29.  
  30. Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
  31.  
  32. [JENKINS] Recording test results
  33. [INFO] ------------------------------------------------------------------------
  34. [INFO] BUILD FAILURE
  35. [INFO] ------------------------------------------------------------------------
  36. [INFO] Total time: 4.828 s
  37. [INFO] Finished at: 2021-12-13T18:18:50Z
  38. [INFO] ------------------------------------------------------------------------
  39. Waiting for Jenkins to finish collecting data
  40. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test (default-test) on project code-coverage-jacoco: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
  41. [ERROR] Command was/bin/sh -c cd /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco && /opt/java/openjdk/bin/java -javaagent:/var/jenkins_home/.m2/repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=/var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/target/coverage-reports/jacoco-ut.exec -jar /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefirebooter6624810085396241211.jar /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefire10181250726723161838tmp /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefire_013196265457472944591tmp
  42. [ERROR] -> [Help 1]
  43. [ERROR]
  44. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
  45. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
  46. [ERROR]
  47. [ERROR] For more information about the errors and possible solutions, please read the following articles:
  48. [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
  49. [JENKINS] Archiving /var/jenkins_home/workspace/jacoco-test/code-coverage-jacoco/pom.xml to net.petrikainulainen.maven/code-coverage-jacoco/0.1/code-coverage-jacoco-0.1.pom
  50. channel stopped
  51. Finished: FAILURE

I don't know well how to interpret this in order to figure out what happen. Anyone have an idea?
Regards.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Comments

  • Hi @jmarinho, I'm going to do a test case and I'll let you know as soon as I finished it.

    Are you working with Jenkins as a Docker container, or have you installed it by yourself in the OS you are running? What's the Jenkins and Maven version you are running?

    Regards,
    Luis.

  • Posts: 19
    edited December 2021

    Hi @luisviveropena. Thanks for your help.

    I was following the labs strictly until now and, although sometimes they did not come at the first time, I was able to make it work.
    Anyway, I must say that the only thing that I did not do as in labs was when I chose an image for Jenkins container. I picked a slightly newer one than the labs one
    So the answers to your questions are: I'm using Jenkins on a container and the version of Jenkins is: 2.303.3 from the image jenkins/jenkins:2.303.3-lts-slim. My work environment has too another Docker container that acts as a Docker server as in Labs (dind)
    On the other hand, Maven version for the project (jacoco-test) is 3.6.1 that matches the Maven's installation that I have on Global Tools. As in labs too.

    Regards

  • Posts: 13
    edited December 2021

    I am seeing the same error.

    My jenkins agents are running on kubernetes, but I have not had too many issues up until now.

    1. -------------------------------------------------------
    2. T E S T S
    3. -------------------------------------------------------
    4. Exception in thread "main" java.lang.reflect.InvocationTargetException
    5. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    6. at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    7. at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    8. at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    9. at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)
    10. at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(Unknown Source)
    11. Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
    12. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:139)
    13. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:100)
    14. at org.jacoco.agent.rt.internal_b0d6a23.PreMain.createRuntime(PreMain.java:55)
    15. at org.jacoco.agent.rt.internal_b0d6a23.PreMain.premain(PreMain.java:47)
    16. ... 6 more
    17. Caused by: java.lang.NoSuchFieldException: $jacocoAccess
    18. at java.base/java.lang.Class.getField(Unknown Source)
    19. FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed
    20. at org.jacoco.agent.rt.internal_b0d6a23.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:137)
    21. ... 9 more
    22. *** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at ./src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
    23. Aborted (core dumped)
    24.  
    25. Results :
    26.  
    27. Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
    28.  
    29. [INFO] ------------------------------------------------------------------------
    30. [INFO] BUILD FAILURE
    31. [INFO] ------------------------------------------------------------------------
    32. [INFO] Total time: 15.175 s
    33. [INFO] Finished at: 2021-12-17T12:27:42Z
    34. [INFO] ------------------------------------------------------------------------
    35. [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test (default-test) on project code-coverage-jacoco: Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.15:test failed: The forked VM terminated without saying properly goodbye. VM crash or System.exit called ?
    36. [ERROR] Command was/bin/sh -c cd /home/jenkins/agent/workspace/jacoco-test/code-coverage-jacoco && /opt/java/openjdk/bin/java -javaagent:/home/jenkins/.m2/repository/org/jacoco/org.jacoco.agent/0.7.5.201505241946/org.jacoco.agent-0.7.5.201505241946-runtime.jar=destfile=/home/jenkins/agent/workspace/jacoco-test/code-coverage-jacoco/target/coverage-reports/jacoco-ut.exec -jar /home/jenkins/agent/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefirebooter12218850172728523641.jar /home/jenkins/agent/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefire6284159443550726781tmp /home/jenkins/agent/workspace/jacoco-test/code-coverage-jacoco/target/surefire/surefire_012781991046842243410tmp
    37. [ERROR] -> [Help 1]
    38. [ERROR]
    39. [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    40. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    41. [ERROR]
    42. [ERROR] For more information about the errors and possible solutions, please read the following articles:
    43. [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
    44. Build step 'Invoke top-level Maven targets' marked build as failure
    45. Finished: FAILURE
  • Updating to version 0.8.2 resolved this issue for me. Created a pull request.

    https://github.com/lfs261/maven-examples/pull/5

  • Posts: 19
    edited December 2021

    Hi @tomp736.

    You are right, updating to this version solves the issue for me. Thank you!

    Regards.

  • Hi @tomp736 and @jmarinho , thanks for confirming the fix!

    Regards,
    Luis.

  • A 1000 thanks for that hint !

  • I have now merged this change into the master branch so it should be fixed permanently.

  • I've encountered the problem again, updating to 0.8.12 fixed the issue:

    1. <artifactId>jacoco-maven-plugin</artifactId>
    2. <version>0.8.12</version>

    I've got the latest plugin version here: https://central.sonatype.com/search?q=g:org.jacoco a:jacoco-maven-plugin&amp;smo=true

  • Posts: 1,265

    Hi @kzwolenik,

    Ok, thanks for letting us know.

    Regards,
    Luis.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training