Following the testcase I verified that:
- jtreg 6.9.12-2 fails
- jtreg 6.9.12-2ubuntu1 works


[More information]
$ apt policy testng
testng:
  Installed: 6.9.12-2
  Candidate: 6.9.12-2ubuntu1
  Version table:
     6.9.12-2ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic-proposed/universe amd64 
Packages
 *** 6.9.12-2 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
        100 /var/lib/dpkg/status


** Description changed:

  [Impact]
  testng 6.9.12-2 code imports a java class from guava but does not declare a 
dependency on dependency on libguava-java. The actual import is not required 
and was reported upstream [1] and already fixed [2].
  
  The patch [2] should be applied to testng to prevent failures when
  running it (see output example at the bottom).
  
  The testsuites from openjdk 10 (and later) added a dependency to testng
  which then triggered the missing class exception - please note that
  openjdk-lts in bionic currently does not run any tests, which is why
  this has not been (yet) fixed.
  
  openjdk-11 is being backported to bionic (see bug #1814133) and has
  tests enable, thus requiring this fix.
  
  [Test Case]
  Execute openjdk-lts autopkgtests from Cosmic using testng 6.9.12-2 and verify 
that the tests fail because of missing dependency on guava.
  
  After the patch is applied the tests should work fine.
  
+ In a bionic schroot:
+ $ sudo apt build-dep openjdk-lts
+ $ sudo apt source openjdk-lts
+ $ cd openjdk-lts-10.0.2+13/test
+ $ jtreg -v jdk/sun/misc/
+ 
+ - Fail case jtreg output -
+ (snipped)
+ runner starting test: sun/misc/InvokeCleaner.java
+ runner finished test: sun/misc/InvokeCleaner.java
+ Failed. Execution failed: `main' threw exception: java.lang.Exception: 
failures: 2
+ runner starting test: sun/misc/SunMiscSignalTest.java
+ runner finished test: sun/misc/SunMiscSignalTest.java
+ Failed. Execution failed: `main' threw exception: java.lang.Exception: 
failures: 3
+ Test results: passed: 9; failed: 2
+ 
+ - Success case jtreg output -
+ (snipped)
+ runner starting test: sun/misc/InvokeCleaner.java
+ runner finished test: sun/misc/InvokeCleaner.java
+ Passed. Execution successful
+ runner starting test: sun/misc/SunMiscSignalTest.java
+ runner finished test: sun/misc/SunMiscSignalTest.java
+ Passed. Execution successful
+ Test results: passed: 11
+ 
+ In the fail case one can also check the failure cause:
+ $ cat JTwork/sun/misc/InvokeCleaner.jtr
+ (snipped)
+ ----------System.out:(85/5504)----------
+ [TestNG] Running:
+   sun/misc/InvokeCleaner.java
+ 
+ config InvokeCleaner.init(): success
+ test InvokeCleaner.badBuffers(): skip
+ java.lang.NoClassDefFoundError: com/google/common/primitives/Ints
+       at 
org.testng.internal.annotations.JDK15TagFactory.createDataProviderTag(JDK15TagFactory.java:335)
+ (snipped)
+ 
+ 
  [Regression Potential]
  
  This change only backports a patch that actually removes a non-declare
  and unnecessary dependency from testng, no regressions are expected at
  all.
- 
  
  [Original Description]
  While running OpenJDK 10 tests I noticed that quite a few tests that depend 
on testng fail due to a missing guava class.
  
  The package libguava-java has the class but it is not declared as a
  dependency.
  
  The bug has been reported upstream back in 2016 [1] and fixed a few days
  after that [2]. The guava class import with a new internal class [3].
  
  testng should be updated to a newer version or that particular patch [3]
  should be applied to the existing package in both cosmic and bionic.
  
  References:
  [1] https://github.com/cbeust/testng/issues/1085
  [2] https://github.com/cbeust/testng/pull/1086
  [3] 
https://github.com/cbeust/testng/pull/1086/commits/deeb5847282ae3b5b185c046a8146814bf98b124
  
  Error output example:
  
  java.lang.NoClassDefFoundError: com/google/common/primitives/Ints
   at 
org.testng.internal.annotations.JDK15TagFactory.createDataProviderTag(JDK15TagFactory.java:335)
   at 
org.testng.internal.annotations.JDK15TagFactory.createTag(JDK15TagFactory.java:59)
   at 
org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(JDK15AnnotationFinder.java:217)
   at 
org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(JDK15AnnotationFinder.java:111)
   at org.testng.internal.Parameters.findDataProvider(Parameters.java:326)
   at org.testng.internal.Parameters.findDataProvider(Parameters.java:261)
   at org.testng.internal.Parameters.handleParameters(Parameters.java:418)
   at org.testng.internal.Invoker.handleParameters(Invoker.java:1240)
   at org.testng.internal.Invoker.createParameters(Invoker.java:980)
   at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1070)
   at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.

** Tags removed: bionic cosmic verification-needed verification-needed-bionic
** Tags added: verification-done-bionic

** Summary changed:

- testng fails due to missing guava dependency
+ [SRU] testng fails due to missing guava dependency

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1785896

Title:
  [SRU] testng fails due to missing guava dependency

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/testng/+bug/1785896/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to