From: Jesse Wilson Date: Fri, 18 Mar 2011 21:04:20 +0000 (-0700) Subject: Use 'dalvikvm' only to test dx. X-Git-Tag: android-x86-4.0-r1~124^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=324d2f23a7174848f7d130c43c903325c99a93c7;p=android-x86%2Fdalvik.git Use 'dalvikvm' only to test dx. Change-Id: I1fca7ce23e9b3706d75580c06956d49d79614fe6 http://b/4090053 --- diff --git a/dx/tests/115-merge/com/android/dx/merge/DexMergeTest.java b/dx/tests/115-merge/com/android/dx/merge/DexMergeTest.java index b256dd2c6..c6ffbdce5 100644 --- a/dx/tests/115-merge/com/android/dx/merge/DexMergeTest.java +++ b/dx/tests/115-merge/com/android/dx/merge/DexMergeTest.java @@ -17,7 +17,6 @@ package com.android.dx.merge; import com.android.dx.io.DexBuffer; -import dalvik.system.PathClassLoader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -156,14 +155,17 @@ public final class DexMergeTest extends TestCase { assertTrue(maxLength + " < " + maxExpectedLength, maxLength < maxExpectedLength); } - public ClassLoader mergeAndLoad(String dexAResource, String dexBResource) throws IOException { + public ClassLoader mergeAndLoad(String dexAResource, String dexBResource) throws Exception { DexBuffer dexA = resourceToDexBuffer(dexAResource); DexBuffer dexB = resourceToDexBuffer(dexBResource); DexBuffer merged = new DexMerger(dexA, dexB, CollisionPolicy.KEEP_FIRST).merge(); File mergedDex = File.createTempFile("DexMergeTest", ".classes.dex"); merged.writeTo(mergedDex); File mergedJar = dexToJar(mergedDex); - return new PathClassLoader(mergedJar.getPath(), getClass().getClassLoader()); + // simplify the javac classpath by not depending directly on 'dalvik.system' classes + return (ClassLoader) Class.forName("dalvik.system.PathClassLoader") + .getConstructor(String.class, ClassLoader.class) + .newInstance(mergedJar.getPath(), getClass().getClassLoader()); } private DexBuffer resourceToDexBuffer(String resource) throws IOException { diff --git a/dx/tests/115-merge/run b/dx/tests/115-merge/run index d3d34e8e1..83e5b3db8 100644 --- a/dx/tests/115-merge/run +++ b/dx/tests/115-merge/run @@ -17,8 +17,12 @@ # Find dx.jar from dx in the android dev tree prog=`which dx` progdir=`dirname "${prog}"` +dxjar=$progdir/../framework/dx.jar -javac testdata/*.java +javac -cp $dxjar `find . -name "*.java"` +dx --dex --output=test.jar com/android/dx/merge/* $dxjar + +# Build a resource .jar containing the .dex files to merge dx --dex --output=testdata/Annotated.dex testdata/Annotated* dx --dex --output=testdata/Basic.dex testdata/Basic* dx --dex --output=testdata/FillArrayData.dex testdata/FillArrayData* @@ -26,9 +30,8 @@ dx --dex --output=testdata/StaticValues.dex testdata/StaticValues* dx --dex --output=testdata/TryCatchFinally.dex testdata/TryCatchFinally* jar cfM resources.jar testdata/*.dex -vogar --classpath resources.jar \ - --classpath $progdir/../framework/dx.jar \ - com/android/dx/merge/DexMergeTest.java > unit-out.txt +dalvik -classpath test.jar:resources.jar \ + junit.textui.TestRunner com.android.dx.merge.DexMergeTest > unit-out.txt if [ "$?" = "0" ]; then echo "Yay!" diff --git a/dx/tests/116-leb128/run b/dx/tests/116-leb128/run index 1e729ed90..5f36cd985 100644 --- a/dx/tests/116-leb128/run +++ b/dx/tests/116-leb128/run @@ -17,9 +17,10 @@ # Find dx.jar from dx in the android dev tree prog=`which dx` progdir=`dirname "${prog}"` +dxjar=$progdir/../framework/dx.jar -vogar --classpath $progdir/../framework/dx.jar \ - com/android/dx/util/Leb128UtilsTest.java > unit-out.txt +javac -cp $dxjar `find . -name "*.java"` +java -classpath $dxjar:. junit.textui.TestRunner com.android.dx.util.Leb128UtilsTest > unit-out.txt if [ "$?" = "0" ]; then echo "Yay!" diff --git a/dx/tests/117-modified-utf8/run b/dx/tests/117-modified-utf8/run index a68999156..a4c202ef4 100644 --- a/dx/tests/117-modified-utf8/run +++ b/dx/tests/117-modified-utf8/run @@ -17,9 +17,10 @@ # Find dx.jar from dx in the android dev tree prog=`which dx` progdir=`dirname "${prog}"` +dxjar=$progdir/../framework/dx.jar -vogar --classpath $progdir/../framework/dx.jar \ - com/android/dx/util/Mutf8Test.java > unit-out.txt +javac -cp $dxjar `find . -name "*.java"` +java -classpath $dxjar:. junit.textui.TestRunner com.android.dx.util.Mutf8Test > unit-out.txt if [ "$?" = "0" ]; then echo "Yay!" diff --git a/dx/tests/119-merge-conflict/run b/dx/tests/119-merge-conflict/run index af5087dda..28c152d2c 100644 --- a/dx/tests/119-merge-conflict/run +++ b/dx/tests/119-merge-conflict/run @@ -17,19 +17,18 @@ # Find dx.jar from dx in the android dev tree prog=`which dx` progdir=`dirname "${prog}"` +dxjar=$progdir/../framework/dx.jar -# Find dx.jar from dx in the android dev tree -prog=`which dx` -progdir=`dirname "${prog}"` +javac -cp $dxjar `find . -name "*.java"` +dx --dex --output=test.jar com/android/dx/merge/* $dxjar -javac testdata/*.java +# Build a resource .jar containing the .dex files to merge dx --dex --output=testdata/A.dex testdata/A.class dx --dex --output=testdata/B.dex testdata/B.class jar cfM resources.jar testdata/*.dex -vogar --classpath resources.jar \ - --classpath $progdir/../framework/dx.jar \ - com/android/dx/merge/MergeConflictTest.java > unit-out.txt +dalvik -classpath test.jar:resources.jar \ + junit.textui.TestRunner com.android.dx.merge.MergeConflictTest > unit-out.txt if [ "$?" = "0" ]; then echo "Yay!"