Status of jtreg build

Jonathan Gibbons jonathan.gibbons at oracle.com
Wed Apr 13 15:49:13 UTC 2016


Well, that part of the jtreg build system was written when TestNG
came as a single jar and predates its Mavenisation.

jtreg would probably work if you had separate jcommander.jar and testng.jar
and put jcommander.jar on the Class-Path in the testng.jar manifest.
Hmm, that may not work for those tests (like some of the streams tests)
which need testng.jar on th bootclasspath.   (IIRC, Class-Path is not 
honored for
jars on the bcp.)

-- Jon



On 04/13/2016 08:26 AM, Martin Buchholz wrote:
> Maven likes to have as many jar files as possible, so jcommander and
> testng are separated.
> But jtreg thinks testng.jar should contain jcommander, so I ended up
> having to build testng-jar-all
>
> (jtreg should probably switch to maven's view of the world and take
> jcommander as another dependency)
>
> Hacky build script snippet:
>
> # --- testng ---
> # Build "fat" testng.jar (incorporating jcommander) from source.
> # No one seems to distribute such fat testng jars anymore.
> rm -rf testng testng-*
> wget -qOtestng.zip https://github.com/cbeust/testng/archive/testng-6.8.5.zip
> unzip -q testng.zip
> rm testng.zip
> mv testng-* testng
> (
>    export JAVA_HOME="$HOME/jdk/jdk6"
>    export PATH=$JAVA_HOME/bin:$PATH
>    cd testng &&
>    mkdir -p ~/.ant/lib &&
>    cp ivy-2.1.0.jar ~/.ant/lib/. &&
>    ant clean compile copy-resources testng-jar-all &&
>    rm ~/.ant/lib/ivy-2.1.0.jar
> )
> TESTNG_HOME="$ROOT/testng"
> TESTNG_JAR=$(find "$ROOT/testng/target/" -name "testng*jar")
>
> On Tue, Apr 12, 2016 at 11:53 PM, Volker Simonis
> <volker.simonis at gmail.com> wrote:
>>
>> On Tue, Apr 12, 2016 at 11:28 PM, Martin Buchholz <martinrb at google.com>
>> wrote:
>>> jtreg build on
>>> https://adopt-openjdk.ci.cloudbees.com/
>>> is broken, as is its dependency asmtools
>>> The jtreg-4.2 build they advertise was created before there was any 4.2
>>> tag.
>>> They seem to be missing testng as a dependency.
>>> The project does keep trying (and failing) to build, however.
>>>
>>> I tried and failed to find on the Net the "full" testng-6.8.zip that
>>> used to be distributed on testng.org.
>>>
>> That seems true, but I think all you needed from the "full" testng-6.8.zip
>> was the LICENSE file. See jtreg/make/jtreg.gmk
>>
>> $(JTREG_IMAGEDIR)/legal/testng/LICENSE.txt: $(call
>> PosixPath,$(TESTNG_HOME)/LICENSE.txt)
>>          $(MKDIR) -p $(@D)
>>          $(CAT) $(TESTNG_HOME)/LICENSE.txt >> $@
>>
>> The testng jar file is specified by TESTNG_JAR anyway. So I think you can
>> download the jar from
>>
>> http://mvnrepository.com/artifact/org.testng/testng/6.8 or
>> http://mvnrepository.com/artifact/org.testng/testng/6.8.5
>>
>> because http://openjdk.java.net/jtreg/build.html now recommends 6.8.5 and
>> get the license file from:
>>
>> https://github.com/cbeust/testng
>>
>>> On Tue, Apr 12, 2016 at 2:11 PM, Jonathan Gibbons
>>> <jonathan.gibbons at oracle.com> wrote:
>>>>
>>>> On 04/11/2016 11:06 AM, Carsten Varming wrote:
>>>>> Dear jtreg devs,
>>>>>
>>>>> I wanted to download jtreg to run JDK9 hotspot regression tests, but I
>>>>> have been unsuccessful so far. Perhaps you know what I need to do to
>>>>> get
>>>>> going.
>>>>>
>>>>> The hotspot regression tests need at least jtreg 4.2 b01. When I
>>>>> downloaded the latest build published at
>>>>> https://adopt-openjdk.ci.cloudbees.com/job/jtreg/ (4.2.0-tip, from
>>>>> build
>>>>> 496) and tried the hotspot regression tests I got:
>>>>>
>>>>> Error: Unexpected exception occurred! java.lang.NumberFormatException:
>>>>> For
>>>>> input string: "ip"
>>>>> java.lang.NumberFormatException: For input string: "ip"
>>>>>          at
>>>>>
>>>>> java.lang.NumberFormatException.forInputString(java.base at 9-internal/NumberFormatException.java:65)
>>>>>          at
>>>>> java.lang.Integer.parseInt(java.base at 9-internal/Integer.java:695)
>>>>>          at
>>>>> java.lang.Integer.parseInt(java.base at 9-internal/Integer.java:813)
>>>>>          at com.sun.javatest.regtest.Version.getBuild(Version.java:186)
>>>>>          at com.sun.javatest.regtest.Version.compareTo(Version.java:168)
>>>>>          at com.sun.javatest.regtest.Main.run(Main.java:1091)
>>>>>          at com.sun.javatest.regtest.Main.run(Main.java:1037)
>>>>>          at com.sun.javatest.regtest.Main.main(Main.java:951)
>>>>>
>>>>> I suspect the check against "requiredVersion=4.2 b01" from TEST.ROOT
>>>>>
>>>>> (http://hg.openjdk.java.net/jdk9/hs-rt/hotspot/file/1c08ca66db33/test/TEST.ROOT)
>>>>> went wrong. I suspect "build = manifest.getProperty("jtreg-Build");" in
>>>>>
>>>>> http://hg.openjdk.java.net/code-tools/jtreg/file/6bfef17a03d5/src/share/classes/com/sun/javatest/regtest/Version.java
>>>>> sets Version.build to "tip" and Version.getBuild tries to parse "ip" as
>>>>> a
>>>>> number. :(
>>>>>
>>>>> I tried to get past this problem by changing the required jtreg version
>>>>> to
>>>>> 4.1 b01. That gets the tests running, but a third of them fail with a
>>>>> class
>>>>> loading problem: A ClassFormatError is thrown with "Truncated class
>>>>> file".
>>>>> This seems to be due to a missing
>>>>> java/lang/reflect/JTRegModuleHelper.class.
>>>>> I suspect that this requirement was introduced with the module system
>>>>> that
>>>>> was integrated a few weeks ago.
>>>>>
>>>>> So, how do I get a version of jtreg that works with the latest JDK9?
>>>>>
>>>>> BTW. It looks like the jtreg build
>>>>> (https://adopt-openjdk.ci.cloudbees.com/job/jtreg/) is failing because
>>>>> of a
>>>>> missing dependency on testng.
>>>>>
>>>>> Help much appreaciated,
>>>>> Carsten
>>>>
>>>> The version of jtreg available on cloudbees.com has the following entry
>>>> in
>>>> its MANIFEST.MF,
>>>>
>>>>      jtreg-Build: tip
>>>>
>>>> and jtreg is naively assuming it to be of the form
>>>>      jtreg-Build: b<integer>
>>>>
>>>> I can make jtreg be more tolerant, but I also also note that the binary
>>>> is
>>>> missing lib/asmtools.jar, which is required by some tests.  The contents
>>>> of
>>>> the tar bundle are all dated 25 January 2016, 10:47 which is somewhat
>>>> suspicious.
>>>>
>>>> -- Jon
>>



More information about the jtreg-use mailing list