Kitchen-sink language problems on mac

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Wed Jun 13 16:37:41 PDT 2007


Christian,

I believe I've identified the issue which you fixed by adding the line
       <arg value="tools/javac"/>

There is a minor change in behaviour for jtreg 3.2.2_02, to fix a problem
with the way that jtreg executes tests specified in an Ant task. (Ant 
support
in jtreg is a relatively new feature.)

The problem is caused by competing behaviors in jtreg and Ant, as to who
should expand directories.  On the command line, jtreg will expand any
directories you give it into a list of the tests in that directory. 
Depending
on what exactly you write, Ant can also expand a directory into a list 
of files
and subdirectories. We need to make sure that jtreg does not expand
any directories that have also been expanded by Ant.

The solution we decided on was that if you use an Ant fileset to specify
the set of tests to be run, jtreg will just look at the files in the 
fileset,
and not any directories implicit in the fileset.

This means that instead of specifying the directory
       <include name="tools/javac"/>

you should specify the set of files, by
       <include name="tools/javac/**"/>

or even just
       <include name="tools/javac/"/>

which means the same thing. (Note the trailing slash after javac.)

Or, you can do as you did, and specify a directory as an arg for jtreg,
in which case jtreg will itself expand the directory.

-- Jon


Christian Plesner Hansen wrote:
> The version I'm using is 3.2.2_02.  I'm running it on mac, I can try
> windows and/or linux tomorrow.
>
> I've been running it with ant (the build.xml that comes with ksl)
> through netbeans.  Here's the ant target:
>
> <target name="xtest" depends="build">
>    <fail unless="jtreg.home" message="Property 'jtreg.home' needs to
> be set to the jtreg installation directory."/>
>    <taskdef name="jtreg" classpath="${jtreg.home}/lib/jtreg.jar"
> classname="com.sun.javatest.regtest.Main$$Ant"/>
>    <fail unless="test.jdk.home" message="Property 'test.jdk.home'
> needs to be set to the baseline JDK to be used to run the tests"/>
>    <jtreg dir="test" samevm="false" verbose="summary"
>            jdk="${test.jdk.home}"
>            workDir="${build.jtreg}/work"
>            reportDir="${build.jtreg}/report">
>        <arg value="-noshell"/>
>        <arg value="-Xbootclasspath/p:${dist.javac}/lib/javac.jar"/>
>        <arg value="tools/javac"/>
>        <include name="tools/javac"/>
>    </jtreg>
> </target>
>
> test.jdk.home is set to point to apple's most recent version of java
> 1.6.  I've attached the summary output.  If I don't add the <arg
> value="tools/javac"/> line I get this:
>
> /Users/plesner/Documents/compiler/build.xml:157: No test suite or
> tests specified.
>
>
> -- Christian
>
> On 6/13/07, Jonathan Gibbons <Jonathan.Gibbons at sun.com> wrote:
>> Christian,
>>
>> I'm sorry to hear of your problems with jtreg.  Which version are you
>> using?
>> The latest version on the OpenJDK website is 3.2.2_02 (forget the
>> build numbers
>> in this case, they're irrelevant.
>>
>> If you can send us the details of how you invoke jtreg (either Ant or
>> command line)
>> and any error messages, I'll see if I can identify what is going
>> wrong for you.
>> I presume this is still on a Mac, that you're having problems? Do you
>> see the same
>> problems on any other system, such as Linux, Solaris, or Windows?
>>
>> On a related note, if anyone else is reading, we mortals can now edit
>> pages
>> on the OpenJDK website again (well, actually, only Sun mortals at
>> this point.)
>> So we'll be looking to generally update the info on the OpenJDK pages
>> in the
>> next few days.
>>
>> -- Jon
>>
>> On Jun 13, 2007, at 8:02 AM, Christian Plesner Hansen wrote:
>>
>> > I've been running jtreg in netbeans using the ant script that comes
>> > with ksl.  When I run it the way it says on the website it fails and
>> > says that it can't find any tests to run.
>> >
>> > I've tried adding an argument that specifies the javac tests and
>> > disabled sameVM mode.  That makes it runs the tests but it still gives
>> > a bunch of failures, many of them NoClassDefFoundError.
>> >
>> >
>> > -- Christian
>> >
>> > On 6/12/07, Jonathan Gibbons <Jonathan.Gibbons at sun.com> wrote:
>> >> Christian,
>> >>
>> >> Peter brought the issue of the compiled property files to my
>> >> attention
>> >> last week.
>> >> I've filed Bug 6568290 to track the issue.
>> >>
>> >> The short term workaround is to take and use a copy of the
>> >> property compiler
>> >> from OpenJDK: make/tools/CompileProperties/CompileProperties.java
>> >> or to write your own class that you can use which will read and
>> >> use the
>> >> .properties files directly.
>> >>
>> >> As for the jtreg compiler tests, there are two issues that I know of.
>> >> The shell tests do not work in the mode where you put javac.jar on
>> >> the
>> >> bootclasspath. The workaround for this is to use the -noshell
>> >> argument
>> >> to jtreg to (temporarily) exclude those tests.  The other issue
>> >> that came up
>> >> a couple of weeks ago is that there were some problems running the
>> >> tests
>> >> in sameVM mode (the -s option.)  The workaround is not to use -s.
>> >> I have a fix for that latter problem, and we will be posting a new
>> >> version of
>> >> jttreg soon, I hope.
>> >>
>> >> -- Jon
>> >>
>> >>
>> >>
>> >> Christian Plesner Hansen wrote:
>> >> > Hi
>> >> > I've been trying to build the kitchen-sink language project on
>> >> my mac
>> >> > and have run into some trouble.  I thought you might want to
>> >> know this
>> >> > so you can either fix it or at least warn about it on the project
>> >> > website.
>> >> >
>> >> > On mac the bootclasspath contains the class files for the default
>> >> > installed version of javac.  This means that when you run
>> >> > dist/bin/javac, it doesn't run the javac you just built but the
>> >> > standard one from the installed j2se.  If you specify javac.jar
>> >> with
>> >> > -Xbootclasspath/p your javac will be run, but will not use its own
>> >> > property files because the compiled property files from the
>> >> installed
>> >> > javac takes precedence over the property files from your own
>> >> > javac.jar.
>> >> >
>> >> > Also, a bunch of the jtreg compiler tests fail seemingly also
>> >> because
>> >> > of classpath/bootclasspath problems.
>> >> >
>> >> >
>> >> > -- Christian
>> >>
>> >>
>>
>>




More information about the compiler-dev mailing list