harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vladimir Ivanov" <ivavladi...@gmail.com>
Subject Re: [testing][buildtest] problem with DRLVM build on windows
Date Wed, 21 Feb 2007 13:11:37 GMT
Sorry for late response.
Your idea is very interesting! But seems in future CI systems should
be adjusted by user.
Now we have simple CI system and jira's with different test suites and
application scenarios. Different users wants to run over his computers
different set of tests: CLASSLIB tests or VM validation or both of
them.
I hope that other tests/scenarios will be added in the future. In this
case store the zip set with different CI settings is almost
impossible.

 thanks, Vladimir


On 2/19/07, Nathan Beyer <ndbeyer@apache.org> wrote:
> On 2/18/07, Vladimir Ivanov <ivavladimir@gmail.com> wrote:
> > On 2/19/07, Nathan Beyer <ndbeyer@apache.org> wrote:
> > > On 2/18/07, Vladimir Ivanov <ivavladimir@gmail.com> wrote:
> > > > On 2/17/07, Nathan Beyer <ndbeyer@apache.org> wrote:
> > > > > Why do we need it ahead of time? I see that we run a build of the
> > > > > classlib, but this seems unnecessary, especially consideing that
we
> > > > > don't do it for DRLVM.
> > > >
> > > > Actually, we run a build for both: classlib and DRLVM. But while DRLVM
> > > > build started through the proper build.bat it is not necessary to add
> > > > cpp.jar, for example, to the ANT_HOME/lib.
> > >
> > > The DRLVM build can't be running, at least not completely, it runs way
> > > too quickly. At least when I compare it to the classlib build run
> > > during the 'setup' target.
> >
> > It is just because the DRLVM build always failed for first run :)
> > But this is only one issue that I know about VM build so I prefer not
> > to report 'FAILED' status here.
> >
> > >
> > > > From my point of view the attempt to build workspace before we run the
> > > > CC allow us to detect some possible issues, like absence of needed
> > > > library, at early stage. It should save user's time in setup and
> > > > maintenance the CC.
> > >
> > > I disagree with that. The ability to run the builds of ClassLib and
> > > DRLVM during the 'setup' target isn't a guarantee that the projects
> > > will build at all from CruiseControl. The two environments are
> > > different. This whole thread is anecdotal evidence of that, as I was
> > > able to complete the 'setup' target completely and successfully, but
> > > the DRLVM didn't build at all in CruiseControl.
> >
> > It was a bug in the script. Now it fixed. In general, I try to support
> > these two environments to be equivalent.
>
> But they aren't equivalent. One is completely dependent on the user's
> setup, while the other COULD be nearly completely under the CI
> system's control. My strategy for the CI system would be to eliminate
> all variability and the biggest variable is the user setting up their
> system.
>
> My preference would be to completely eliminate the setup script
> altogether and replace it with an archive (zip/tar) that just contains
> the entire CI system and the user just needs to start it. In Windows,
> I'd suggest installing a service and starting that. The only external
> dependencies would be a JRE for running CruiseControl and the native
> compiler.
>
> -Nathan
>
> >
> > >
> > > I think the goal of the setup script is to create and setup the CI
> > > environment for Harmony's projects and do so as quickly as possible.
> > > Between the SVN checkout and the builds, the setup takes between 15
> > > and 30 minutes before we even get to see if CruiseControl starts up.
> >
> > I'm not sure that quick start of CC will be good if it done over non-working ws.
> > And when we investigate some issue I prefer as little tools in the
> > toolchain as possible.
> > That's for me, I often forget about GUI libs on Linux and the first
> > attempt of build is very useful here :)
> >
> >  Thanks, Vladimir
> > >
> > > -Nathan
> > >
> > > >
> > > >  thanks, Vladimir
> > > >
> > > > >
> > > > > On 2/15/07, Vladimir Ivanov <ivavladimir@gmail.com> wrote:
> > > > > > On 2/16/07, Nathan Beyer <ndbeyer@apache.org> wrote:
> > > > > > > We do have the ecj.jar before running cruisecontrol.bat.
It's
> > > > > > > downloaded when the 'classlib' fetch-depends target is
run and this
> > > > > > > happens before the cruisecontrol is ever started.
> > > > > >
> > > > > > While 'setup' process checkout CLASLIB and call 'ant fetch-depends
> > > > > > rebuild' we need in this archive before we run 'ant setup'.
But we can
> > > > > > add this jar to the path on the first run and 'setup' will be
passed
> > > > > > on second one.
> > > > > >
> > > > > >  thanks, Vladimir
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > -Nathan
> > > > > > >
> > > > > > > On 2/15/07, Vladimir Ivanov <ivavladimir@gmail.com>
wrote:
> > > > > > > > On 2/15/07, Nathan Beyer <ndbeyer@apache.org>
wrote:
> > > > > > > > > I realize it won't override on the next setup
run, but we're already
> > > > > > > > > changing the BAT file in the setup today, so
why not do this as well.
> > > > > > > > > Also, this seems like a way of downloading the
ecj JAR and adding it
> > > > > > > > > to the classpath. Any reason we haven't done
this before?
> > > > > > > > > In fact, we could do the exact same thing that
is done to add the CPP
> > > > > > > > > tasks. The setup forces a classlib and drlvm
build/download and
> > > > > > > > > changes the startup scripts to add the CPP tasks.
Let's just have it
> > > > > > > > > add the ECJ JAR as well, which is downloaded
with classlib.
> > > > > > > >
> > > > > > > > We need the 'ecj' jar before we run cruisecontrol.bat
(the CPP archive
> > > > > > > > added by drlvm/build.bat file). But any way we can
use the Ant from
> > > > > > > > cruisecontrol archive. I prepare the update.
> > > > > > > >
> > > > > > > >  thanks, Vladimir
> > > > > > > >
> > > > > > > >
> > > > > > > > >
> > > > > > > > > I'd also like to consider adding JavaWrapper
or something similar to
> > > > > > > > > make setting this up as a windows service a tad
easier.
> > > > > > > > >
> > > > > > > > > -Nathan
> > > > > > > > >
> > > > > > > > > On 2/14/07, Vladimir Ivanov <ivavladimir@gmail.com>
wrote:
> > > > > > > > > > On 2/15/07, Nathan Beyer <ndbeyer@apache.org>
wrote:
> > > > > > > > > > > I'm confused. Why does the script download
Ant and extract it, but
> > > > > > > > > > > doesn't use it afterwards?
> > > > > > > > > >
> > > > > > > > > > Ant downloaded as part of cruisecontrol
archive (it stored into
> > > > > > > > > > cruisecontrol-bin-2.5.zip) so no special
download was done.
> > > > > > > > > > Actually, I prefer to use the user's %ANT_HOME%
because I expect
> > > > > > that
> > > > > > > > > > ecj_3.2.jar was downloading there. Also,
it will not override on the
> > > > > > > > > > next 'setup' run.
> > > > > > > > > >
> > > > > > > > > > thanks, Vladimir
> > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > -Nathan
> > > > > > > > > > >
> > > > > > > > > > > On 2/14/07, Nathan Beyer <ndbeyer@apache.org>
wrote:
> > > > > > > > > > > > Yeah, that's in there. Here's
what was generated/massaged when I
> > > > > > ran
> > > > > > > > > > > > 'ant setup'.
> > > > > > > > > > > >
> > > > > > > > > > > > REM Set this if you're using SSH-based
CVS
> > > > > > > > > > > > REM set CVS_RSH=
> > > > > > > > > > > >
> > > > > > > > > > > > REM Uncomment the following line
if you have OutOfMemoryError
> > > > > > errors
> > > > > > > > > > > > set CC_OPTS=-Xmx500m
> > > > > > > > > > > > set BUILD_CFG=debug
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > REM The root of the CruiseControl
directory.  The key
> > > > > > requirement is
> > > > > > > > > > > > that this is the parent
> > > > > > > > > > > > REM directory of CruiseControl's
lib and dist directories.
> > > > > > > > > > > > REM By default assume they are
using the batch file from the
> > > > > > local directory.
> > > > > > > > > > > > REM Acknowledgments to Ant Project
for this batch file
> > > > > > incantation
> > > > > > > > > > > > REM %~dp0 is name of current script
under NT
> > > > > > > > > > > > set CCDIR=%~dp0
> > > > > > > > > > > >
> > > > > > > > > > > > :setClassPath
> > > > > > > > > > > > set CRUISE_PATH=
> > > > > > > > > > > >
> > > > > > > > > > > > :checkJava
> > > > > > > > > > > > if not defined JAVA_HOME goto
noJavaHome
> > > > > > > > > > > > set CRUISE_PATH=%JAVA_HOME%\lib\tools.jar
> > > > > > > > > > > > goto setCruise
> > > > > > > > > > > >
> > > > > > > > > > > > :noJavaHome
> > > > > > > > > > > > echo Warning: You have not set
the JAVA_HOME environment
> > > > > > variable. Any
> > > > > > > > > > > > tasks relying on the tools.jar
file (such as <javac>) will not
> > > > > > work
> > > > > > > > > > > > properly.
> > > > > > > > > > > >
> > > > > > > > > > > > :setCruise
> > > > > > > > > > > > set LIBDIR=%CCDIR%lib
> > > > > > > > > > > >
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\cruisecontrol.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\log4j.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\jdom.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\ant.jar
> > > > > > > > > > > > set
> > > > > > CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ant-apache-regexp.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ecj_3.2.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ant-nodeps.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ant-xslp.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ant-trax.jar
> > > > > > > > > > > > set
> > > > > > CRUISE_PATH=%CRUISE_PATH%;C:\buildtest\trunk\cc/projects/drlvm/trunk/build\make\tmp\ant-contrib.jar
> > > > > > > > > > > > set
> > > > > > CRUISE_PATH=%CRUISE_PATH%;C:\buildtest\trunk\cc/projects/drlvm/trunk/build\make\tmp\cpptasks\patched.classes
> > > > > > > > > > > > set
> > > > > > CRUISE_PATH=%CRUISE_PATH%;C:\buildtest\trunk\cc/projects/drlvm/trunk/build\make\tmp\cpptasks.jar
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\ant-launcher.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\jasper-compiler.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\jasper-runtime.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\xercesImpl-2.8.0.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\xml-apis-2.8.0.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\xmlrpc-2.0.1.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\xalan-2.7.0.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\serializer-2.7.0.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\jakarta-oro-2.0.3.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\mail.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\junit.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\activation.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\commons-net-1.1.0.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\starteam-sdk.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\mx4j.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\mx4j-tools.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\mx4j-remote.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\smack.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\comm.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\x10.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\fast-md5.jar
> > > > > > > > > > > > set
> > > > > > CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\maven-embedder-2.0.3-dep.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\javax.servlet.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\org.mortbay.jetty.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\commons-logging.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\commons-el.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;%LIBDIR%\jaxen-1.1-beta-8.jar
> > > > > > > > > > > > set CRUISE_PATH=%CRUISE_PATH%;.
> > > > > > > > > > > >
> > > > > > > > > > > > set EXEC="%JAVA_HOME%\bin\java"
%CC_OPTS% -cp "%CRUISE_PATH%"
> > > > > > > > > > > >
> > > > > > -Djavax.management.builder.initial=mx4j.server.MX4JMBeanServerBuilder
> > > > > > > > > > > > CruiseControlWithJetty %* -jmxport
8000
> > > > > > > > > > > > echo %EXEC%
> > > > > > > > > > > > %EXEC%
> > > > > > > > > > > >
> > > > > > > > > > > > On 2/14/07, Vladimir Ivanov <ivavladimir@gmail.com>
wrote:
> > > > > > > > > > > > > Please check that you have
the string:
> > > > > > > > > > > > > "set CRUISE_PATH=%CRUISE_PATH%;%ANT_HOME%\lib\ant-trax.jar"
> > > > > > > > > > > > > in the cruisecontrol.bat
and "ant-trax.jar" in the ant libs.
> > > > > > > > > > > > >
> > > > > > > > > > > > >  thanks, Vladimir
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > On 2/15/07, Nathan Beyer
<ndbeyer@apache.org> wrote:
> > > > > > > > > > > > > > Now that I have a buildtest
instance running, I'm able to
> > > > > > build the
> > > > > > > > > > > > > > 'classlib' project in
CruiseControl, but the others are all
> > > > > > failing.
> > > > > > > > > > > > > > I'm running on Windows
and launching with the generate
> > > > > > > > > > > > > > 'cruisecontrol.bat'
file.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Here's the log from
the 'drlvm' project. Is another item
> > > > > > missing in
> > > > > > > > > > > > > > the classpath?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > java.lang.ClassNotFoundException:
> > > > > > > > > > > > > > org.apache.tools.ant.taskdefs.optional.XslpLiaison
> > > > > > > > > > > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> > > > > > > > > > > > > > at java.security.AccessController.doPrivileged(Native
> > > > > > Method)
> > > > > > > > > > > > > > at
> > > > > > java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > > > > > > > > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > > > > > > > > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> > > > > > > > > > > > > > at
> > > > > > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> > > > > > > > > > > > > > at java.lang.Class.forName0(Native
Method)
> > > > > > > > > > > > > > at java.lang.Class.forName(Class.java:169)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.loadClass(XSLTProcess.java:419)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.resolveProcessor(XSLTProcess.java:397)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.getLiaison(XSLTProcess.java:619)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:212)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
> > > > > > > > > > > > > > at org.apache.tools.ant.Task.perform(Task.java:364)
> > > > > > > > > > > > > > at org.apache.tools.ant.Target.execute(Target.java:341)
> > > > > > > > > > > > > > at org.apache.tools.ant.Target.performTasks(Target.java:369)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeTarget(Project.java:1185)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeTargets(Project.java:1068)
> > > > > > > > > > > > > > at org.apache.tools.ant.Main.runBuild(Main.java:668)
> > > > > > > > > > > > > > at org.apache.tools.ant.Main.startAnt(Main.java:187)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
> > > > > > > > > > > > > > java.lang.ClassNotFoundException:
> > > > > > > > > > > > > > org.apache.tools.ant.taskdefs.optional.XalanLiaison
> > > > > > > > > > > > > > at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> > > > > > > > > > > > > > at java.security.AccessController.doPrivileged(Native
> > > > > > Method)
> > > > > > > > > > > > > > at
> > > > > > java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > > > > > > > > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > > > > > > > > > > > > > at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> > > > > > > > > > > > > > at
> > > > > > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> > > > > > > > > > > > > > at java.lang.Class.forName0(Native
Method)
> > > > > > > > > > > > > > at java.lang.Class.forName(Class.java:169)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.loadClass(XSLTProcess.java:419)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.resolveProcessor(XSLTProcess.java:402)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.getLiaison(XSLTProcess.java:616)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.taskdefs.XSLTProcess.execute(XSLTProcess.java:212)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
> > > > > > > > > > > > > > at org.apache.tools.ant.Task.perform(Task.java:364)
> > > > > > > > > > > > > > at org.apache.tools.ant.Target.execute(Target.java:341)
> > > > > > > > > > > > > > at org.apache.tools.ant.Target.performTasks(Target.java:369)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeTarget(Project.java:1185)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.Project.executeTargets(Project.java:1068)
> > > > > > > > > > > > > > at org.apache.tools.ant.Main.runBuild(Main.java:668)
> > > > > > > > > > > > > > at org.apache.tools.ant.Main.startAnt(Main.java:187)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
> > > > > > > > > > > > > > at
> > > > > > org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
View raw message