You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2008/01/29 11:34:18 UTC

svn commit: r616241 [2/3] - in /harmony/enhanced/drlvm/trunk: ./ make/ make/extra/ make/resources/ make/tests/ make/vm/

Added: harmony/enhanced/drlvm/trunk/make/tests/ehwa-test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/ehwa-test.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/ehwa-test.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/ehwa-test.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<project name="Eclipse HelloWorld test scenario" default="ehwa">
+
+    <import file="test-common.xml"/>
+    <property name="ehwa.test.dir" location="${base.test.dir}/ehwa"/>
+    <property name="ehwa.test.summary" location="${ehwa.test.dir}/status.txt"/>
+    <property name="ECLIPSE_ARCHIVE.home" location="${base.dep.dir}/eclipse"/>
+
+    <property environment="env" />
+    
+    <target name="ehwa" depends="-init-test,setup-ehwa, run-ehwa, check-ehwa-result"/>
+
+    <target name="setup-ehwa" depends="check-setup, install-eclipse, install-plugin">
+        <delete quiet="true" file="${ehwa.test.summary}" />
+        <delete quiet="true" file="${base.test.dir}/ehwa.test.failed" />
+        <property file="${eclipse.home}/.eclipseproduct" prefix="eclipseproduct"/>
+        <echo>Using Eclipse ${eclipseproduct.version} located at ${eclipse.home}</echo>
+    </target>
+
+    <target name="run-ehwa">
+        <for list="${test.mode}" param="mode"
+            trim="true" keepgoing="true">
+            <sequential>
+                <antcall target="-run-ehwa-batch">
+                    <param name="ehwa.mode" value="@{mode}" />
+                </antcall>
+            </sequential>
+        </for>
+    </target>
+    
+    <target name="-run-ehwa-batch">
+        <property name="ehwa.workspace" value="${ehwa.test.dir}/wksp"/>
+        <delete quiet="true" dir="${ehwa.workspace}" />
+        <mkdir dir="${ehwa.workspace}"/>
+        <propertycopy property="ehwa.mode.name" from="${ehwa.mode}.name" override="on"/>
+        <propertycopy property="ehwa.mode.switch" from="${ehwa.mode}.switch" override="on"/>
+        <echo>
+        ==================================
+        Run Eclipse HelloWorld using ${ehwa.mode.name}
+        ==================================
+        </echo>
+        <pathconvert property="equinox.launcher" setonempty="false">
+            <path>
+                <fileset dir="${eclipse.home}/plugins" includes="org.eclipse.equinox.launcher_1.0.0.*.jar"/>
+            </path>
+        </pathconvert>
+        <condition property="eclipse.launcher.jar" 
+            value="${equinox.launcher}" 
+            else="${eclipse.home}/startup.jar">
+            <isset property="equinox.launcher"/>
+        </condition>
+
+        <java fork="true" 
+              jvm="${test.jvm.exe}" 
+              jar="${eclipse.launcher.jar}" 
+              dir="${ehwa.test.dir}"
+              resultproperty="ehwa.result">
+            <jvmarg line="${ehwa.mode.switch} ${test.vmargs}" />
+            <arg line="-application org.eclipse.test.uitestapplication"/>
+            <arg line="-dev bin -consolelog"/>
+            <arg line="-data ${ehwa.workspace}"/>
+            <arg line="formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter"/>
+            <arg line="-testPluginName HelloAuto"/>
+            <arg line="-className HelloAuto.CreateAndRunTest"/>
+        </java>
+        <condition property="ehwa.status" value="PASSED" else="FAILED">
+            <equals arg1="${ehwa.result}" arg2="0"/>
+        </condition>
+        <concat append="on" destfile="${ehwa.test.summary}" 
+            >      ${ehwa.mode.name} ${ehwa.status} (Return code is ${ehwa.result})${line.separator}</concat>
+    </target>
+
+    <target name="check-ehwa-result">
+        <loadfile property="ehwa.test.summary.txt" 
+            srcFile="${ehwa.test.summary}"/>
+        <echo message="  ***************************${line.separator}"/>
+        <echo message="  **** Eclipse HWA status ***${line.separator}"/>
+        <echo message="  ***************************${line.separator}"/>
+        <echo message="${line.separator}"/>
+        <echo message="${ehwa.test.summary.txt}"/>
+        <echo message="${line.separator}"/>
+        <condition property="test.failed">
+            <contains string="${ehwa.test.summary.txt}" substring="FAILED" />
+        </condition>
+        <antcall target="touch-failures-file"/>
+        <fail unless="run.all.tests" if="test.failed" message="Eclipse HelloWorld scenario FAILED"/>
+    </target>
+    
+    <target name="touch-failures-file" if="test.failed">
+        <copy file="${ehwa.test.summary}" tofile="${base.test.dir}/ehwa.test.failed">
+            <filterchain>
+                <linecontains>
+                    <contains value="FAILED"/>
+                </linecontains>
+                <trim/>
+            </filterchain>
+        </copy>
+    </target>
+
+    <target name="check-setup">
+        <propertycopy name="eclipse.url" from="eclipse.${hy.platform}.url"/>
+        <basename file="${eclipse.url}" property="eclipse.zip"/>
+
+        <condition property="eclipse.home" value="${env.ECLIPSE_HOME}">
+            <and>
+                <isset property="env.ECLIPSE_HOME"/>
+                <available file="${env.ECLIPSE_HOME}/.eclipseproduct"/>
+          </and>
+        </condition>
+        <condition property="eclipse.home" value="${ehwa.test.dir}/eclipse">
+            <available file="${ehwa.test.dir}/eclipse/.eclipseproduct"/>
+        </condition>
+        <condition property="eclipse.available">
+            <or>
+                <isset property="eclipse.home"/>
+                <available file="${ECLIPSE_ARCHIVE.home}/${eclipse.zip}"/>
+            </or>
+        </condition>
+        <condition property="ehwa.plugin.installed">
+            <and>
+                <isset property="eclipse.home"/>
+                <available file="${eclipse.home}/plugins/HelloAuto_0.0.1"/>
+            </and>
+        </condition>
+    </target>
+
+    <target name="download-eclipse" unless="eclipse.available">
+        <get dest="${ECLIPSE_ARCHIVE.home}/${eclipse.zip}" src="${eclipse.url}"
+            usetimestamp="true" verbose="true"/>
+    </target>
+
+    <target name="install-eclipse" depends="download-eclipse" unless="eclipse.home">
+        <delete quiet="true" dir="${ehwa.test.dir}" />
+        <mkdir dir="${ehwa.test.dir}"/>
+        
+        <if>
+            <isfileselected file="${eclipse.zip}">
+                <filename name="**/*.tar.gz"/>
+            </isfileselected>
+            <then>
+                <gunzip src="${ECLIPSE_ARCHIVE.home}/${eclipse.zip}" dest="${ehwa.test.dir}/eclipse.tar" />
+                <untar src="${ehwa.test.dir}/eclipse.tar" dest="${ehwa.test.dir}" />
+                <delete file="${ehwa.test.dir}/eclipse.tar"/>
+            </then>
+            <elseif>
+                <isfileselected file="${eclipse.zip}">
+                    <filename name="**/*.zip"/>
+                </isfileselected>
+                <then>
+                    <unzip dest="${ehwa.test.dir}" src="${ECLIPSE_ARCHIVE.home}/${eclipse.zip}"/>
+                </then>
+            </elseif>
+            <else>
+                <fail>Unhandled archive type: ${eclipse.zip}</fail>
+            </else>
+        </if>
+        <property name="eclipse.home" value="${ehwa.test.dir}/eclipse"/>
+    </target>
+
+    <target name="install-plugin" unless="ehwa.plugin.installed">
+        <unzip src="${test.home}/ehwa/ehwa.zip" dest="${eclipse.home}"/>
+    </target>
+
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/ehwa-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/jvmti-test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/jvmti-test.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/jvmti-test.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/jvmti-test.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project name="JVMTI TESTS" default="jvmti-test">
+    
+    <import file="test-common.xml"/>
+    <import file="../build-native.xml"/>
+    
+    <property name="jvmti.test.src" location="${test.home}/jvmti" />
+    <property name="jvmti.test.dir" location="${base.test.dir}/jvmti.tests"/>
+    <property name="jvmti.test.summary" location="${base.test.dir}/jvmti.test.failed"/>
+    <property name="jvmti.test.class.path" location="${jvmti.test.dir}/classes"/>
+    <property name="jvmti.test.native.path" location="${jvmti.test.dir}/native"/>
+
+    <dirset id="jvmti.test.src.dirs.set" dir="${jvmti.test.src}">
+        <include name="*" />
+    </dirset>
+
+    <condition property="jvmti.test.src.dirs.list" value="${test.case}">
+        <isset property="test.case"/>
+    </condition>
+    <pathconvert pathsep=","
+                 property="jvmti.test.src.dirs.list" 
+                 refid="jvmti.test.src.dirs.set">
+        <flattenmapper/>
+    </pathconvert>
+
+    <target name="compile-jvmti-tests-java">
+        <compile-java dest="${jvmti.test.class.path}" src="${jvmti.test.src}"/>
+    </target>
+
+    <target name="compile-jvmti-tests-native">
+        <mkdir dir="${jvmti.test.native.path}" />
+
+        <for list="${jvmti.test.src.dirs.list}" param="directory"
+             delimiter=",">
+            <sequential>
+                <var name="outputdir" value="@{directory}" />
+                <echo message="## Compiling JVMTI test : @{directory}" />
+                <mkdir dir="${jvmti.test.native.path}/${outputdir}" />
+                <cc name="${hy.cpp.compiler}"
+                    debug="true"
+                    runtime="dynamic"
+                    multithreaded="true"
+                    link="shared"
+                    outfile="${jvmti.test.native.path}/${outputdir}/${outputdir}">
+                    <includepath path="${test.jdk.home}/include" />
+                    <linkerarg value="-lstdc++" if="is.unix"/>
+                    <compilerarg value="/EHsc" if="is.windows"/>
+                    <fileset dir="${jvmti.test.src}/${outputdir}">
+                        <include name="**/*.cpp" />
+                    </fileset>
+                </cc>
+
+                <embed-manifest lib="${jvmti.test.native.path}/${outputdir}/${outputdir}${shlib.suffix}" />
+            </sequential>
+        </for>
+    </target>
+
+    <target name="pre-jvmti-test" depends="compile-jvmti-tests-java,
+                                           compile-jvmti-tests-native">
+        <prepare-test-run test-dir="${jvmti.test.dir}"/>
+        <delete file="${jvmti.test.summary}" quiet="true"/>
+    </target>
+
+    <target name="run-jvmti-tests">
+        <propertycopy property="mode.name" from="${jvmti.tests.mode}.name" override="on"/>       
+        <propertycopy property="mode.switch" from="${jvmti.tests.mode}.switch" override="on"/>
+        <property name="report.dir" 
+            location="${jvmti.test.dir}/reports/${jvmti.tests.mode}"/>
+        <mkdir dir="${report.dir}" />
+
+        <echo>
+        ==================================
+        Run JVMTI tests using ${mode.name}
+        ==================================
+        </echo>
+
+        <take-xlist name="exclude.file" file="${excludes.dir}/exclude.drlvm_jvmti.${hy.platform}.${jvmti.tests.mode}"/>
+        
+        <for list="${jvmti.test.src.dirs.list}" param="directory">
+            <sequential>
+                <var name="testname" value="@{directory}"/>
+                <echo message="Running ${testname}" />
+                <junit fork="yes"
+                       forkmode="perTest"
+                       failureproperty="${testname}.failed"
+                       haltonfailure="${test.failfast}"
+                       timeout="${test.timeout}"
+                       dir="${jvmti.test.dir}"
+                       jvm="${test.jvm.exe}">
+                    <jvmarg value="-agentpath:${jvmti.test.native.path}/${testname}/${shlib.prefix}${testname}${shlib.suffix}"/>
+                    <jvmarg line="${mode.switch} ${test.vmargs}" />
+                    <formatter type="brief"/>
+                    <formatter type="xml" />
+                    <classpath path="${jvmti.test.class.path}" />
+                    <batchtest todir="${report.dir}">
+                        <fileset dir="${jvmti.test.src}" >
+                            <include name="**/${testname}.java"/>
+                            <excludesfile name="${exclude.file}" if="exclude.file"/>
+                        </fileset>
+                    </batchtest>
+                </junit>
+                <if>
+                    <isset property="${testname}.failed" />
+                    <then>
+                        <echo file="${jvmti.test.summary}" message="${testname} failed on ${mode.name}${line.separator}" append="true"/>
+                    </then>
+                </if>
+
+            </sequential>
+        </for>
+    </target>
+  
+    <target name="jvmti-test" depends="-init-test,-plugin-cpptasks,pre-jvmti-test">
+        <for list="${test.mode}" param="mode" trim="true">
+            <sequential>
+                <if>
+                    <or>
+                        <equals arg1="@{mode}" arg2="int" />
+                        <isset property="is.x86"/>
+                        <isset property="is.x86_64"/>
+                    </or>
+                    <then>
+                        <antcall target="run-jvmti-tests" > 
+                            <param name="jvmti.tests.mode" value="@{mode}" />
+                        </antcall>
+                    </then>
+                </if>
+            </sequential>
+        </for>
+
+        <available property="test.failed" file="${jvmti.test.summary}" />
+        <fail unless="run.all.tests" if="test.failed" message="Some jvmti tests failed"/>
+    </target>
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/jvmti-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/kernel-test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/kernel-test.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/kernel-test.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/kernel-test.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<project name="KERNEL TESTS" default="kernel-test">
+
+    <import file="test-common.xml"/>
+    
+    <property name="kernel.test.javasrc" location="${test.home}/kernel" />
+    <property name="kernel.test.dir" location="${base.test.dir}/kernel.tests"/>
+    <property name="kernel.test.summary" location="${kernel.test.dir}/status.txt"/>
+    <property name="test.resource.path" location="${kernel.test.dir}/resources"/>
+    <property name="test.class.path" location="${kernel.test.dir}/classes"/>
+    
+    <target name="kernel-test" 
+        depends="-init-test,
+        compile-kernel-test, run-kernel-test, report-kernel-test, check-kernel-test"/>
+    
+    <target name="run-kernel-test">
+        <prepare-test-run test-dir="${kernel.test.dir}"/>
+        <delete file="${kernel.test.summary}" quiet="true"/>
+        <delete file="${base.test.dir}/kernel.test.failed" quiet="true"/>
+        
+        <echo>
+        ==================================
+        Tested JVM: ${test.jvm.exe}
+        ==================================
+        </echo>
+        
+        <for list="${test.mode}" param="mode" trim="true">
+            <sequential>
+                <antcall target="-run-kernel-test-batch"> 
+                    <param name="kernel.mode" value="@{mode}" />
+                </antcall>
+            </sequential>
+        </for>
+    </target>
+    
+    <target name="report-kernel-test">
+        <for list="${test.mode}" param="mode"
+            trim="true" keepgoing="true">
+            <sequential>
+                <gen-test-report dir="${kernel.test.dir}/reports/@{mode}.mode"/>
+            </sequential>
+        </for>
+    </target>
+
+    <target name="check-kernel-test">
+        <loadfile property="kernel.test.summary.txt" 
+            srcFile="${kernel.test.summary}"/>
+        <echo message="  ***************************${line.separator}"/>
+        <echo message="  *** Kernel tests status ***${line.separator}"/>
+        <echo message="  ***************************${line.separator}"/>
+        <echo message="${line.separator}"/>
+        <echo message="${kernel.test.summary.txt}"/>
+        <echo message="${line.separator}"/>
+        <echo>Please find detailed results under ${kernel.test.dir}${file.separator}reports directory.</echo>
+        
+        <condition property="test.failed">
+            <contains string="${kernel.test.summary.txt}" substring="FAILED" />
+        </condition>
+        <antcall target="touch-failures-file"/>
+        <fail unless="run.all.tests" if="test.failed" message="There were test failures."/>
+    </target>
+    
+    <target name="touch-failures-file" if="test.failed">
+        <copy file="${kernel.test.summary}" tofile="${base.test.dir}/kernel.test.failed">
+            <filterchain>
+                <linecontains>
+                    <contains value="FAILED"/>
+                </linecontains>
+                <trim/>
+            </filterchain>
+        </copy>
+    </target>
+
+    <target name="compile-kernel-test">
+        <compile-java src="${kernel.test.javasrc}" 
+            dest="${test.class.path}"/>
+        <compile-java src="${kernel.test.javasrc}/../kernel_resources" 
+            dest="${test.resource.path}">
+            <classpath path="${test.class.path}"/>
+        </compile-java>
+        <delete quiet="true" dir="${test.class.path}/notfound" />
+    </target>
+    
+    <target name="-run-kernel-test-batch">
+        <propertycopy property="kernel.mode.name" from="${kernel.mode}.name" override="on"/>       
+        <propertycopy property="kernel.mode.switch" from="${kernel.mode}.switch" override="on"/>        
+        <property name="report.dir"
+            location="${kernel.test.dir}/reports/${kernel.mode}.mode"/>
+        <mkdir dir="${report.dir}" />
+
+        <echo>
+        ==================================
+        Run kernel tests using ${kernel.mode.name} 
+        ==================================
+        </echo>
+        
+        <take-xlist name="exclude.file" file="${excludes.dir}/exclude.drlvm_kernel.${hy.platform}.${kernel.mode}"/>
+
+        <junit fork="yes" failureproperty="kernel.failed"
+            filtertrace="no" printsummary="on" showoutput="off"
+            haltonfailure="${test.failfast}"
+            forkmode="${kernel.test.forkmode}" 
+            timeout="${test.timeout}"
+            dir="${kernel.test.dir}"
+            jvm="${test.jvm.exe}">
+
+            <jvmarg line="-ea -esa" />
+            <jvmarg line="${kernel.mode.switch} ${test.vmargs}" />
+            <jvmarg value="-Dtest.resource.path=${test.resource.path}"/>
+            <jvmarg value="-Xbootclasspath/a:${junit.jar}${path.separator}${test.class.path}" />
+            <formatter type="xml"/>
+            <batchtest todir="${report.dir}" unless="test.case">
+                <fileset dir="${kernel.test.javasrc}"> 
+                    <include name="org/apache/harmony/**/*Test.java" />
+                    <include name="java/lang/**/*Test*.java" />
+                    <excludesfile name="${exclude.file}" if="exclude.file" />
+                </fileset>
+            </batchtest>
+            <test name="${test.case}" todir="${report.dir}" if="test.case" />
+        </junit>
+        
+        <condition property="kernel.status" value="FAILED" else="PASSED">
+            <isset property="kernel.failed" />
+        </condition>
+
+        <concat append="on" destfile="${kernel.test.summary}" 
+            >      ${kernel.mode.name} ${kernel.status}${line.separator}</concat>
+    </target>
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/kernel-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/reg-test-run.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/reg-test-run.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/reg-test-run.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/reg-test-run.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+     
+         http://www.apache.org/licenses/LICENSE-2.0
+     
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License. -->
+
+<project name="REGRESSION TESTS RUN">
+    
+    <property name="reg.test.summary" location="${base.test.dir}/reg.test.failed"/>
+    <import file="test-common.xml"/>
+    
+    <target name="do-regression-testing" depends="launch-tests,make-report,check-results"/>
+
+    <target name="launch-tests">
+        <prepare-test-run test-dir="${reg.test.dir}"/>
+        <delete file="${reg.test.summary}" quiet="true"/>
+        <echo>
+        =====================================
+        Tested JVM: ${test.jvm.exe}
+        =====================================
+        </echo>
+
+        <take-xlist name="exclude.list" file="${reg.test.src}/excludes/exclude.${hy.platform}"/>
+
+        <!-- Choose regression tests to execute.
+             Use 
+                    -Dtest.case=H1234
+             or 
+                    -Dtest.case="H1234,H4321"
+             to specify particular tests to execute -->
+        <property name="test.case" value="H*"/>
+
+        <dirset dir="${reg.test.src}" includes="${test.case}" id="reg.run.set">
+            <excludesfile name="${exclude.list}" if="exclude.list"/>
+        </dirset>
+
+        <pathconvert property="reg.dir.list" setonempty="no" refid="reg.run.set"/>
+        <fail unless="reg.dir.list" message="No test found: ${test.case}"/>
+
+        <for param="reg.test.2launch">
+            <!-- Go through directories containing regression tests -->
+            <dirset refid="reg.run.set"/>
+            <sequential>
+                <!-- Set up the property pointing to the natives path -->
+                <var name="reg.test.2launch.native.path" unset="true"/>
+                <pathconvert property="reg.test.2launch.native.path">
+                    <path path="@{reg.test.2launch}"/>
+                    <map from="${reg.test.src}" to="${reg.test.native.path}"/>
+                </pathconvert>
+                <if>
+                    <available file="@{reg.test.2launch}/run.test.xml"/>
+                    <then>
+                        <!-- Launch the tests with a custom launchers 
+                                                placed near the tests -->
+                        <ant antfile="@{reg.test.2launch}/run.test.xml" target="run-test"/>
+                    </then>
+                    <else>
+                        <!-- Run standard JUnit tests -->
+                        <condition property="@{reg.test.2launch}.extra.arg" else=""
+                            value="-Djava.library.path=${reg.test.2launch.native.path}">
+                            <available file="${reg.test.2launch.native.path}"/>
+                        </condition>
+                        <for param="reg.unit.test.src">
+                            <!-- Go through unit tests in the directory -->
+                            <fileset dir="@{reg.test.2launch}">
+                                <include name="*Test.java"/>
+                                <include name="*Test.j"/>
+                            </fileset>
+                            <sequential>
+                                <propertyregex override="yes"
+                                  property="unit.test.class" 
+                                  input="@{reg.unit.test.src}"
+                                  regexp=".*H(\d\d*)[/\\](..*)\.j.*" 
+                                  replace="${reg.test.package}.h\1.\2"/>
+                                <run-junit-test test="${unit.test.class}"
+                                    vmarg="${@{reg.test.2launch}.extra.arg}"/>
+                            </sequential>
+                        </for>
+                    </else>
+                </if>
+            </sequential>
+        </for>
+
+    </target>
+
+    <target name="make-report">
+        <gen-test-report dir="${reg.test.dir}/reports"/>
+        <echo message="========================================"/>
+        <echo message="Regression testing report was stored in:"/>
+        <echo message="========================================"/>
+        <echo message="${reg.test.dir}/reports/html"/>
+        <echo message="========================================"/>
+    </target>
+    
+    <target name="check-results">
+        <available property="test.failed" file="${reg.test.summary}" />
+        <fail unless="run.all.tests" if="test.failed" message="There were test failures"/>
+    </target>
+
+    <!-- Macrodefinition launching JUnit test -->
+    <macrodef name="run-junit-test">
+        <attribute name="test"/>
+        <attribute name="vmarg" default=""/>
+        <element name="junit-element" optional="true"/>
+        <sequential>
+            <junit jvm="${test.jvm.exe}"
+                   fork="yes"
+                   printsummary="withOutAndErr"
+                   dir="${reg.test.dir}"
+                   failureproperty="reg.test.errors"
+                   timeout="${reg.test.timeout}">
+                <jvmarg line="@{vmarg} ${test.vmargs}"/>
+                <test name="@{test}" todir="${reg.test.dir}/reports"/>
+                <classpath>
+                    <pathelement path="${reg.test.class.path}"/>
+                </classpath>
+                <junit-element/>
+                <formatter type="brief"/>
+                <formatter type="xml"/>
+            </junit>
+            
+            <if>
+                <istrue value="${reg.test.errors}"/>
+                <then>
+                    <echo message="*** FAILED **** : @{test}${line.separator}" file="${reg.test.summary}" append="true"/>
+                </then>
+            </if>
+            <fail message="@{test} failed">
+                <condition>
+                    <and>
+                        <istrue value="${reg.test.errors}"/>
+                        <istrue value="${test.failfast}"/>
+                    </and>
+                </condition>
+            </fail>
+        </sequential>
+    </macrodef>
+
+    <!-- Macrodefinition launching JVMTI JUnit test -->
+    <macrodef name="run-jvmti-test">
+        <attribute name="test"/>
+        <attribute name="vmarg" default=""/>
+        <attribute name="agent"/>
+        <element name="jvmti-junit-element" optional="true"/>
+        <sequential>
+            <run-junit-test test="@{test}" vmarg="@{vmarg}">
+                <junit-element>
+                    <jvmti-junit-element/>
+                    <jvmarg
+                        value="-agentpath:${reg.test.2launch.native.path}/${shlib.prefix}@{agent}${shlib.suffix}"
+                        />
+                </junit-element>
+            </run-junit-test>
+        </sequential>
+    </macrodef>
+
+    <!-- Macrodefinition launching Plain Java test -->
+    <macrodef name="run-pjava-test">
+        <attribute name="test"/>
+        <attribute name="classpath" default=""/>
+        <attribute name="expected-code" default="0"/>
+        <attribute name="vmarg" default=""/>
+        <attribute name="args" default=""/>
+        <element name="java-element" optional="true"/>
+        <sequential>
+            <echo message="Running @{test}"/>
+            <java jvm="${test.jvm.exe}"
+                  classname="@{test}"
+                  resultproperty="@{test}.res.code"
+                  output="${reg.test.dir}/reports/@{test}.txt"
+                  dir="${reg.test.dir}"
+                  fork="yes"
+                  timeout="${reg.test.timeout}">
+                <java-element/>
+                <jvmarg line="@{vmarg} ${test.vmargs}" />
+                <arg line="@{args}" />
+                <classpath>
+                    <pathelement path="${reg.test.class.path}"/>
+                    <pathelement path="@{classpath}"/>
+                </classpath>
+            </java>
+            
+            <!-- prepare JUnit-style report -->
+            <condition property="@{test}.is.passed" value="true" else="false">
+                <equals arg1="${@{test}.res.code}" arg2="@{expected-code}"/>
+            </condition>
+            <escape-cdata file="${reg.test.dir}/reports/@{test}.txt" property="@{test}.msg"/>
+            <to-junit-xml xml="${reg.test.dir}/reports/TEST-@{test}.xml"
+                suite="@{test}" 
+                status="${@{test}.is.passed}"
+                out="${@{test}.msg}"
+                msg="Exit code: ${@{test}.res.code}"
+                detail="Exit code: ${@{test}.res.code} Err: ${@{test}.msg}"/>
+
+            <!-- handle test result -->
+            <if>
+                <isfalse value="${@{test}.is.passed}"/>
+                <then>
+                    <echo message="*** FAILED **** : @{test} (${@{test}.res.code} exit code)"/>
+                    <echo message="*** FAILED **** : @{test} (${@{test}.res.code} exit code)${line.separator}" file="${reg.test.summary}" append="true"/>
+                    <fail message="@{test} failed">
+                        <condition>
+                            <istrue value="${test.failfast}"/>
+                        </condition>
+                    </fail>
+                </then>
+                <else>
+                    <echo message="PASSED : @{test}"/>
+                </else>
+            </if>
+        </sequential>
+    </macrodef>
+
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/reg-test-run.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/reg-test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/reg-test.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/reg-test.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/reg-test.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+     
+         http://www.apache.org/licenses/LICENSE-2.0
+     
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License. -->
+<project name="REGRESSION TESTS" default="reg-test">
+    
+    <import file="reg-test-run.xml"/>
+    <import file="../build-native.xml"/>
+    
+    <property name="reg.test.src" location="${drlvm.base.dir}/src/test/regression"/>
+    <property name="reg.test.dir" location="${base.test.dir}/reg.tests"/>
+    <property name="reg.test.class.path" location="${reg.test.dir}/classes"/>
+    <property name="reg.test.native.path" location="${reg.test.dir}/native"/>
+    <property name="reg.test.package" value="org.apache.harmony.drlvm.tests.regression"/>
+    <property name="reg.test.unpackage" value="org/apache/harmony/drlvm/tests/regression"/>
+
+    <target name="compile-reg-tests-prepare">
+        <mkdir dir="${reg.test.class.path}" />
+        <mkdir dir="${reg.test.native.path}" />
+
+        <dirset id="reg.test.src.dirs.set"
+                dir="${reg.test.src}"
+                includes="*"/>
+
+        <pathconvert pathsep=","
+                     property="reg.test.src.dirs.list"
+                     refid="reg.test.src.dirs.set" />
+
+        <fileset id="reg.test.src.native.set" dir="${reg.test.src}">
+            <include name="**/*.c"/>
+            <include name="**/*.cpp"/>
+        </fileset>
+    </target>
+
+    <target name="compile-reg-tests-j"
+            depends="compile-reg-tests-prepare">
+        <fileset id="reg.test.src.jasmin.set" 
+                 dir="${reg.test.src}"
+                 includes="**/*.j">
+            <depend targetdir="${reg.test.class.path}">
+                <mapper>
+                    <chainedmapper>
+                        <filtermapper>
+                            <replacestring from="\" to="/"/>
+                        </filtermapper>
+                        <regexpmapper from="^(?:.*/)?H(\d\d*)/([^/].*).j$$" 
+                                      to="h\1/\2.class"/>
+                        <globmapper from="*" to="${reg.test.unpackage}/*"/>
+                    </chainedmapper>
+                </mapper>
+            </depend>
+        </fileset>
+        
+        <pathconvert pathsep=" "
+                     property="reg.test.src.jasmin.list"
+                     refid="reg.test.src.jasmin.set"/>
+        <ensure-resource name="jasmin.jar"/>
+        <java jar="${jasmin.jar}" fork="true" outputproperty="jasmin-reg-out" errorproperty="jasmin-reg-err">
+            <arg line="-d ${reg.test.class.path}"/>
+            <arg line="${reg.test.src.jasmin.list}"/>
+        </java>
+        <echo level="error" message="${jasmin-reg-err}"/>
+        <echo level="verbose" message="${jasmin-reg-out}"/>
+    </target>
+
+    <target name="compile-reg-tests-java"
+            depends="compile-reg-tests-prepare, compile-reg-tests-j">
+        <basename file="${vmmagic}" property="vmmagic.basename"/>
+        <property name="vmmagic.dep" location="${test.jre.home}/lib/boot/${vmmagic.basename}"/>
+        <ensure-resource name="vmmagic.dep"/>
+        <compile-java src="${reg.test.src}" dest="${reg.test.class.path}">
+            <depend targetdir="${reg.test.class.path}">
+                <mapper>
+                    <chainedmapper>
+                        <filtermapper>
+                            <replacestring from="\" to="/"/>
+                        </filtermapper>
+                        <regexpmapper 
+                            from="^(?:.*/)?H(\d\d*)/([^/].*).java$$"
+                            to="h\1/\2.class"/>
+                        <globmapper from="*" to="${reg.test.unpackage}/*"/>
+                    </chainedmapper>
+                </mapper>
+            </depend>
+            <classpath>
+                <pathelement path="${java.class.path}/"/>
+                <fileset file="${vmmagic.dep}" />
+            </classpath>
+        </compile-java>
+        
+        <pathconvert property="bad.reg.pkg.names" setonempty="no" pathsep="  ">
+            <path>
+                <dirset dir="${reg.test.class.path}/${reg.test.unpackage}">
+                    <exclude name="h*"/>
+                    <include name="H*"/>
+                </dirset>
+            </path>
+            <flattenmapper/>
+        </pathconvert>
+        <fail if="bad.reg.pkg.names"> 
+        Some of package names in these tests violate conventions:
+        ${bad.reg.pkg.names}
+        Please check README.txt located in ${reg.test.src}
+        </fail>
+    </target>
+
+    <target name="compile-reg-tests-native" depends="-plugin-cpptasks,compile-reg-tests-prepare">
+
+        <for param="nativefile">
+            <path>
+                <fileset dir="${reg.test.src}" includes="**/*.c,**/*.cpp">
+                    <depend targetdir="${reg.test.native.path}">
+                        <mapper>
+                        <chainedmapper>
+                            <filtermapper>
+                                <replacestring from="\" to="/"/>
+                            </filtermapper>
+                            <regexpmapper from="(H\d\d*)/([^/]+)\.c.?.?$$" 
+                                          to="\1/${shlib.prefix}\2${shlib.suffix}"/>
+                        </chainedmapper>
+                        </mapper>
+                    </depend>
+                </fileset>
+            </path>
+            <sequential>
+                <var name="outfile" unset="true"/>
+                <pathconvert property="outfile">
+                    <path path="@{nativefile}"/>
+                    <chainedmapper>
+                        <filtermapper>
+                            <replacestring from="\" to="/"/>
+                        </filtermapper>
+                        <regexpmapper from="/(H\d\d*)/([^/]+)\.c.?.?$$" to="\1/\2"/>
+                    </chainedmapper>
+                </pathconvert>
+                <var name="outdir" unset="true"/>
+                <dirname property="outdir" file="${reg.test.native.path}/${outfile}"/>
+                <!-- mkdir dir="${outdir}"/ -->
+                <var name="objdir" unset="true"/>
+                <property name="objdir" value="${outdir}/obj"/>
+                <mkdir dir="${objdir}"/>
+
+                <!--echo message="## Compiling reg native ${outname}" /-->
+                <cc name="${hy.cpp.compiler}"
+                    debug="true"
+                    runtime="dynamic"
+                    multithreaded="true"
+                    link="shared"
+                    outfile="${reg.test.native.path}/${outfile}"
+                    objdir="${objdir}">
+                    <includepath path="${test.jdk.home}/include" />
+                    <compilerarg value="/EHsc" if="is.windows"/>
+                    <!--linkerarg value="-lstdc++" if="is.linux"/-->
+                    <fileset file="@{nativefile}"/>
+                </cc>
+                <embed-manifest lib="${reg.test.native.path}/${outfile}${shlib.suffix}" />
+            </sequential>
+        </for>
+    </target>
+
+    <target name="reg-test" depends="-plugin-ant-contrib,compile-reg-tests-java, 
+        compile-reg-tests-native, do-regression-testing" />
+    
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/reg-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/smoke-test.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/smoke-test.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/smoke-test.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/smoke-test.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project name="SMOKE TESTS" default="smoke-test">
+
+    <import file="test-common.xml"/>
+    <import file="../build-native.xml"/>
+
+    <property name="smoke.test.src" location="${test.home}/smoke" />
+    <property name="smoke.test.dir" location="${base.test.dir}/smoke.tests"/>
+    <property name="smoke.test.summary" location="${base.test.dir}/smoke.test.failed"/>
+    <property name="smoke.test.class.path" location="${smoke.test.dir}/classes" />
+    <property name="smoke.test.native.path" location="${smoke.test.dir}/natives" />
+
+    <patternset id="smoke.test.pattern">
+        <include name="**/*.class"/>
+        <exclude name="**/*$*.class"/>
+    </patternset>
+
+    <fileset id="smoke.test.native.refid"
+            dir="${smoke.test.src}">
+        <include name="**/*.c"/>
+    </fileset>
+    <pathconvert property="smoke.test.native.list"
+                 refid="smoke.test.native.refid" pathsep="," />
+
+    <target name="smoke-test" depends="-init-test,
+        clean, compile-smoke-test, java_test_smoke, build_report">
+        <available property="test.failed" file="${smoke.test.summary}" />
+        <fail unless="run.all.tests" if="test.failed"/>
+    </target>
+
+    <target name="clean">
+        <delete quiet="true" file="${smoke.test.summary}"/>
+        <delete quiet="true" dir="${smoke.test.dir}/reports" />
+    </target>
+
+    <target name="compile-smoke-test" depends="compile-smoke-test-native">
+        <compile-java src="${smoke.test.src}" dest="${smoke.test.class.path}" />
+    </target>
+
+
+    <target name="compile-smoke-test-native" depends="-plugin-cpptasks">
+        <mkdir dir="${smoke.test.native.path}" />
+
+        <for list="${smoke.test.native.list}" param="full.file.path" delimiter=",">
+            <sequential>
+                <var name="outputdir" unset="true" />
+                <var name="tmp.outputdir" unset="true" />
+                <var name="outputfile" unset="true" />
+
+                <basename property="outputfile" file="@{full.file.path}" suffix=".c"/>
+                <dirname property="tmp.outputdir" file="@{full.file.path}" />
+                <basename property="outputdir" file="${tmp.outputdir}" />
+
+                <mkdir dir="${smoke.test.native.path}/${outputdir}" />
+
+                <echo message="Compiling ${smoke.test.native.path}/${outputdir}/${outputfile}" />
+                <cc name="${hy.cpp.compiler}"
+                    debug="true"
+                    runtime="dynamic"
+                    multithreaded="true"
+                    link="shared"
+                    outfile="${smoke.test.native.path}/${outputdir}/${outputfile}">
+                    <includepath path="${test.jdk.home}/include" />
+                    <!--linkerarg value="-lstdc++" if="is.linux"/-->
+                    <fileset file="@{full.file.path}" />                    
+                </cc>
+
+                <embed-manifest lib="${smoke.test.native.path}/${outputdir}/${outputfile}${shlib.suffix}" />
+            </sequential>
+        </for>
+    </target>
+
+    <target name="java_test_smoke">
+        <mkdir dir="${smoke.test.dir}/reports" />
+        <path id="java.class.path">
+            <pathelement location="${smoke.test.class.path}" />
+        </path>
+        <echo>
+        ==================================
+        Tested JVM: ${test.jvm.exe}
+        ==================================
+        </echo>
+        <for list="${test.mode}" param="mode" trim="true">
+            <sequential>
+                <antcall target="java_test_smoke_with_jit_or_interpreter"> 
+                    <param name="mode.id" value="@{mode}" />
+                </antcall>
+            </sequential>
+        </for>
+    </target>
+
+    <target name="build_report">
+        <gen-test-report dir="${smoke.test.dir}/reports"/>
+        <echo message="The test report is in ${smoke.test.dir}/reports"/>
+    </target>
+
+    <target name="java_test_smoke_with_jit_or_interpreter">
+        <propertycopy property="mode.name" from="${mode.id}.name" override="on"/>       
+        <propertycopy property="mode.switch" from="${mode.id}.switch" override="on"/>
+
+        <property name="classes.location" location="${smoke.test.src}" />
+        <pathconvert property="java.path.property" refid="java.class.path" />
+        <condition property="int.or.jit.exclude" value="X_int,X_interpreter">
+            <contains string="${mode.id}" substring="int" />
+        </condition>
+        <property name="int.or.jit.exclude" value="X_jit,X_jitrino" />
+        <property name="EXCLUDE_KEYWORDS" value="XXX,X_${build.os},X_${build.arch},X_drl,${int.or.jit.exclude},slow,perf,stress" />
+        
+        <echo>
+        ==================================
+        Smoke tests on ${mode.name}
+        ==================================
+        </echo>
+        
+        <take-xlist name="exclude.file" file="${excludes.dir}/exclude.drlvm_smoke.${hy.platform}.${mode.id}"/>
+
+        <convert-test from="test.case" to="test.file"/>
+        
+        <fileset dir="${smoke.test.src}" id="smoke.run.set">
+            <include name="**/*.java" unless="test.case"/>
+            <include name="${test.file}" if="test.case"/>
+            <excludesfile name="${exclude.file}" if="exclude.file" />
+        </fileset>
+        <pathconvert property="smoke.run.list" setonempty="no" refid="smoke.run.set"/>
+        <fail unless="smoke.run.list" message="No test found: ${test.case}"/>
+
+        <for param="test">
+            <fileset refid="smoke.run.set"/>
+            <sequential>
+                <!-- unset res.code variable to use it for next run-->
+                <var name="res.code" unset="true"/>
+                <var name="outdir" unset="true" />
+                <var name="tmp.outdir" unset="true" />
+
+                <basename property="filename.@{test}" file="@{test}" />
+                <propertycopy name="fname" override="true" from="filename.@{test}" />
+                <propertyregex property="classes.location1" override="true" input="${classes.location}" regexp="\\" replace="/" global="true" defaultValue="${classes.location}" />
+                <propertyregex property="test1" override="true" input="@{test}" regexp="\\" replace="/" global="true" defaultValue="@{test}" />
+                <propertyregex property="class.name.sep" override="true" input="${test1}" regexp="${classes.location1}/(.*).java" replace="\1" />
+                <propertyregex property="class.name" override="true" input="${class.name.sep}" regexp="/" replace="\." global="true" defaultValue="${class.name.sep}" />
+                <loadfile property="@{test}.src.file" srcFile="@{test}" />
+                <propertycopy name="src.file" override="true" from="@{test}.src.file" />
+                <propertyregex property="@{test}.keywords" input="${src.file}" regexp="(?m)@keyword(.*)" select="\1" defaultValue="" />
+                <propertycopy name="file.keywords" override="true" from="@{test}.keywords" />
+                <dirname property="tmp.outdir" file="@{test}" />
+                <basename property="outdir" file="${tmp.outdir}" />
+
+                <for param="keyword" list="${EXCLUDE_KEYWORDS}" delimiter=",">
+                    <sequential>
+                        <condition property="@{test}.is.excluded" value="@{keyword}">
+                            <contains string="${file.keywords}" substring="@{keyword}" />
+                        </condition>
+                    </sequential>
+                </for>
+                <if>
+                    <or>
+                        <isset property="test.case"/>
+                        <not><isset property="@{test}.is.excluded" /></not>
+                    </or>
+                    <then>
+                        <echo message="Running test : ${class.name}" />
+                        <var name="test.report" value="${smoke.test.dir}/reports/${class.name}_${mode.id}"/>
+
+                        <java newenvironment="yes"
+                            dir="${smoke.test.dir}"
+                            classname="${class.name}"
+                            fork="true"
+                            jvm="${test.jvm.exe}"
+                            output="${test.report}.out"
+                            error="${test.report}.out.err"
+                            resultproperty="res.code"
+                            timeout="${test.timeout}" >
+                            <jvmarg line="${mode.switch} ${test.vmargs}" />
+                            <jvmarg value="-Djava.library.path=${smoke.test.native.path}/${outdir}" />
+                            <jvmarg value="-classpath" />
+                            <jvmarg value="${smoke.test.class.path}" />
+                            <env key="JAVA_HOME" value="${test.jre.home}" />
+                            <env key="LD_LIBRARY_PATH" value="${test.jre.home}/bin:${env.LD_LIBRARY_PATH}" />
+                        </java>
+
+                        <loadfile property="@{test}.out" srcFile="${test.report}.out">
+                            <filterchain>
+                                <tokenfilter>
+                                    <!-- Should escape CDATA end marker -->
+                                    <replaceregex pattern="]]>" replace="]]&amp;gt;" flags="gi"/>
+                                </tokenfilter>
+                            </filterchain>
+                        </loadfile>
+                        <loadfile property="@{test}.err" srcFile="${test.report}.out.err">
+                            <filterchain>
+                                <tokenfilter>
+                                    <!-- Should escape CDATA end marker -->
+                                    <replaceregex pattern="]]>" replace="]]&amp;gt;" flags="gi"/>
+                                </tokenfilter>
+                            </filterchain>
+                        </loadfile>
+
+                        <!-- loadfile does not define the property if file is empty -->
+                        <property name="@{test}.out" value=""/>
+                        <property name="@{test}.err" value=""/>
+
+                        <!-- whether DRLVM's output contains PASS and doesn't FAIL -->
+                        <condition property="@{test}.is.passed" value="true" else="false">
+                            <and>
+                                <contains string="${@{test}.out}" substring="PASS" casesensitive="false" />
+                                <not>
+                                    <contains string="${@{test}.out}" substring="FAIL" casesensitive="false" />
+                                </not>
+
+                                <!-- the return code must be checked -->
+                                <or>
+                                    <!-- it must be '0' in general -->
+                                    <equals arg1="${res.code}" arg2="0" />
+
+                                    <!-- some tests passes w/ non-'0' code -->
+                                    <and>
+                                        <equals arg1="${class.name}" arg2="init.ErrorInInitializer" />
+                                        <equals arg1="${res.code}" arg2="1" />
+                                    </and>
+                                    <and>
+                                        <equals arg1="${class.name}" arg2="shutdown.TestFatalError" />
+                                        <equals arg1="${res.code}" arg2="1" />
+                                    </and>
+                                    <and>
+                                        <equals arg1="${class.name}" arg2="shutdown.TestInterrupt" />
+                                        <equals arg1="${res.code}" arg2="130" />
+                                    </and>
+                                </or>
+                            </and>
+                        </condition>
+
+                        <escape-cdata file="${test.report}.out.err" property="@{test}.msg"/>
+                        <to-junit-xml xml="${smoke.test.dir}/reports/TEST-${class.name}_${mode.id}.xml"
+                            suite="${class.name}_${mode.id}" test="${mode.name}" 
+                            status="${@{test}.is.passed}"
+                            out="${@{test}.out}" err="${@{test}.err}" 
+                            msg="Exit code: ${res.code}"
+                            detail="Exit code: ${res.code} Err: ${@{test}.msg}"/>
+
+                        <if>
+                            <istrue value="${@{test}.is.passed}" />
+                            <then>
+                                <echo message=" PASSED : ${class.name}" />
+                            </then>
+                            <else>
+                                <echo message="*** FAILED **** : ${class.name} (${res.code} res code)" />
+                                <echo message="*** FAILED **** : ${class.name} on ${mode.name}${line.separator}" file="${smoke.test.summary}" append="true"/>
+                            </else>
+                        </if>
+                        
+                    </then>
+                    <else>
+                        <propertycopy override="true" property="exclude.reason" from="@{test}.is.excluded" />
+                        <echo message="test ${class.name} is skipped due to ${exclude.reason}" />
+                    </else>
+                </if>
+            </sequential>
+        </for>
+        <echo message="Please find test classes and results at ${smoke.test.dir}/reports" />
+    </target>
+    
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/smoke-test.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/tests/test-common.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/tests/test-common.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/tests/test-common.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/tests/test-common.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+     Licensed to the Apache Software Foundation (ASF) under one or more
+     contributor license agreements.  See the NOTICE file distributed with
+     this work for additional information regarding copyright ownership.
+     The ASF licenses this file to You under the Apache License, Version 2.0
+     (the "License"); you may not use this file except in compliance with
+     the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<project name="test-common">
+    
+    <dirname property="tc.imported.basedir" file="${ant.file.test-common}"/>
+    <import file="${tc.imported.basedir}/../build-java.xml"/>
+
+    <property name="test.hdk.home" location="${drlvm.deploy.dir}"/>
+    <property name="hdk.lib.dir" location="${test.hdk.home}/lib"/>
+    <property name="hdk.include.dir" location="${test.hdk.home}/include"/>
+    <property name="test.jdk.home" location="${test.hdk.home}/jdk"/>
+    <property name="test.jre.home" location="${test.jdk.home}/jre"/>
+    <property name="test.jvm.exe" location="${test.jre.home}/bin/java"/>
+    <property name="base.test.dir" location="${drlvm.build.dir}/tests"/>
+    <property file="${tc.imported.basedir}/../test.properties"/>
+    
+    <property name="test.home" location="${vm.home}/tests"/>
+    <property name="excludes.dir" location="${drlvm.base.dir}/build/make/excludes"/>
+    
+    <target name="check-depends">
+        <check-one-file dest="${ant-contrib.jar}" src="${ant-contrib.url}"/>
+        <check-one-file dest="${jasmin.jar}" src="${jasmin.url}"/>
+        <check-one-file dest="${junit.jar}" src="${junit.jar.url}"/>
+    </target>
+        
+    <target name="fetch-depends">
+        <fetch dep="junit.jar"/>
+        <fetch dep="jasmin"/>
+        <fetch dep="ant-contrib"/>
+    </target>
+    
+    <target name="-init-test" depends="-plugin-ant-contrib">
+        <if>
+            <isset property="is.ia64"/>
+            <then>
+                <!-- only default and interpreter modes currently supported on IA64 -->
+                <propertyregex property="test.mode" input="${test.mode}" regexp="(jet|opt|srv)" replace="" override="on" />
+            </then>
+        </if>
+    </target>
+        
+    <macrodef name="ensure-resource">
+        <attribute name="name"/>
+        <sequential>
+	        <fail>
+	        <condition>
+                <not><and>
+                    <isset property="@{name}"/>
+	                <available file="${@{name}}"/>
+	            </and></not>
+	        </condition>
+	        
+            ==============================================
+            The @{name} is not found at ${@{name}}
+            Please specify the location as follows:
+            build.bat -D@{name}=path test
+            ==============================================
+	        </fail>
+        </sequential>        
+    </macrodef>
+    
+    <macrodef name="prepare-test-run">
+        <attribute name="test-dir"/>
+        <sequential>
+	        <delete quiet="true" dir="@{test-dir}/reports" />
+	        <mkdir dir="@{test-dir}/reports" />
+        </sequential>        
+    </macrodef>
+    
+    <macrodef name="take-xlist">
+        <attribute name="file" description="expected X-list location" />
+        <attribute name="name" description="property to set for the X-list location" />
+        <sequential>
+            <if>
+                <and>
+                	<available file="@{file}"/>
+                	<not><isset property="test.case"/></not>
+                </and>
+                <then>
+                    <property name="@{name}" location="@{file}"/>
+                    <loadfile property="@{file}.content" srcFile="@{file}"/>
+                    <property name="@{file}.content" value="&lt;empty>"/>
+                    <echo>
+    Using exclude file = ${@{name}} :
+            
+${@{file}.content}
+                    </echo>
+                </then>
+            </if>
+        </sequential>
+    </macrodef>
+    
+    <macrodef name="gen-test-report">
+        <attribute name="dir" />
+        <attribute name="include" default="*.xml"/>
+        <sequential>
+            <if>
+                <not><isset property="skip.report"/></not>
+                <then>
+                    <fileset dir="@{dir}" id="@{dir}.full">
+                        <include name="@{include}" />
+                        <exclude name="TESTS-TestSuites.xml"/>
+                    </fileset>
+                    <fileset dir="@{dir}" id="@{dir}.short">
+                        <include name="@{include}" />
+                        <containsregexp expression='(errors|failures)=.[1-9]' />
+                        <exclude name="TESTS-TestSuites.xml"/>
+                    </fileset>
+                    <condition property="@{dir}.id" value="@{dir}.short" else="@{dir}.full">
+                        <isset property="short.report"/>
+                    </condition>
+                    
+                    <junitreport todir="@{dir}">
+                        <fileset refid="${@{dir}.id}"/>
+                        <report format="frames" todir="@{dir}/html" />
+                    </junitreport>
+                </then>
+            </if>
+        </sequential>
+    </macrodef>
+    
+    <!-- Loads content of a file and escapes XML-specific symbols for attribute value -->
+    <macrodef name="escape-cdata">
+        <attribute name="file"/>
+        <attribute name="property"/>
+        <sequential>
+            <loadfile property="@{property}" srcFile="@{file}" >
+                <filterchain>
+                    <escapeunicode/>
+                    <tokenfilter>
+                        <replaceregex pattern="&amp;" replace="&amp;#38;" flags="gi"/>
+                        <replaceregex pattern="&lt;" replace="&amp;#60;" flags="gi"/>
+                        <replaceregex pattern=">" replace="&amp;#62;" flags="gi"/>
+                        <replaceregex pattern="&quot;" replace="&amp;#34;" flags="gi"/>
+                        <replaceregex pattern="'" replace="&amp;#39;" flags="gi"/>
+                    </tokenfilter>
+                </filterchain>
+            </loadfile>
+            <!-- loadfile does not define the property if file is empty -->
+            <property name="@{property}" value=""/>
+        </sequential>
+    </macrodef>
+
+    <macrodef name="to-junit-xml">
+        <attribute name="xml" description="name of xml file"/>
+        <attribute name="suite" description="classname of suite"/>
+        <attribute name="test" default="test" description="testcase name"/>
+        <attribute name="status" description="Boolean value"/>
+        <attribute name="out" default="" description="test output"/>
+        <attribute name="err" default="" description="test error"/>
+        <attribute name="time" default="0.01" description="test execution time"/>
+        <attribute name="msg" default="FAILED" description="error message"/>
+        <attribute name="detail" default="" description="error details or backtrace"/>
+        <sequential>
+            <echo file="@{xml}"><![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
+            <testsuite errors="0" failures="@F@" name="@SUITE@" tests="1" time="@TIME@">
+                <testcase classname="@SUITE@" name="@NAME@" time="@TIME@">@MSG@</testcase>
+                <system-out><![CDATA[@out]!]></system-out>
+                <system-err><![CDATA[@err]!]></system-err>
+            </testsuite>]]> 
+            </echo>
+            <condition property="@{xml}.failed" value="0" else="1">
+                <istrue value="@{status}"/>
+            </condition>
+            <condition property="@{xml}.message" value="" else="&lt;failure message='@{msg}'>@{detail}&lt;/failure>">
+                <istrue value="@{status}"/>
+            </condition>
+            <condition property="@{xml}.out" value="]" else="@{out}]">
+                <length string="@{out}" trim="true" length="0"/>
+            </condition>
+            <condition property="@{xml}.err" value="]" else="@{err}]">
+                <length string="@{err}" trim="true" length="0"/>
+            </condition>
+
+            <replace file="@{xml}" token="@SUITE@" value="@{suite}" />
+            <replace file="@{xml}" token="@NAME@" value="@{test}" />
+            <replace file="@{xml}" token="@TIME@" value="@{time}" />            
+            <replace file="@{xml}" token="@F@" value="${@{xml}.failed}" />
+            <replace file="@{xml}" token="@MSG@" value="${@{xml}.message}" />
+            <replace file="@{xml}" token="@out]!" value="${@{xml}.out}" />
+            <replace file="@{xml}" token="@err]!" value="${@{xml}.err}" />
+        </sequential>
+    </macrodef>
+    
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/tests/test-common.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/vm/common-vm.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/vm/common-vm.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/vm/common-vm.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/vm/common-vm.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project name="common-vm">
+    
+    <import file="../build-native.xml"/>
+    
+    <target name="-common-vm" description="common descriptors for all VM components" 
+        depends="setup-native-build,init-compression-mode">
+        
+        <path id="vm.include">
+            <pathelement location="${vm.home}/port/include" />
+            <pathelement location="${vm.home}/include" />
+        </path>
+
+        <compiler id="common.compiler">
+            <!--common for cpp and c-->
+            
+            <defineset define="${refs.comp.mode}" if="refs.comp.mode"/>
+
+            <defineset define="NDEBUG" unless="is.cfg.debug"/>
+            <defineset define="_DEBUG" if="is.cfg.debug" />
+            <defineset define="VM_STATS" if="is.cfg.debug"/>
+
+            <defineset define="_IA32_" if="is.x86"/>
+
+            <defineset define="_IPF_" if="is.ia64"/>
+            <defineset define="HYIA64" if="is.ia64"/>
+
+            <defineset define="_EM64T_" if="is.x86_64"/>
+            <defineset define="HYX86_64" if="is.x86_64"/>
+            
+            <defineset define="POINTER64" if="is.64bit"/>
+
+            <defineset if="is.ppc32"> 
+                <define name="_PPC32_"/>
+                <define name="_PPC_"/>
+                <define name="HYPPC32"/>
+            </defineset>
+
+            <defineset if="is.windows">
+                <define name="PLATFORM_NT" />
+                <define name="WIN32" />
+                <define name="_WINDOWS" />
+                <define name="_WIN32_WINNT" value="0x0501" />
+            </defineset>
+            
+            <compilerarg value="/Zi" if="is.windows"/>
+            <compilerarg value="/W3" if="is.windows"/>
+            <compilerarg value="/WX" if="is.windows" unless="is.x86_64"/>
+            <!-- C4996: 'function': was declared deprecated -->
+            <compilerarg value="/wd4996" if="is.windows" unless="is.x86"/>
+
+
+            <defineset define="MACOSX" if="is.macosx"/>
+            <defineset define="FREEBSD" if="is.freebsd"/>
+            <defineset define="LINUX" if="is.linux"/>
+
+            <defineset if="is.unix">
+                <define name="PLATFORM_POSIX"/>
+                <define name="__SMP__" />
+                <define name="_REENTRANT" />
+                <define name="LINUX_TLS_OPT" />
+                <define name="_LARGEFILE64_SOURCE" if="is.x86"/>
+            </defineset>
+
+            <compilerarg value="-ftls-model=initial-exec" if="is.unix.x86_64"/> 
+            <compilerarg value="-fno-exceptions" if="is.unix"/>
+            <compilerarg value="-fPIC" if="is.unix" unless="is.x86"/>
+
+            <compilerarg value="-w1" if="is.icc"/>
+            <!--compilerarg value="-Werror" /-->
+
+            <compilerarg value="-O2" if="is.unix" unless="is.cfg.debug"/>
+
+            <compilerarg value="-O0" if="is.unix" unless="is.cfg.release"/>
+            <compilerarg value="-g" if="is.unix"/>
+            <compilerarg value="-ggdb3" if="is.unix" unless="is.cfg.release"/>
+
+            <compilerarg value="/O2" if="is.msvc" unless="is.cfg.debug"/>
+            <compilerarg value="/Od" if="is.windows" unless="is.cfg.release"/>
+            
+            <compilerarg value="/O3" if="is.icl" unless="is.cfg.debug"/>
+            <compilerarg value="/mp" if="is.icl"/>
+            <compilerarg value="-mp" if="is.icc"/>
+            <compilerarg value="/QxN" if="is.icl"/>
+            <compilerarg value="/Qip" if="is.icl"/>
+
+            <defineset define="HY_NO_SIG" if="hy.skip.sig"/>
+            <defineset define="HY_LOCAL_ZLIB" if="hy.skip.zlib"/>
+
+        </compiler>
+
+        <compiler id="common.cpp.compiler" name="${hy.cpp.compiler}" extends="common.compiler">
+            <compilerarg value="/EHsc" if="is.windows"/>
+            
+            <compilerarg value="/ZI" if="is.icl" unless="is.ia64"/>
+            <compilerarg value="/Qvc7.1" if="is.icl"/>
+            
+            <compilerarg value="-Wno-deprecated" if="is.unix"/>
+            <compilerarg value="-x" if="is.unix"/>
+            <compilerarg value="c++" if="is.unix"/>
+
+            <compilerarg value="-cxxlib-gcc" if="is.icc"/>
+        </compiler>
+
+        <compiler id="common.c.compiler" name="${hy.cpp.compiler}" extends="common.compiler">
+        </compiler>
+
+        <linker name="${hy.cpp.compiler}" id="common.linker">
+            <linkerarg value="/NODEFAULTLIB:libcmtd.lib" if="is.windows" unless="is.cfg.release"/>
+            <linkerarg value="/NODEFAULTLIB:msvcrt.lib" if="is.windows" unless="is.cfg.release"/>
+            <syslibset libs="msvcrtd" if="is.windows" unless="is.cfg.release"/>
+
+            <linkerarg value="/NODEFAULTLIB:libcmt.lib" if="is.windows" unless="is.cfg.debug"/>
+            <linkerarg value="/NODEFAULTLIB:msvcrtd.lib" if="is.windows" unless="is.cfg.debug"/>
+            <syslibset libs="msvcrt" if="is.windows" unless="is.cfg.debug"/>
+
+            <syslibset libs="advapi32,odbc32,userenv,ws2_32,mswsock,psapi" if="is.windows"/>
+
+            <!--syslibset type="static" libs="z,pthread,xml2" if="is.unix.x86"/-->
+            <syslibset type="shared" libs="m,dl,stdc++,rt" if="is.unix.x86"/>
+            <!--linkerarg value="-lgcc_s" if="is.unix.x86" unless="is.icc"/-->
+        </linker>
+    </target>
+    
+    <target name="init-compression-mode" unless="refs.comp.mode">
+        <!-- Only uncompressed mode is allowed for x86 -->
+        <condition property="refs.comp.mode" value="REFS_USE_UNCOMPRESSED">
+            <isset property="is.x86" />
+        </condition>
+        <!-- refs.comp.mode from command line -->
+        <condition property="refs.comp.mode.tmp" value="${COMPRESSED_MODE}">
+            <isset property="COMPRESSED_MODE" />
+        </condition>
+        <!-- refs.comp.mode from environment or properties.file -->
+        <condition property="refs.comp.mode.tmp" value="${env.COMPRESSED_MODE}">
+            <isset property="env.COMPRESSED_MODE" />
+        </condition>
+
+        <condition property="refs.comp.mode" value="REFS_USE_COMPRESSED">
+            <and>
+                <isset property="refs.comp.mode.tmp" />
+                <equals arg1="${refs.comp.mode.tmp}" arg2="compressed" />
+            </and>
+        </condition>
+        <condition property="refs.comp.mode" value="REFS_USE_UNCOMPRESSED">
+            <and>
+                <isset property="refs.comp.mode.tmp" />
+                <equals arg1="${refs.comp.mode.tmp}" arg2="uncompressed" />
+            </and>
+        </condition>
+        <property name="refs.comp.mode" value="REFS_USE_RUNTIME_SWITCH"/>
+    </target>
+
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/vm/common-vm.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/vm/em.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/vm/em.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/vm/em.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/vm/em.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<project name="em" default="build" basedir="../..">
+    
+    <property name="component" value="em"/>
+    <import file="common-vm.xml"/>
+    
+    <target name="build" depends="-common-vm">        
+        <init-native/>
+        <make-native libname="em" type="shared">
+        <compiler id="cpp.compiler" extends="common.cpp.compiler">
+            <includepath>
+                <dirset dir="${vm.home}">
+                    <include name="vmcore/src/util/win/include" if="is.windows"/>
+                    <include name="vmcore/src/util/linux/include" if="is.unix"/>
+                    <include name="vmcore/include" />
+                    <include name="src/em" />
+                </dirset>
+                <path refid="vm.include"/>
+                <pathelement location="${drlvm.include.dir}" />
+            </includepath>
+
+            <fileset dir="${vm.home}/em/src">
+                <include name="*.cpp" />
+            </fileset>
+
+       </compiler>
+
+        <linker id="linker" extends="common.linker">
+            <libset libs="harmonyvm,hythr" dir="${drlvm.shlib.dir}" />
+            <libset libs="apr-1" dir="${drlvm.lib.dir}" />
+            
+            <syslibset type="shared" libs="m,dl,stdc++,z,xml2,pthread" if="is.linux"/>
+            <syslibset type="shared" libs="m,stdc++,z,pthread" if="is.freebsd"/>
+            <libset libs="xml2" dir="/usr/local/lib" if="is.freebsd"/>
+            <linkerarg value="--export-dynamic" if="is.freebsd"/>
+            
+            <linkerarg value="--version-script=${vm.home}/em/build/em.exp" if="is.unix"/>
+        </linker>
+        </make-native>
+    </target>
+    
+    <target name="clean" >
+        <clean-native />
+    </target>
+
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/vm/em.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/vm/encoder.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/vm/encoder.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/vm/encoder.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/vm/encoder.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<project name="encoder" default="build" basedir="../..">
+    
+    <property name="component" value="encoder"/>
+    <import file="common-vm.xml"/>
+    
+    <target name="build" depends="-common-vm">        
+        <init-native component="encoder"/>
+        
+        <fileset id="encoder.src" dir="${vm.home}/port/src/encoder">
+            <include name="ia32_em64t/*.cpp" unless="is.ia64"/>
+            <include name="ipf/*.cpp" if="is.ia64"/>
+        </fileset>
+        
+        <make-native libname="encoder" type="static">
+            <includepath>
+                <path refid="vm.include"/>
+            </includepath>
+            <compiler id="encoder.compiler" extends="common.cpp.compiler">
+                <!--defineset define="NO_EBCODER_INLINE" /-->
+                <fileset refid="encoder.src"/>
+            </compiler>
+        </make-native>
+    </target>
+    
+    <target name="clean" >
+        <clean-native component="encoder"/>
+    </target>
+    
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/vm/encoder.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/vm/gc_cc.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/vm/gc_cc.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/vm/gc_cc.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/vm/gc_cc.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project name="gc_cc" default="build" basedir="../..">
+    
+    <property name="component" value="gc_cc"/>
+    <import file="common-vm.xml"/>
+    <import file="../build-java.xml"/>
+    
+    <target name="build" depends="-common-vm">
+        <init-native/>
+        <make-native libname="gc_cc" type="shared">
+        <compiler id="cpp.compiler" extends="common.cpp.compiler">
+            <includepath>
+                <pathelement location="${drlvm.include.dir}" />
+                <dirset dir="${vm.home}">
+                    <include name="include" />
+                    <include name="port/include" />
+                    <include name="vmcore/include" />
+                    <include name="vmcore/src/util/win/include" if="is.windows"/>
+                    <include name="vmcore/src/util/linux/include" if="is.unix"/>
+                </dirset>
+            </includepath>
+
+            <fileset dir="${vm.home}/gc_cc/src">
+                <include name="*.cpp" />            
+            </fileset>
+
+            <defineset define="BUILDING_GC" />
+        </compiler>
+
+        <linker id="linker" extends="common.linker">
+            <libset libs="harmonyvm" dir="${drlvm.lib.dir}" if="is.windows"/>
+            <libset libs="hythr" dir="${drlvm.shlib.dir}" />
+            <linkerarg value="-Bsymbolic" if="is.unix"/>
+            <linkerarg value="--version-script=${vm.home}/gc_cc/build/gc_cc.exp" if="is.unix"/>
+        </linker>
+        </make-native>
+        
+        <make-java src="${vm.home}/gc_cc/javasrc" manifest="${vm.home}/gc_cc/resource/MANIFEST.MF">
+            <classpath>
+                <fileset dir="${drlvm.deploy.dir}/jdk/jre/lib/boot" includes="*.jar" />
+                <pathelement location="${drlvm.bin.dir}/kernel.jar"/>
+            </classpath>
+        </make-java>
+    </target>
+    
+    <target name="clean" >
+        <clean-native />
+    </target>
+
+</project>

