From 5658c959b4f5e683f07c3984c7bfa5abeb09b845 Mon Sep 17 00:00:00 2001 From: Connor Tumbleson Date: Fri, 27 Nov 2020 10:14:39 -0500 Subject: [PATCH] test: add triple dex test on aapt2 --- .../androlib/aapt2/BuildAndDecodeTest.java | 20 +++++++++++++++++++ .../aapt2/testapp/smali/HelloWorld.smali | 15 ++++++++++++++ .../smali_classes2/HelloDualDexSupport.smali | 15 ++++++++++++++ .../HelloTripleDexSupport.smali | 15 ++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali/HelloWorld.smali create mode 100644 brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes2/HelloDualDexSupport.smali create mode 100644 brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes3/HelloTripleDexSupport.smali diff --git a/brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt2/BuildAndDecodeTest.java b/brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt2/BuildAndDecodeTest.java index 67764033..24bb3e4d 100644 --- a/brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt2/BuildAndDecodeTest.java +++ b/brut.apktool/apktool-lib/src/test/java/brut/androlib/aapt2/BuildAndDecodeTest.java @@ -124,4 +124,24 @@ public class BuildAndDecodeTest extends BaseTest { public void xmlXsdFileTest() throws BrutException { compareXmlFiles("res/xml/ww_box_styles_schema.xsd"); } + + @Test + public void multipleDexTest() throws BrutException, IOException { + compareBinaryFolder("/smali_classes2", false); + compareBinaryFolder("/smali_classes3", false); + + File classes2Dex = new File(sTestOrigDir, "build/apk/classes2.dex"); + File classes3Dex = new File(sTestOrigDir, "build/apk/classes3.dex"); + + assertTrue(classes2Dex.isFile()); + assertTrue(classes3Dex.isFile()); + } + + @Test + public void singleDexTest() throws BrutException, IOException { + compareBinaryFolder("/smali", false); + + File classesDex = new File(sTestOrigDir, "build/apk/classes.dex"); + assertTrue(classesDex.isFile()); + } } diff --git a/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali/HelloWorld.smali b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali/HelloWorld.smali new file mode 100644 index 00000000..5fb24d8c --- /dev/null +++ b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali/HelloWorld.smali @@ -0,0 +1,15 @@ +.class public LHelloWorld; + +.super Ljava/lang/Object; + +.method public static main([Ljava/lang/String;)V + .registers 2 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + + const/high16 v1, 0x7f020000 + + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + + return-void +.end method \ No newline at end of file diff --git a/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes2/HelloDualDexSupport.smali b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes2/HelloDualDexSupport.smali new file mode 100644 index 00000000..e9613981 --- /dev/null +++ b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes2/HelloDualDexSupport.smali @@ -0,0 +1,15 @@ +.class public LHelloDualDexSupport; + +.super Ljava/lang/Object; + +.method public static main([Ljava/lang/String;)V + .registers 2 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + + const/high16 v1, 0x7f020000 + + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + + return-void +.end method \ No newline at end of file diff --git a/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes3/HelloTripleDexSupport.smali b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes3/HelloTripleDexSupport.smali new file mode 100644 index 00000000..aced6ed5 --- /dev/null +++ b/brut.apktool/apktool-lib/src/test/resources/aapt2/testapp/smali_classes3/HelloTripleDexSupport.smali @@ -0,0 +1,15 @@ +.class public LHelloTripleDexSupport; + +.super Ljava/lang/Object; + +.method public static main([Ljava/lang/String;)V + .registers 2 + + sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; + + const/high16 v1, 0x7f020000 + + invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V + + return-void +.end method \ No newline at end of file