feat: Add first tests

This commit is contained in:
oSumAtrIX
2022-04-06 02:15:40 +02:00
parent 4543b36616
commit 6767c8fbc1
5 changed files with 139 additions and 126 deletions

View File

@@ -29,7 +29,7 @@ class MutableClass(classDef: ClassDef) : ClassDef, BaseTypeReference() {
// Fields
private val _fields by lazy { classDef.fields.map { field -> field.toMutable() }.toMutableSet() }
private val _staticFields by lazy { Iterables.filter(_fields, FieldUtil.FIELD_IS_STATIC).toMutableSet() }
private val _instanceFields by lazy {Iterables.filter(_fields, FieldUtil.FIELD_IS_INSTANCE) .toMutableSet() }
private val _instanceFields by lazy { Iterables.filter(_fields, FieldUtil.FIELD_IS_INSTANCE).toMutableSet() }
fun setType(type: String) {
this.type = type

View File

@@ -31,8 +31,8 @@ internal class SignatureResolver(
val classProxy = ClassProxy(classDef, index)
methodMap[signature.name] = SignatureResolverResult(
classProxy,
patternScanData,
method.name,
patternScanData
)
}
}
@@ -53,8 +53,8 @@ internal class SignatureResolver(
val result = compareSignatureToMethod(signature, method) ?: continue
return SignatureResolverResult(
classProxy,
result,
method.name,
result
)
}
return null

View File

@@ -1,6 +1,7 @@
package app.revanced.patcher.signature
import app.revanced.patcher.proxy.ClassProxy
import app.revanced.patcher.proxy.mutableTypes.MutableMethod
import app.revanced.patcher.resolver.SignatureResolver
/**
@@ -11,9 +12,14 @@ import app.revanced.patcher.resolver.SignatureResolver
*/
data class SignatureResolverResult(
val definingClassProxy: ClassProxy,
val resolvedMethodName: String,
val scanData: PatternScanResult?
val scanData: PatternScanResult,
private val resolvedMethodName: String,
) {
fun resolveAndGetMethod(): MutableMethod {
return definingClassProxy.resolve().methods.single { it.name == resolvedMethodName }
}
@Suppress("Unused") // TODO(Sculas): remove this when we have coverage for this method.
fun findParentMethod(signature: MethodSignature): SignatureResolverResult? {
return SignatureResolver.resolveFromProxy(definingClassProxy, signature)