From 1b60c1d1a8a0e65237b1fec8abbea347de395127 Mon Sep 17 00:00:00 2001 From: Skylot Date: Wed, 30 Oct 2019 13:18:52 +0000 Subject: [PATCH] test: print smali code for debug purpose --- .../java/jadx/tests/api/IntegrationTest.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java index 1266befe8..c755f5f2e 100644 --- a/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java +++ b/jadx-core/src/test/java/jadx/tests/api/IntegrationTest.java @@ -86,6 +86,7 @@ public abstract class IntegrationTest extends TestUtils { private boolean allowWarnInCode; private boolean printLineNumbers; + private boolean printSmali; private DynamicCompiler dynamicCompiler; @@ -156,7 +157,7 @@ public abstract class IntegrationTest extends TestUtils { } protected JadxDecompiler loadFiles(List inputFiles) { - JadxDecompiler d = null; + JadxDecompiler d; try { args.setInputFiles(inputFiles); d = new JadxDecompiler(args); @@ -188,11 +189,21 @@ public abstract class IntegrationTest extends TestUtils { } System.out.println("-----------------------------------------------------------"); + if (printSmali) { + clsList.forEach(this::printSmali); + } + clsList.forEach(this::checkCode); compile(clsList); clsList.forEach(this::runAutoCheck); } + private void printSmali(ClassNode cls) { + System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + System.out.println(cls.getSmali()); + System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); + } + private void printCodeWithLineNumbers(ICodeInfo code) { String codeStr = code.getCodeStr(); Map lineMapping = code.getLineMapping(); @@ -488,6 +499,12 @@ public abstract class IntegrationTest extends TestUtils { this.args.setRawCFGOutput(true); } + // Use only for debug purpose + @Deprecated + protected void printSmali() { + this.printSmali = true; + } + // Use only for debug purpose @Deprecated protected void outputRawCFG() {