You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2006/08/30 11:16:40 UTC
svn commit: r438430 - in
/incubator/harmony/enhanced/classlib/trunk/modules/instrument: ./
src/main/java/org/apache/harmony/instrument/internal/
src/test/java/org/apache/harmony/tests/java/lang/instrument/
src/test/resources/jars/ src/test/resources/ja...
Author: pyang
Date: Wed Aug 30 02:16:39 2006
New Revision: 438430
URL: http://svn.apache.org/viewvc?rev=438430&view=rev
Log:
Patch applied for HARMONY-1276 ([classlib][instrument]Add tests for instruement implementation)
Added:
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/TestMain.java
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/BadFormatJar.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_Class_null.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_addTransformer_null.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_notExists.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_null.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Properity_case_sensitive.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_Premain_null.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_other_null.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/loading_class.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/new_classloader.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/old_version_class.jar (with props)
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/zero_byte_class.jar (with props)
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/instrument/build.xml
incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/main/java/org/apache/harmony/instrument/internal/InstrumentationImpl.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/instrument/build.xml
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/build.xml?rev=438430&r1=438429&r2=438430&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/instrument/build.xml (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/instrument/build.xml Wed Aug 30 02:16:39 2006
@@ -1,198 +1,199 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright 2006 The Apache Software Foundation or its
- licensors, as applicable.
-
- Licensed 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="INSTRUMENT Build" default="build" basedir=".">
- <description>Build for INSTRUMENT component</description>
-
- <!-- import common properties -->
- <import file="${basedir}/../../make/properties.xml" />
-
- <!-- set global properties for this build. -->
- <xmlproperty file="make/hyproperties.xml" semanticAttributes="true" />
-
- <fileset id="classes" dir="${hy.build}">
- <includesfile name="${hy.instrument}/make/patternset.txt" />
- <excludesfile name="${hy.hdk}/build/patternsets/luni-kernel.txt" />
- <excludesfile name="${hy.hdk}/build/patternsets/security-kernel.txt" />
- </fileset>
-
- <!-- Set build.compiler to "org.eclipse.jdt.core.JDTCompilerAdapter" to
- use the Eclipse Java compiler. -->
- <property name="build.compiler" value="modern" />
-
- <property name="iculib.zip" location="${depends.oss}/icu4c-3.4-harmony.zip" />
-
- <target name="build" depends="compile.java, copy.resources, build.jar" />
-
- <target name="test" depends="build, compile.tests, run.tests" />
-
- <target name="overlay-oss">
- <mkdir dir="${hy.instrument.src.main.native}/icu4c/unicode" />
- <unzip src="${iculib.zip}" dest="${hy.instrument.src.main.native}/icu4c/unicode" />
- <chmod dir="${hy.instrument.src.main.native}/icu4c/unicode" perm="ugo+r" />
- </target>
-
- <target name="clean-overlay-oss">
- <delete dir="${hy.instrument.src.main.native}/icu4c" quiet="true" />
- </target>
-
- <!-- Build native code -->
- <target name="build.native" >
- <make dir="${hy.instrument.src.main.native}/instrument/${hy.os}" />
-
- <!-- Copy the built shared libs over to the jre/bin dir -->
- <copy todir="${hy.jdk}/jre/bin" overwrite="yes">
- <fileset dir="${hy.instrument.src.main.native}/instrument">
- <patternset includes="*${shlib.suffix}*" />
- </fileset>
- </copy>
- </target>
-
- <!-- Clean natives -->
- <target name="clean.native">
- <make dir="${hy.instrument.src.main.native}/instrument/${hy.os}" target="clean" />
- </target>
-
- <target name="clean">
- <delete failonerror="false">
- <fileset refid="classes" />
- <fileset dir="${hy.instrument.bin.test}" />
- </delete>
- </target>
-
- <target name="compile.java">
- <echo message="Compiling INSTRUMENT classes" />
-
- <mkdir dir="${hy.build}" />
-
- <javac sourcepath=""
- srcdir="${hy.instrument.src.main.java}"
- destdir="${hy.build}"
- source="${hy.javac.source}"
- target="${hy.javac.target}"
- debug="${hy.javac.debug}">
-
- <bootclasspath>
- <fileset dir="${hy.jdk}/jre/lib/boot">
- <include name="**/*.jar" />
- </fileset>
- </bootclasspath>
- </javac>
- </target>
-
- <target name="copy.resources">
- <mkdir dir="${hy.build}" />
- <copy todir="${hy.build}" includeemptydirs="false">
- <fileset dir="${hy.instrument.src.main.java}">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- </target>
-
- <target name="build.jar" depends="svn-info">
- <jar destfile="${hy.jdk}/jre/lib/boot/instrument.jar"
- manifest="${hy.instrument}/META-INF/MANIFEST.MF">
- <fileset refid="classes" />
- <manifest>
- <attribute name="Implementation-Version" value="${svn.info}"/>
- </manifest>
- </jar>
- </target>
-
- <target name="compile.tests" depends="copy.test.resources">
- <echo message="Compiling INSTRUMENT tests" />
-
- <mkdir dir="${hy.instrument.bin.test}" />
-
- <javac srcdir="${hy.instrument.src.test.java}"
- destdir="${hy.instrument.bin.test}"
- sourcepath=""
- source="${hy.javac.source}"
- target="${hy.javac.target}"
- debug="${hy.javac.debug}">
-
- <bootclasspath>
- <fileset dir="${hy.jdk}/jre/lib/boot">
- <include name="**/*.jar" />
- </fileset>
- </bootclasspath>
- <classpath location="${hy.hdk}/build/test/support.jar" />
- </javac>
- </target>
-
- <target name="run.tests">
-
- <mkdir dir="${hy.tests.reports}" />
-
- <property name="test.jre.home" value="${hy.jdk}/jre" />
-
- <junit fork="yes"
- forkmode="once"
- printsummary="withOutAndErr"
- errorproperty="test.errors"
- failureproperty="test.failures"
- showoutput="on"
- dir="${basedir}"
- jvm="${test.jre.home}/bin/java">
-
- <jvmarg value="-showversion"/>
-
- <env key="JAVA_HOME" value="${test.jre.home}"/>
-
- <classpath>
- <pathelement path="${hy.instrument.bin.test}"/>
- </classpath>
- <classpath location="${hy.hdk}/build/test/support.jar" />
-
- <formatter type="xml" />
-
- <test name="${test.case}" todir="${hy.tests.reports}"
- if="test.case" />
-
- <batchtest todir="${hy.tests.reports}" haltonfailure="no"
- unless="test.case">
-
- <fileset dir="${hy.instrument.src.test.java}">
- <include name="**/*Test.java"/>
- </fileset>
- </batchtest>
- </junit>
- <antcall target="touch-failures-file" />
- <antcall target="touch-errors-file" />
- </target>
-
- <target name="touch-failures-file" if="test.failures">
- <echo file="${hy.tests.reports}/test.failures"
- append="true">instrument${line.separator}</echo>
- </target>
-
- <target name="touch-errors-file" if="test.errors">
- <echo file="${hy.tests.reports}/test.errors"
- append="true">instrument${line.separator}</echo>
- </target>
-
- <target name="copy.test.resources">
- <mkdir dir="${hy.instrument.bin.test}" />
- <copy todir="${hy.instrument.bin.test}" includeemptydirs="false">
- <fileset dir="${hy.instrument.src.test.resources}">
- <exclude name="**/*.java" />
- </fileset>
- </copy>
- </target>
-
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2006 The Apache Software Foundation or its
+ licensors, as applicable.
+
+ Licensed 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="INSTRUMENT Build" default="build" basedir=".">
+ <description>Build for INSTRUMENT component</description>
+
+ <!-- import common properties -->
+ <import file="${basedir}/../../make/properties.xml" />
+
+ <!-- set global properties for this build. -->
+ <xmlproperty file="make/hyproperties.xml" semanticAttributes="true" />
+
+ <fileset id="classes" dir="${hy.build}">
+ <includesfile name="${hy.instrument}/make/patternset.txt" />
+ <excludesfile name="${hy.hdk}/build/patternsets/luni-kernel.txt" />
+ <excludesfile name="${hy.hdk}/build/patternsets/security-kernel.txt" />
+ </fileset>
+
+ <!-- Set build.compiler to "org.eclipse.jdt.core.JDTCompilerAdapter" to
+ use the Eclipse Java compiler. -->
+ <property name="build.compiler" value="modern" />
+
+ <property name="iculib.zip" location="${depends.oss}/icu4c-3.4-harmony.zip" />
+
+ <target name="build" depends="compile.java, copy.resources, build.jar" />
+
+ <target name="test" depends="build, compile.tests, run.tests" />
+
+ <target name="overlay-oss">
+ <mkdir dir="${hy.instrument.src.main.native}/icu4c/unicode" />
+ <unzip src="${iculib.zip}" dest="${hy.instrument.src.main.native}/icu4c/unicode" />
+ <chmod dir="${hy.instrument.src.main.native}/icu4c/unicode" perm="ugo+r" />
+ </target>
+
+ <target name="clean-overlay-oss">
+ <delete dir="${hy.instrument.src.main.native}/icu4c" quiet="true" />
+ </target>
+
+ <!-- Build native code -->
+ <target name="build.native" >
+ <make dir="${hy.instrument.src.main.native}/instrument/${hy.os}" />
+
+ <!-- Copy the built shared libs over to the jre/bin dir -->
+ <copy todir="${hy.jdk}/jre/bin" overwrite="yes">
+ <fileset dir="${hy.instrument.src.main.native}/instrument">
+ <patternset includes="*${shlib.suffix}*" />
+ </fileset>
+ </copy>
+ </target>
+
+ <!-- Clean natives -->
+ <target name="clean.native">
+ <make dir="${hy.instrument.src.main.native}/instrument/${hy.os}" target="clean" />
+ </target>
+
+ <target name="clean">
+ <delete failonerror="false">
+ <fileset refid="classes" />
+ <fileset dir="${hy.instrument.bin.test}" />
+ </delete>
+ </target>
+
+ <target name="compile.java">
+ <echo message="Compiling INSTRUMENT classes" />
+
+ <mkdir dir="${hy.build}" />
+
+ <javac sourcepath=""
+ srcdir="${hy.instrument.src.main.java}"
+ destdir="${hy.build}"
+ source="${hy.javac.source}"
+ target="${hy.javac.target}"
+ debug="${hy.javac.debug}">
+
+ <bootclasspath>
+ <fileset dir="${hy.jdk}/jre/lib/boot">
+ <include name="**/*.jar" />
+ </fileset>
+ </bootclasspath>
+ </javac>
+ </target>
+
+ <target name="copy.resources">
+ <mkdir dir="${hy.build}" />
+ <copy todir="${hy.build}" includeemptydirs="false">
+ <fileset dir="${hy.instrument.src.main.java}">
+ <exclude name="**/*.java" />
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="build.jar" depends="svn-info">
+ <jar destfile="${hy.jdk}/jre/lib/boot/instrument.jar"
+ manifest="${hy.instrument}/META-INF/MANIFEST.MF">
+ <fileset refid="classes" />
+ <manifest>
+ <attribute name="Implementation-Version" value="${svn.info}"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="compile.tests" depends="copy.test.resources">
+ <echo message="Compiling INSTRUMENT tests" />
+
+ <mkdir dir="${hy.instrument.bin.test}" />
+
+ <javac srcdir="${hy.instrument.src.test.java}"
+ destdir="${hy.instrument.bin.test}"
+ sourcepath=""
+ source="${hy.javac.source}"
+ target="${hy.javac.target}"
+ debug="${hy.javac.debug}">
+
+ <bootclasspath>
+ <fileset dir="${hy.jdk}/jre/lib/boot">
+ <include name="**/*.jar" />
+ </fileset>
+ </bootclasspath>
+ <classpath location="${hy.hdk}/build/test/support.jar" />
+ </javac>
+ </target>
+
+ <target name="run.tests">
+
+ <mkdir dir="${hy.tests.reports}" />
+
+ <property name="test.jre.home" value="${hy.jdk}/jre" />
+
+ <junit fork="yes"
+ forkmode="once"
+ printsummary="withOutAndErr"
+ errorproperty="test.errors"
+ failureproperty="test.failures"
+ showoutput="on"
+ dir="${basedir}"
+ jvm="${test.jre.home}/bin/java">
+
+ <jvmarg value="-showversion"/>
+
+ <env key="JAVA_HOME" value="${test.jre.home}"/>
+
+ <classpath>
+ <pathelement path="${hy.instrument.bin.test}"/>
+ </classpath>
+ <classpath location="${hy.hdk}/build/test/support.jar" />
+
+ <formatter type="xml" />
+
+ <test name="${test.case}" todir="${hy.tests.reports}"
+ if="test.case" />
+
+ <batchtest todir="${hy.tests.reports}" haltonfailure="no"
+ unless="test.case">
+
+ <fileset dir="${hy.instrument.src.test.java}">
+ <include name="**/*Test.java" />
+ <exclude name="org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java" />
+ </fileset>
+ </batchtest>
+ </junit>
+ <antcall target="touch-failures-file" />
+ <antcall target="touch-errors-file" />
+ </target>
+
+ <target name="touch-failures-file" if="test.failures">
+ <echo file="${hy.tests.reports}/test.failures"
+ append="true">instrument${line.separator}</echo>
+ </target>
+
+ <target name="touch-errors-file" if="test.errors">
+ <echo file="${hy.tests.reports}/test.errors"
+ append="true">instrument${line.separator}</echo>
+ </target>
+
+ <target name="copy.test.resources">
+ <mkdir dir="${hy.instrument.bin.test}" />
+ <copy todir="${hy.instrument.bin.test}" includeemptydirs="false">
+ <fileset dir="${hy.instrument.src.test.resources}">
+ <exclude name="**/*.java" />
+ </fileset>
+ </copy>
+ </target>
+
+</project>
Modified: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/main/java/org/apache/harmony/instrument/internal/InstrumentationImpl.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/main/java/org/apache/harmony/instrument/internal/InstrumentationImpl.java?rev=438430&r1=438429&r2=438430&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/main/java/org/apache/harmony/instrument/internal/InstrumentationImpl.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/main/java/org/apache/harmony/instrument/internal/InstrumentationImpl.java Wed Aug 30 02:16:39 2006
@@ -69,7 +69,6 @@
* @see java.lang.instrument.Instrumentation#addTransformer(java.lang.instrument.ClassFileTransformer)
*/
public void addTransformer(ClassFileTransformer transformer) {
- System.out.println("Coming!");
if (null == transformer) {
throw new NullPointerException();
}
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java?rev=438430&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/InstrumentTest.java Wed Aug 30 02:16:39 2006
@@ -0,0 +1,203 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed 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.
+ */
+
+package org.apache.harmony.tests.java.lang.instrument;
+
+import junit.framework.AssertionFailedError;
+import junit.framework.TestCase;
+import tests.support.Support_Exec;
+
+public class InstrumentTest extends TestCase {
+
+ /**
+ * @tests try to add a null Transformer
+ */
+ public void test_addTransformer_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_addTransformer_null.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("", result);
+ }
+
+ /**
+ * @tests try to remove a null Transformer
+ */
+ public void test_removeTransformer_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_null.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("", result);
+ }
+
+ /**
+ * @tests try to remove a non-exists Transformer
+ */
+ public void test_removeTransformer_notExists() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_notExists.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("", result);
+ }
+
+ /**
+ * @tests try to load a class that does not exist
+ */
+ public void test_loadClass_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/loading_class.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ try{
+ Support_Exec.execJava(arg, path, true);
+ fail("Should fail here!");
+ } catch (AssertionFailedError e){
+ // class loader changes, can not load classes
+ assertTrue(-1 != e.getMessage().indexOf("NoClassDefFoundError"));
+ }
+ }
+
+ /**
+ * @tests try to use a new ClassLoader
+ */
+ public void test_new_classLoader_Exists() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/new_classloader.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertNotNull(result);
+ }
+
+ /**
+ * @tests test if attribute of "Premain-Class" is null
+ */
+ public void test_Property_Premain_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Property_Premain_null.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ try{
+ Support_Exec.execJava(arg, path, true);
+ fail("Should fail here!");
+ } catch (AssertionFailedError e){
+ // expected
+ assertTrue(-1 != e.getMessage().indexOf("Failed") || -1 != e.getMessage().indexOf("error") );
+ assertTrue(-1 != e.getMessage().indexOf("Premain-Class"));
+ assertTrue(-1 != e.getMessage().indexOf("attribute"));
+ }
+ }
+
+ /**
+ * @tests test if attributes of "Can-Redefine-Classes" and "Boot-Class-Path" is null
+ */
+ public void test_Property_other_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Property_other_null.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertNotNull(result);
+ }
+
+ /**
+ * @tests test if the attributes is case-sensitive
+ */
+ public void test_Properity_case_sensitive() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Properity_case_sensitive.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("",result);
+ }
+
+ /**
+ * @tests test if the jar file is bad
+ */
+ public void test_BadFormatJar() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/BadFormatJar.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ try{
+ Support_Exec.execJava(arg, path, true);
+ fail("Should fail here!");
+ } catch (AssertionFailedError e){
+ // expected
+ assertTrue(-1 != e.getMessage().indexOf("error") || -1 != e.getMessage().indexOf("Error") );
+ assertTrue(-1 != e.getMessage().indexOf("open"));
+ assertTrue(-1 != e.getMessage().indexOf("file"));
+ }
+ }
+
+ /**
+ * @tests test if premain class is null
+ */
+ public void test_Premain_Class_null() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_Class_null.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ try{
+ Support_Exec.execJava(arg, path, true);
+ fail("Should fail here!");
+ } catch (AssertionFailedError e){
+ // expected
+ assertTrue(-1 != e.getMessage().indexOf("ClassNotFoundException"));
+ }
+ }
+
+ /**
+ * @tests test transforming all classes to a zero byte
+ */
+ public void test_zero_byte_transformer() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/zero_byte_class.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("",result);
+ }
+
+ /**
+ * @tests test if complied by version 1.4
+ */
+ public void test_old_version() throws Exception {
+ String[] arg = new String[2];
+ arg[0] = "-javaagent:src/test/resources/jars/org/apache/harmony/tests/instrument/old_version_class.jar";
+ arg[1] = "org/apache/harmony/tests/java/lang/instrument/TestMain";
+ String[] path = new String[1];
+ path[0] = "";
+ String result = Support_Exec.execJava(arg, path, true);
+ assertEquals("",result);
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/TestMain.java
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/TestMain.java?rev=438430&view=auto
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/TestMain.java (added)
+++ incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/java/org/apache/harmony/tests/java/lang/instrument/TestMain.java Wed Aug 30 02:16:39 2006
@@ -0,0 +1,26 @@
+/* Copyright 2006 The Apache Software Foundation or its licensors, as applicable
+ *
+ * Licensed 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.
+ */
+
+package org.apache.harmony.tests.java.lang.instrument;
+
+/*
+ * For instrument test only
+ */
+public class TestMain {
+ public static void main(String[] args) {
+ // do nothing, only as execuable main class
+ return;
+ }
+}
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/BadFormatJar.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/BadFormatJar.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/BadFormatJar.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_Class_null.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_Class_null.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_Class_null.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_addTransformer_null.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_addTransformer_null.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_addTransformer_null.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_notExists.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_notExists.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_notExists.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_null.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_null.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Premain_removeTransformer_null.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Properity_case_sensitive.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Properity_case_sensitive.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Properity_case_sensitive.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_Premain_null.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_Premain_null.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_Premain_null.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_other_null.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_other_null.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/Property_other_null.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/loading_class.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/loading_class.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/loading_class.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/new_classloader.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/new_classloader.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/new_classloader.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/old_version_class.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/old_version_class.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/old_version_class.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/zero_byte_class.jar
URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/zero_byte_class.jar?rev=438430&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/harmony/enhanced/classlib/trunk/modules/instrument/src/test/resources/jars/org/apache/harmony/tests/instrument/zero_byte_class.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream