diff --git a/Package.swift b/Package.swift index d2e4a4b..da0b2ea 100644 --- a/Package.swift +++ b/Package.swift @@ -37,7 +37,7 @@ let package = Package( dependencies: [ .package(url: "https://github.com/swhitty/FlyingFox.git", exact: "0.16.0"), .package(url: "https://github.com/EmergeTools/AccessibilitySnapshot.git", exact: "1.0.2"), - .package(url: "https://github.com/EmergeTools/SimpleDebugger.git", branch: "main"), + .package(url: "https://github.com/EmergeTools/SimpleDebugger.git", exact: "1.0.0"), ], targets: [ // Targets are the basic building blocks of a package, defining a module or a test suite. diff --git a/Sources/SnapshottingTestsObjc/EMGInvocationCreator.mm b/Sources/SnapshottingTestsObjc/EMGInvocationCreator.mm index fba331e..a9c6034 100644 --- a/Sources/SnapshottingTestsObjc/EMGInvocationCreator.mm +++ b/Sources/SnapshottingTestsObjc/EMGInvocationCreator.mm @@ -42,27 +42,18 @@ int gettimeofday_new(struct timeval *t, void *a) { return 0; } -void callback(mach_port_t thread, arm_thread_state64_t state, std::function a) { - state.__pc = (__uint64_t) &gettimeofday_new; - thread_set_state(thread, ARM_THREAD_STATE64, (thread_state_t) &state, ARM_THREAD_STATE64_COUNT); - a(false); -} - #endif + (void)hookTime { #if EMG_ENABLE_FIX_TIME - vm_address_t a = (vm_address_t) &gettimeofday; handler = new SimpleDebugger(); - handler->setBreakpoint(a); - handler->setExceptionCallback(&callback); - handler->startDebugging(); + handler->hookFunction((void *) &gettimeofday, (void *) &gettimeofday_new); #endif } + (void)load { NSDictionary *env = [[NSProcessInfo processInfo] environment]; - if ([[env objectForKey:@"EMERGE_SHOULD_FIX_TIME"] isEqualToString:@"1"]) { + if (![[env objectForKey:@"EMERGE_DISABLE_FIX_TIME"] isEqualToString:@"1"]) { [self hookTime]; } id previewBaseTest = NSClassFromString(@"EMGPreviewBaseTest");