fix: improve blocks tree compare for finally extract (#1501)
This commit is contained in:
@@ -79,8 +79,6 @@ public abstract class IntegrationTest extends TestUtils {
|
||||
private static final String TEST_DIRECTORY = "src/test/java";
|
||||
private static final String TEST_DIRECTORY2 = "jadx-core/" + TEST_DIRECTORY;
|
||||
|
||||
private static final String OUT_DIR = "test-out-tmp";
|
||||
|
||||
private static final String DEFAULT_INPUT_PLUGIN = "dx";
|
||||
/**
|
||||
* Set 'TEST_INPUT_PLUGIN' env variable to use 'java' or 'dx' input in tests
|
||||
@@ -132,7 +130,7 @@ public abstract class IntegrationTest extends TestUtils {
|
||||
this.useJavaInput = null;
|
||||
|
||||
args = new JadxArgs();
|
||||
args.setOutDir(new File(OUT_DIR));
|
||||
args.setOutDir(new File("test-out-tmp"));
|
||||
args.setShowInconsistentCode(true);
|
||||
args.setThreadsCount(1);
|
||||
args.setSkipResources(true);
|
||||
@@ -156,6 +154,10 @@ public abstract class IntegrationTest extends TestUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public void setOutDirSuffix(String suffix) {
|
||||
args.setOutDir(new File("test-out-" + suffix + "-tmp"));
|
||||
}
|
||||
|
||||
public String getTestName() {
|
||||
return this.getClass().getSimpleName();
|
||||
}
|
||||
|
||||
@@ -31,6 +31,10 @@ public enum TestProfile implements Consumer<IntegrationTest> {
|
||||
test.useTargetJavaVersion(11);
|
||||
test.useJavaInput();
|
||||
}),
|
||||
JAVA17("java-17", test -> {
|
||||
test.useTargetJavaVersion(17);
|
||||
test.useJavaInput();
|
||||
}),
|
||||
ECJ_DX_J8("ecj-dx-j8", test -> {
|
||||
test.useEclipseCompiler();
|
||||
test.useTargetJavaVersion(8);
|
||||
@@ -52,8 +56,9 @@ public enum TestProfile implements Consumer<IntegrationTest> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(IntegrationTest integrationTest) {
|
||||
this.setup.accept(integrationTest);
|
||||
public void accept(IntegrationTest test) {
|
||||
this.setup.accept(test);
|
||||
test.setOutDirSuffix(description);
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package jadx.tests.integration.trycatch;
|
||||
|
||||
import jadx.tests.api.IntegrationTest;
|
||||
import jadx.tests.api.extensions.profiles.TestProfile;
|
||||
import jadx.tests.api.extensions.profiles.TestWithProfiles;
|
||||
|
||||
import static jadx.tests.api.utils.assertj.JadxAssertions.assertThat;
|
||||
|
||||
public class TestTryCatchFinally14 extends IntegrationTest {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public static class TestCls {
|
||||
private TCls t;
|
||||
|
||||
public void test() {
|
||||
try {
|
||||
if (t != null) {
|
||||
t.doSomething();
|
||||
}
|
||||
} finally {
|
||||
if (t != null) {
|
||||
t.doFinally();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class TCls {
|
||||
public void doSomething() {
|
||||
}
|
||||
|
||||
public void doFinally() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@TestWithProfiles({ TestProfile.DX_J8, TestProfile.D8_J11, TestProfile.JAVA8 })
|
||||
public void test() {
|
||||
assertThat(getClassNode(TestCls.class))
|
||||
.code()
|
||||
.containsOne(".doSomething();")
|
||||
.containsOne("} finally {")
|
||||
.containsOne(".doFinally();")
|
||||
.countString(2, "!= null) {");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user