From: Branislav Rankov Date: Tue, 29 Nov 2016 14:02:04 +0000 (+0000) Subject: Disabled fallback to interpreter in dexfuzz. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2e44560338780dd1877f7cf8ac18e67a50ef0b2d;p=android-x86%2Fart.git Disabled fallback to interpreter in dexfuzz. Added the -Xno-dex-file-fallback option when running optimizing backends so that it fails in case compilation fails. Test: Introduce an artificial crash in the optimizing compiler. There should be a divergence reported. dexfuzz --input=Hello.dex --execute --arm --interpreter --optimizing --repeat=20 --dump-output Change-Id: I8adfc68b176b7482efce0cc7335c3cc50857c5a2 --- diff --git a/tools/dexfuzz/src/dexfuzz/executors/Arm64OptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/Arm64OptimizingBackendExecutor.java index 72e36e86e..84ed4c465 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/Arm64OptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/Arm64OptimizingBackendExecutor.java @@ -29,6 +29,9 @@ public class Arm64OptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm64 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); if (device.noBootImageAvailable()) { commandBuilder.append("-Ximage:/data/art-test/core.art -Xnorelocate "); } diff --git a/tools/dexfuzz/src/dexfuzz/executors/ArmOptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/ArmOptimizingBackendExecutor.java index ded8cf991..26a5eeaf8 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/ArmOptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/ArmOptimizingBackendExecutor.java @@ -29,6 +29,9 @@ public class ArmOptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm32 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); if (device.noBootImageAvailable()) { commandBuilder.append("-Ximage:/data/art-test/core.art -Xnorelocate "); } diff --git a/tools/dexfuzz/src/dexfuzz/executors/Mips64OptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/Mips64OptimizingBackendExecutor.java index 72d43e732..883ff2aa5 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/Mips64OptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/Mips64OptimizingBackendExecutor.java @@ -29,6 +29,9 @@ public class Mips64OptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm64 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); commandBuilder.append("-cp ").append(testLocation).append("/").append(programName).append(" "); commandBuilder.append(executeClass); return commandBuilder.toString(); diff --git a/tools/dexfuzz/src/dexfuzz/executors/MipsOptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/MipsOptimizingBackendExecutor.java index 63f6858cf..b7babdc57 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/MipsOptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/MipsOptimizingBackendExecutor.java @@ -29,6 +29,9 @@ public class MipsOptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm32 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); commandBuilder.append("-cp ").append(testLocation).append("/").append(programName).append(" "); commandBuilder.append(executeClass); return commandBuilder.toString(); diff --git a/tools/dexfuzz/src/dexfuzz/executors/X86OptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/X86OptimizingBackendExecutor.java index 5908a8b96..1d62051f1 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/X86OptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/X86OptimizingBackendExecutor.java @@ -30,6 +30,9 @@ public class X86OptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm32 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); if (Options.executeOnHost) { commandBuilder.append(device.getHostExecutionFlags()).append(" "); } diff --git a/tools/dexfuzz/src/dexfuzz/executors/X86_64OptimizingBackendExecutor.java b/tools/dexfuzz/src/dexfuzz/executors/X86_64OptimizingBackendExecutor.java index 28ff1a506..ad44259db 100644 --- a/tools/dexfuzz/src/dexfuzz/executors/X86_64OptimizingBackendExecutor.java +++ b/tools/dexfuzz/src/dexfuzz/executors/X86_64OptimizingBackendExecutor.java @@ -29,6 +29,9 @@ public class X86_64OptimizingBackendExecutor extends Executor { protected String constructCommand(String programName) { StringBuilder commandBuilder = new StringBuilder(); commandBuilder.append("dalvikvm64 -Xcompiler-option --compiler-backend=Optimizing "); + // The -Xno-dex-file-fallback option ensures that the execution does not default to + // interpreter if compilations fails. + commandBuilder.append("-Xno-dex-file-fallback "); commandBuilder.append("-cp ").append(testLocation).append("/").append(programName).append(" "); commandBuilder.append(executeClass); return commandBuilder.toString();