Kitchen-sink language problems on mac

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Thu Jun 14 06:58:41 PDT 2007


Christian,

Thank you for trying this and for the additional information.

-- Jon


On Jun 14, 2007, at 4:28 AM, Christian Plesner Hansen wrote:

> I've tried it on linux, it behaves exactly the same.  It looks like
> it's running the compiler at test.jdk.home instead of the one in
> javac.jar.
>
> On 6/14/07, Christian Plesner Hansen <plesner at quenta.org> wrote:
>> Yes, that does indeed fix that problem.
>>
>> On 6/14/07, Jonathan Gibbons <Jonathan.Gibbons at sun.com> wrote:
>> > 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