Fix unit test

This commit is contained in:
Nullptr 2022-02-18 16:43:41 +08:00
parent 620b7cbc60
commit 9a53615f56
3 changed files with 12 additions and 12 deletions

View File

@ -17,12 +17,11 @@ import java.util.List;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class UnitTest {
private final List<Hooker> hookers = new ArrayList<>();
private static final List<Hooker> hookers = new ArrayList<>();
@Test
public void t00_initTest() {
boolean result = LSPTest.initHooker();
Assert.assertTrue(result);
Assert.assertTrue(LSPTest.initHooker());
}
@Test

View File

@ -12,14 +12,14 @@ public class Hooker {
public Executable backup;
private boolean isStatic;
private Executable replacement;
private Executable target, replacement;
private Hooker() {
}
private native Executable doHook(Executable original, Executable callback);
private native boolean doUnhook(Executable replacement);
private native boolean doUnhook(Executable target);
public Object callback(Object[] args) throws InvocationTargetException, IllegalAccessException, InstantiationException {
if (replacement instanceof Method) {
@ -36,17 +36,18 @@ public class Hooker {
}
public boolean unhook() {
return doUnhook(replacement);
return doUnhook(target);
}
public static Hooker hook(Executable original, Executable replacement) {
public static Hooker hook(Executable target, Executable replacement) {
Hooker hooker = new Hooker();
try {
var callbackMethod = Hooker.class.getDeclaredMethod("callback", Object[].class);
var result = hooker.doHook(original, callbackMethod);
var result = hooker.doHook(target, callbackMethod);
if (result == null) return null;
hooker.isStatic = (replacement.getModifiers() & Modifier.STATIC) != 0;
hooker.backup = result;
hooker.target = target;
hooker.replacement = replacement;
} catch (NoSuchMethodException ignored) {
}

View File

@ -39,14 +39,14 @@ Java_org_lsposed_lsplant_LSPTest_initHooker(JNIEnv*, jclass) {
extern "C"
JNIEXPORT jobject JNICALL
Java_org_lsposed_lsplant_Hooker_doHook(JNIEnv* env, jobject thiz, jobject original, jobject callback) {
return lsplant::Hook(env, original, thiz, callback);
Java_org_lsposed_lsplant_Hooker_doHook(JNIEnv* env, jobject thiz, jobject target, jobject callback) {
return lsplant::Hook(env, target, thiz, callback);
}
extern "C"
JNIEXPORT jboolean JNICALL
Java_org_lsposed_lsplant_Hooker_doUnhook(JNIEnv* env, jobject, jobject replacement) {
return lsplant::UnHook(env, replacement);
Java_org_lsposed_lsplant_Hooker_doUnhook(JNIEnv* env, jobject, jobject target) {
return lsplant::UnHook(env, target);
}
JNIEXPORT jint JNICALL