Kaspresso icon indicating copy to clipboard operation
Kaspresso copied to clipboard

Kaspresso rewrite original stack on internal espresso errors

Open VladislavSumin opened this issue 1 year ago • 1 comments

Describe the bug When we receive an error inside the espresso library, kaspresso replaces the stacktrace with its own, and the original stacktrace is lost. It happens here - https://github.com/KasperskyLab/Kaspresso/blob/1fcb27f37ff3138b6fbdcc2fcc81e72e193e65d1/kaspresso/src/main/kotlin/com/kaspersky/kaspresso/failure/FailureLoggingProviderImpl.kt#L96. Example of espresso internal error - https://github.com/KakaoCup/Kakao/issues/60

Instead of the original stack we get this:

StackTrace
java.lang.NullPointerException
	at dalvik.system.VMStack.getThreadStackTrace(Native Method)
	at java.lang.Thread.getStackTrace(Thread.java:1736)
	at com.kaspersky.kaspresso.failure.FailureLoggingProviderImpl.describedWith(FailureLoggingProviderImpl.kt:96)
	at com.kaspersky.kaspresso.failure.FailureLoggingProviderImpl.logDescriptionAndThrow(FailureLoggingProviderImpl.kt:69)
	at com.kaspersky.kaspresso.failure.LoggingFailureHandler.logDescriptionAndThrow(Unknown Source:2)
	at com.kaspersky.kaspresso.failure.LoggingFailureHandler.handle(LoggingFailureHandler.kt:21)
	at androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:8)
	at androidx.test.espresso.ViewInteraction.desugaredPerform(ViewInteraction.java:11)
	at androidx.test.espresso.ViewInteraction.perform(ViewInteraction.java:8)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$1.invoke(KakaoViewInterceptor.kt:46)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$1.invoke(KakaoViewInterceptor.kt:44)
	at com.kaspersky.kaspresso.autoscroll.AutoScrollProviderImpl.withAutoScroll(AutoScrollProviderImpl.kt:31)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.autoscroll.AutoScrollViewBehaviorInterceptor.withAutoScroll(Unknown Source:12)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.autoscroll.AutoScrollViewBehaviorInterceptor.intercept(AutoScrollViewBehaviorInterceptor.kt:26)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.autoscroll.AutoScrollViewBehaviorInterceptor.intercept(AutoScrollViewBehaviorInterceptor.kt:14)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.systemsafety.SystemDialogSafetyProviderImpl.passSystemDialogs(SystemDialogSafetyProviderImpl.kt:60)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.systemsafety.SystemDialogSafetyViewBehaviorInterceptor.passSystemDialogs(Unknown Source:7)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.systemsafety.SystemDialogSafetyViewBehaviorInterceptor.intercept(SystemDialogSafetyViewBehaviorInterceptor.kt:30)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.systemsafety.SystemDialogSafetyViewBehaviorInterceptor.intercept(SystemDialogSafetyViewBehaviorInterceptor.kt:16)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.flakysafety.algorithm.FlakySafetyAlgorithm.invokeFlakySafely(FlakySafetyAlgorithm.kt:32)
	at com.kaspersky.kaspresso.flakysafety.algorithm.FlakySafetyAlgorithm.invokeFlakySafely$default(FlakySafetyAlgorithm.kt:22)
	at com.kaspersky.kaspresso.flakysafety.FlakySafetyProviderSimpleImpl.flakySafely(FlakySafetyProviderSimpleImpl.kt:27)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.flakysafety.FlakySafeViewBehaviorInterceptor.flakySafely(Unknown Source:7)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.flakysafety.FlakySafeViewBehaviorInterceptor.intercept(FlakySafeViewBehaviorInterceptor.kt:26)
	at com.kaspersky.kaspresso.interceptors.behavior.impl.flakysafety.FlakySafeViewBehaviorInterceptor.intercept(FlakySafeViewBehaviorInterceptor.kt:14)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor$interceptPerform$2$1.invoke(KakaoViewInterceptor.kt:51)
	at com.kaspersky.kaspresso.interceptors.tolibrary.kakao.KakaoViewInterceptor.interceptPerform(KakaoViewInterceptor.kt:53)
	at com.kaspersky.kaspresso.interceptors.tolibrary.KakaoLibraryInjector$injectKaspressoInKakao$1$1$2.invoke(KakaoLibraryInjector.kt:57)
	at com.kaspersky.kaspresso.interceptors.tolibrary.KakaoLibraryInjector$injectKaspressoInKakao$1$1$2.invoke(KakaoLibraryInjector.kt:57)
	at io.github.kakaocup.kakao.delegate.Delegate$DefaultImpls.interceptOnPerform(Delegate.kt:68)
	at io.github.kakaocup.kakao.delegate.Delegate$DefaultImpls.interceptPerform$intercept$3(Delegate.kt:44)
	at io.github.kakaocup.kakao.delegate.Delegate$DefaultImpls.interceptPerform(Delegate.kt:49)
	at io.github.kakaocup.kakao.delegate.ViewInteractionDelegate.interceptPerform(ViewInteractionDelegate.kt:21)
	at io.github.kakaocup.kakao.delegate.ViewInteractionDelegate.interceptPerform(ViewInteractionDelegate.kt:21)
	at io.github.kakaocup.kakao.delegate.ViewInteractionDelegate.perform(ViewInteractionDelegate.kt:41)
	at io.github.kakaocup.kakao.recycler.RecyclerActions$DefaultImpls.scrollToEnd(RecyclerActions.kt:30)
	at <PRIVATE_PACKAGE_REMOVED>.CustomRecyclerView.scrollToEnd(...)
	at <PRIVATE_PACKAGE_REMOVED>.SomeTest$someTest$1$2$4$2$1.invoke(...)

Expected behavior The original error is attached as suppressedExceptions

Screenshots NONE

Desktop (please complete the following information): ANY

Smartphone (please complete the following information): ANY

Additional context Add any other context about the problem here.

VladislavSumin avatar Apr 08 '24 14:04 VladislavSumin

Closed too soon

Nikitae57 avatar Aug 21 '24 07:08 Nikitae57