From acdaa95854b6e883e31f2e6c6844c8f3a29b46c9 Mon Sep 17 00:00:00 2001 From: Skylot Date: Tue, 3 Nov 2020 17:27:15 +0000 Subject: [PATCH] test(cli): add multiple input test (#936) --- .../src/main/java/jadx/cli/JadxCLIArgs.java | 2 +- .../src/test/java/jadx/cli/TestInput.java | 22 ++++++++++++------- .../test/resources/samples/HelloWorld.smali | 2 +- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java index 50d6978d5..8bc645e55 100644 --- a/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java +++ b/jadx-cli/src/main/java/jadx/cli/JadxCLIArgs.java @@ -19,7 +19,7 @@ import jadx.core.utils.files.FileUtils; public class JadxCLIArgs { - @Parameter(description = " (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc)") + @Parameter(description = " (.apk, .dex, .jar, .class, .smali, .zip, .aar, .arsc)") protected List files = new ArrayList<>(1); @Parameter(names = { "-d", "--output-dir" }, description = "output directory") diff --git a/jadx-cli/src/test/java/jadx/cli/TestInput.java b/jadx-cli/src/test/java/jadx/cli/TestInput.java index de0a439b1..f73ff1bf8 100644 --- a/jadx-cli/src/test/java/jadx/cli/TestInput.java +++ b/jadx-cli/src/test/java/jadx/cli/TestInput.java @@ -10,7 +10,6 @@ import java.nio.file.PathMatcher; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; - import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import org.slf4j.Logger; @@ -38,16 +37,23 @@ public class TestInput { decompile("class", "samples/HelloWorld.class"); } - private void decompile(String tmpDirName, String inputSample) throws URISyntaxException, IOException { + @Test + public void testMultipleInput() throws Exception { + decompile("multi", "samples/hello.dex", "samples/HelloWorld.smali"); + } + + private void decompile(String tmpDirName, String... inputSamples) throws URISyntaxException, IOException { StringBuilder args = new StringBuilder(); Path tempDir = FileUtils.createTempDir(tmpDirName); - args.append("-v "); - args.append("-d ").append(tempDir.toAbsolutePath()).append(' '); + args.append("-v"); + args.append(" -d ").append(tempDir.toAbsolutePath()); - URL resource = getClass().getClassLoader().getResource(inputSample); - assertThat(resource).isNotNull(); - String sampleFile = resource.toURI().getRawPath(); - args.append(sampleFile); + for (String inputSample : inputSamples) { + URL resource = getClass().getClassLoader().getResource(inputSample); + assertThat(resource).isNotNull(); + String sampleFile = resource.toURI().getRawPath(); + args.append(' ').append(sampleFile); + } int result = JadxCLI.execute(args.toString().split(" ")); assertThat(result).isEqualTo(0); diff --git a/jadx-cli/src/test/resources/samples/HelloWorld.smali b/jadx-cli/src/test/resources/samples/HelloWorld.smali index 924b46bc4..27df4ac82 100644 --- a/jadx-cli/src/test/resources/samples/HelloWorld.smali +++ b/jadx-cli/src/test/resources/samples/HelloWorld.smali @@ -1,4 +1,4 @@ -.class LHelloWorld; +.class Lsmali/HelloWorld; .super Ljava/lang/Object; .source "HelloWorld.java"