diff --git a/build.gradle.kts b/build.gradle.kts index cb04de2..955b8c6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,4 +23,7 @@ dependencies { tasks.test { useJUnitPlatform() + testLogging { + events("PASSED", "SKIPPED", "FAILED") + } } diff --git a/src/test/kotlin/net/revanced/patcher/PatcherTest.kt b/src/test/kotlin/net/revanced/patcher/PatcherTest.kt index d26bf87..7057b90 100644 --- a/src/test/kotlin/net/revanced/patcher/PatcherTest.kt +++ b/src/test/kotlin/net/revanced/patcher/PatcherTest.kt @@ -14,29 +14,31 @@ import java.io.PrintStream import kotlin.test.Test internal class PatcherTest { - private val testSigs: Array = arrayOf( - // Java: - // public static void main(String[] args) { - // System.out.println("Hello, world!"); - // } - // Bytecode: - // public static main(java.lang.String[] arg0) { // Method signature: ([Ljava/lang/String;)V - // getstatic java/lang/System.out:java.io.PrintStream - // ldc "Hello, world!" (java.lang.String) - // invokevirtual java/io/PrintStream.println(Ljava/lang/String;)V - // return - // } - Signature( - "mainMethod", - Type.VOID_TYPE, - ACC_PUBLIC or ACC_STATIC, - arrayOf(ExtraTypes.ArrayAny), - arrayOf( - LDC, - INVOKEVIRTUAL + companion object { + val testSigs: Array = arrayOf( + // Java: + // public static void main(String[] args) { + // System.out.println("Hello, world!"); + // } + // Bytecode: + // public static main(java.lang.String[] arg0) { // Method signature: ([Ljava/lang/String;)V + // getstatic java/lang/System.out:java.io.PrintStream + // ldc "Hello, world!" (java.lang.String) + // invokevirtual java/io/PrintStream.println(Ljava/lang/String;)V + // return + // } + Signature( + "mainMethod", + Type.VOID_TYPE, + ACC_PUBLIC or ACC_STATIC, + arrayOf(ExtraTypes.ArrayAny), + arrayOf( + LDC, + INVOKEVIRTUAL + ) ) ) - ) + } @Test fun testPatcher() { @@ -127,7 +129,7 @@ internal class PatcherTest { // TODO Doesn't work, needs to be fixed. //@Test - //fun noChanges() { + //fun `test patcher with no changes`() { // val testData = PatcherTest::class.java.getResourceAsStream("/test1.jar")!! // val available = testData.available() // val patcher = Patcher(testData, testSigs) diff --git a/src/test/kotlin/net/revanced/patcher/ReaderTest.kt b/src/test/kotlin/net/revanced/patcher/ReaderTest.kt new file mode 100644 index 0000000..e0afb2a --- /dev/null +++ b/src/test/kotlin/net/revanced/patcher/ReaderTest.kt @@ -0,0 +1,12 @@ +package net.revanced.patcher + +import kotlin.test.Test + +internal class ReaderTest { + @Test + fun `read jar containing multiple classes`() { + val testData = PatcherTest::class.java.getResourceAsStream("/test2.jar")!! + Patcher(testData, PatcherTest.testSigs) // reusing test sigs from PatcherTest + testData.close() + } +} \ No newline at end of file diff --git a/src/test/resources/test2.jar b/src/test/resources/test2.jar new file mode 100644 index 0000000..9df8df7 Binary files /dev/null and b/src/test/resources/test2.jar differ