Propchange: harmony/enhanced/drlvm/trunk/make/vm/gc_cc.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: harmony/enhanced/drlvm/trunk/make/vm/gc_gen.xml
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/make/vm/gc_gen.xml?rev=616241&view=auto
==============================================================================
--- harmony/enhanced/drlvm/trunk/make/vm/gc_gen.xml (added)
+++ harmony/enhanced/drlvm/trunk/make/vm/gc_gen.xml Tue Jan 29 02:34:12 2008
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<project name="gc_gen" default="build" basedir="../..">
+    
+    <import file="common-vm.xml"/>
+    <import file="../build-java.xml"/>
+    
+    <target name="build">
+        <antcall target="build-uncompressed">
+            <param name="component" value="gc_gen_uncomp"/>
+        </antcall>
+        <antcall target="build-compressed">
+            <param name="component" value="gc_gen"/>
+        </antcall>
+        <make-java component="gc_gen" src="${vm.home}/gc_gen/javasrc"
+            manifest="${vm.home}/gc_gen/resource/MANIFEST.MF">
+            <classpath>
+                <fileset dir="${drlvm.deploy.dir}/jdk/jre/lib/boot" includes="*.jar" />
+                <pathelement location="${drlvm.bin.dir}/kernel.jar"/>
+            </classpath>
+        </make-java>
+    </target>
+        
+    <target name="init" depends="-common-vm">
+        <condition property="build.compressed.gc">
+            <not><!-- refs.comp.mode is not REFS_USE_UNCOMPRESSED for compressed and runtime switching modes -->
+                <equals arg1="${refs.comp.mode}" arg2="REFS_USE_UNCOMPRESSED" />
+            </not>
+        </condition>
+        <condition property="build.uncompressed.gc">
+            <not><!-- refs.comp.mode is not REFS_USE_COMPRESSED for uncompressed and runtime switching modes -->
+                <equals arg1="${refs.comp.mode}" arg2="REFS_USE_COMPRESSED" />
+            </not>
+        </condition>
+        
+        <path id="gc.includes">
+            <pathelement location="${drlvm.include.dir}" />
+            <dirset dir="${vm.home}">
+                <include name="include" />
+                <include name="port/include" />
+                <include name="vmcore/include" />
+                <include name="vmcore/src/util/win/include" if="is.windows"/>
+                <include name="vmcore/src/util/linux/include" if="is.unix"/>
+            </dirset>
+        </path>
+        
+        <compiler id="cpp.compiler" extends="common.cpp.compiler">
+            <includepath refid="gc.includes"/>
+            <fileset dir="${vm.home}/gc_gen/src">
+                <selector refid="gc.depends"/>
+                <include name="common/*.cpp" />
+                <include name="gen/*.cpp" />
+                <include name="mark_compact/*.cpp" />
+                <include name="mark_sweep/*.cpp" />
+                <include name="semi_space/*.cpp" />
+                <include name="los/*.cpp" />
+                <include name="thread/*.cpp" />
+                <include name="trace_forward/*.cpp" />
+                <include name="utils/*.cpp" />
+                <include name="jni/*.cpp" />
+                <include name="verify/*.cpp" />
+                <include name="finalizer_weakref/*.cpp" />
+            </fileset>
+
+            <defineset define="BUILDING_GC" />
+        </compiler>
+
+        <linker id="linker" extends="common.linker">
+            <libset libs="harmonyvm" dir="${drlvm.lib.dir}" if="is.windows"/>
+            <libset libs="hythr" dir="${drlvm.shlib.dir}" />
+            <linkerarg value="-Bsymbolic" if="is.unix"/>
+            <linkerarg value="--version-script=${vm.home}/gc_gen/build/gc_gen.exp" if="is.unix"/>
+        </linker>
+
+    </target>
+    
+    <target name="build-uncompressed" depends="init" if="build.uncompressed.gc">
+        <init-native />
+        <depend-includes paths="gc.includes"/>
+        <depend-selector rebuild-flag="gc.includes.uptodate" id="gc.depends"/>
+        <compile-cc>
+            <compiler refid="cpp.compiler"/>
+        </compile-cc>
+        <link-lib name="gc_gen_uncomp" type="shared">
+            <linker refid="linker"/>
+        </link-lib>
+   </target>
+    
+    <target name="build-compressed" depends="init" if="build.compressed.gc">
+        <init-native/>
+        <depend-includes paths="gc.includes"/>
+        <depend-selector rebuild-flag="gc.includes.uptodate" id="gc.depends"/>
+        <compile-cc>
+            <compiler refid="cpp.compiler"/>
+            <defineset define="COMPRESS_REFERENCE" />
+        </compile-cc>
+        <link-lib name="gc_gen" type="shared">
+            <linker refid="linker"/>
+        </link-lib>        
+   </target>
+    
+    <target name="clean" >
+        <clean-native component="gc_gen"/>
+        <clean-native component="gc_gen_uncomp"/>
+    </target>
+
+</project>