Closed MrLoh closed 3 years ago
@d4vidi do you have any idea what the InputDispatcher - Permission denied: injecting event from pid 13241 uid 10258 to window Window{dd28e58 u0 NavigationBar0} owned by uid 10104
error could mean, or have an idea how to best further investigate this, to reproduce it?
I'm not familiar with this error, I'm afraid. I can see that this is the source for it, though. Either way, this SO post seems related, could it be of any help?
Last but not least, I need to better understand how frequently this does not work -- does the scroll always fail to even start? is it flaky in the beginning? is it completely random? If option 1 is the case (does not work entirely), I can suggest off-the-bat trying switching to an emulator running sdk 28...
@d4vidi thanks a lot for having a look. Yeah I found that SO post as well, but I am not sure what to make of it, since it is about people trying to get this to work in an application on a device and not related to testing, I don't have any idea how I would apply any of the stated solutions to my project. Theres not much else at all about this error on the internet it seems, which is really strange.
Also clearly something else is going on here. This is not a flakiness issue this breaks scrolling in my specific project on the Android Simulator all the time, it doesn't start or react whatsoever. But I have tried the examples/demo-react-native project from this repo and that can scroll, so it must be something in my project configuration that breaks this. Only problem is that I have absolutely no clue what it could be and it's a big production scale app that has been actively developed for 2 years, so it's not so trivial to just remove everything to isolate the problem (I've already tried a couple things without any success).
Could you maybe point me to where the detox code actually calls the InputDispatcher
, is there anything special about scroll events, since tap events work fine. Maybe I can try to add some more debugging around the scroll invocation in the detox codebase to get an idea, what could be going on here. Any pointers to how to go about debugging this issue would be greatly appreciated, I am a bit at a loss here, and I have a lot of experience with react native, but this issue is just something else...
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.
Thank you for your contributions!
For more information on bots in this reporsitory, read this discussion.
I'm still encountering this issue
@MrLoh Detox doesn't use the input-dispatcher per se, it rather utilizes Espresso
which in turn tries to inject events through the input-dispatcher (as I understand it after a bit of a shallow inspection). From the logs it seems the input dispatcher on your device blocks the motion events generated by the scrolling mechanism.
My best suggestion atm for tackling this is to reinstall an AOSP, API 28 emulator according to our android dev-env guide. I just think it ought to be easier than to try to get to the bottom of Android's internals and permissions control there. Could you try it out?
Thanks for the explanation. I'll give it a try and ask a colleague to try and reproduce my issue as well.
The AOSP emulator also fails with the same error, and the issue is reproducible for a colleague. So there must be something in our specific app setup that disables it, because the issue doesn't happen, if I try the detox test project. I just have no idea what could be interacting with this, will try to look further into it, maybe knowing that the issue must be with Espresso will help.
I am also seeing this in my test suite, but only on certain screens. On other screens the scroll works as expected. As one would guess I don't see any of the errors in the logcat when scrolling works, but when it fails the InputDispatcher - Permission Denied
errors are all I see.
I gave up on Detox over this issue, the setup is just too much of a time sink, moving on to cavy and appium as my default solution for the next projects.
To me it sounds like test would fail even with bare Espresso
. Would this SO help?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you believe the issue is still relevant, please test on the latest Detox and report back.
Thank you for your contributions!
For more information on bots in this reporsitory, read this discussion.
The issue has been closed for inactivity.
I just encountered this issue as well.
Describe the bug Detox can somehow not scroll anymore in my android tests. Both
scrollTo
andscroll
don't work where they are working totally fine on iOS.To Reproduce I cannot isolate the issue yet. It does work on the detox test project, but not on my project, I am a bit at a loss, what I can try to remove to isolate the cause. It does not have to do with my React code, but with something in the native setup, as rendering as simplistic scroll view with my native setup still has the same problem.
I am really sorry I don't have a better reproduction, but maybe you have an idea from looking at the logs. I am receiving
InputDispatcher - Permission denied: injecting event from pid 13241 uid 10258 to window Window{dd28e58 u0 NavigationBar0} owned by uid 10104
right after the scroll event is fired, which looks suspicious.Device and Verbose Detox Logs
adb logs
2020-05-28 18:28:40.789 1778-15838/? E/ResolverController: No valid NAT64 prefix (101,detox logs
yarn run v1.19.1 $ detox test -c android.emu.debug test --loglevel trace detox[21591] INFO: [test.js] configuration="android.emu.debug" loglevel="trace" reportSpecs=true readOnlyEmu=false useCustomLogger=true forceAdbInstall=false DETOX_START_TIMESTAMP=1590705185790 node_modules/.bin/jest --config spec/jest.config.js '--testNamePattern=^((?!:ios:).)*$' --maxWorkers 1 test detox[21596] TRACE: [Detox.js/DETOX_CREATE] created a Detox instance with config: {"artifactsConfig":{"rootDir":"artifacts/android.emu.debug.2020-05-28 22-33-05Z","plugins":{"log":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"screenshot":{"enabled":true,"shouldTakeAutomaticSnapshots":false,"keepOnlyFailedTestsArtifacts":false},"video":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"instruments":{"enabled":false,"keepOnlyFailedTestsArtifacts":false},"timeline":{"enabled":false}},"pathBuilder":{"_rootDir":"artifacts/android.emu.debug.2020-05-28 22-33-05Z"}},"behaviorConfig":{"init":{"reinstallApp":true,"exposeGlobals":true,"launchApp":true},"cleanup":{"shutdownDevice":false}},"cliConfig":{"configuration":"android.emu.debug","forceAdbInstall":"false","loglevel":"trace","useCustomLogger":"true"},"deviceConfig":{"type":"android.emulator","build":"cd android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug && cd ..","binaryPath":"android/app/build/outputs/apk/cinuru/debug/app-cinuru-debug.apk","device":{"avdName":"Pixel_API_29"}},"runnerConfig":{"testRunner":"jest","runnerConfig":"spec/jest.config.js","specs":"./spec"},"sessionConfig":{"autoStart":true,"server":"ws://localhost:52704","sessionId":"0e74b2e6-8cd9-67e3-68d5-db5b24b3856b"},"errorBuilder":{"filepath":"/Users/tolo/Repos/Cinuru/app/package.json","contents":{"configurations":{"ios.sim.debug":{"type":"ios.simulator","build":"xcodebuild -workspace ios/Cinuru.xcworkspace/ -scheme debug -configuration debug -sdk iphonesimulator -derivedDataPath ios/build","binaryPath":"ios/build/Build/Products/debug-iphonesimulator/Cinuru.app","device":{"type":"iPhone 11 Pro"}},"android.emu.debug":{"type":"android.emulator","build":"cd android && ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug && cd ..","binaryPath":"android/app/build/outputs/apk/cinuru/debug/app-cinuru-debug.apk","device":{"avdName":"Pixel_API_29"}}},"specs":"./spec","test-runner":"jest","runner-config":"spec/jest.config.js"},"configurationName":"android.emu.debug"}} detox[21596] INFO: [DetoxServer.js] server listening on localhost:52704... detox[21596] DEBUG: [AsyncWebSocket.js/WEBSOCKET_OPEN] opened web socket to: ws://localhost:52704 detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"login","params":{"sessionId":"0e74b2e6-8cd9-67e3-68d5-db5b24b3856b","role":"tester"},"messageId":0} detox[21596] DEBUG: [DetoxServer.js/LOGIN] role=tester, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] DEBUG: [DetoxServer.js/LOGIN_SUCCESS] role=tester, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"type":"loginSuccess","params":{"sessionId":"0e74b2e6-8cd9-67e3-68d5-db5b24b3856b","role":"tester"},"messageId":0} detox[21596] DEBUG: [exec.js/EXEC_CMD, #0] "/Users/tolo/Library/Android/sdk/emulator/emulator" -list-avds --verbose detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #0] 10.1_WXGA_Tablet_API_22 Pixel_API_29 detox[21596] DEBUG: [exec.js/EXEC_CMD, #1] "/Users/tolo/Library/Android/sdk/emulator/emulator" -version detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #1] Android emulator version 30.0.5.0 (build_id 6306047) (CL:N/A) Copyright (C) 2006-2017 The Android Open Source Project and many others. This program is a derivative of the QEMU CPU emulator (www.qemu.org). This software is licensed under the terms of the GNU General Public License version 2, as published by the Free Software Foundation, and may be copied, distributed, and modified under those terms. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. detox[21596] DEBUG: [EmulatorVersionResolver.js/EMU_BIN_VERSION_DETECT] Detected emulator binary version { major: 30, minor: 0, patch: 5 } detox[21596] DEBUG: [EmulatorDriver.js/ALLOCATE_DEVICE] Trying to allocate a device based on Pixel_API_29 detox[21596] DEBUG: [exec.js/EXEC_CMD, #2] "/Users/tolo/Library/Android/sdk/platform-tools/adb" devices detox[21596] DEBUG: [exec.js/EXEC_SUCCESS, #2] List of devices attached emulator-15898 device detox[21596] TRACE: [EmulatorTelnet.js/TELNET_CONNECTING] port: 15898, host: localhost detox[21596] DEBUG: [FreeEmulatorFinder.js/DEVICE_LOOKUP] Found emulator-15898! detox[21596] DEBUG: [EmulatorDriver.js/ALLOCATE_DEVICE] Settled on emulator-15898 detox[21596] DEBUG: [exec.js/EXEC_CMD, #3] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "getprop dev.bootcomplete" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #3] 1 detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBootDevice({ coldBoot: false, deviceId: 'emulator-15898', type: 'emulator-15898' }) detox[21596] DEBUG: [exec.js/EXEC_CMD, #4] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "getprop ro.build.version.sdk" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #4] 29 detox[21596] DEBUG: [exec.js/EXEC_CMD, #5] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "settings put global animator_duration_scale 0" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #5] detox[21596] DEBUG: [exec.js/EXEC_CMD, #6] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "settings put global window_animation_scale 0" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #6] detox[21596] DEBUG: [exec.js/EXEC_CMD, #7] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "settings put global transition_animation_scale 0" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #7] detox[21596] DEBUG: [exec.js/EXEC_CMD, #8] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "dumpsys power | grep \"^[ ]*m[UW].*=\"" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #8] mWakefulness=Awake mWakefulnessChanging=false mWakeLockSummary=0x0 mUserActivitySummary=0x1 mWakeUpWhenPluggedOrUnpluggedConfig=false mWakeUpWhenPluggedOrUnpluggedInTheaterModeConfig=false mUserActivityTimeoutOverrideFromWindowManager=-1 mUserInactiveOverrideFromWindowManager=false detox[21596] DEBUG: [exec.js/EXEC_CMD, #9] "/Users/tolo/Library/Android/sdk/build-tools/29.0.0/aapt" dump badging "/Users/tolo/Repos/Cinuru/app/android/app/build/outputs/apk/cinuru/debug/app-cinuru-debug.apk" | grep -e "package: name=" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #9] package: name='com.cinuru.app.debug' versionCode='269' versionName='5.2.0' compileSdkVersion='28' compileSdkVersionCodename='9' detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeUninstallApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug' }) detox[21596] DEBUG: [exec.js/EXEC_CMD, #10] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "pm list packages com.cinuru.app.debug" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #10] package:com.cinuru.app.debug package:com.cinuru.app.debug.test detox[21596] DEBUG: [exec.js/EXEC_CMD, #11] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 uninstall com.cinuru.app.debug detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #11] Success detox[21596] DEBUG: [exec.js/EXEC_CMD, #12] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "pm list packages com.cinuru.app.debug.test" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #12] package:com.cinuru.app.debug.test detox[21596] DEBUG: [exec.js/EXEC_CMD, #13] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 uninstall com.cinuru.app.debug.test detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #13] Success detox[21596] DEBUG: [exec.js/EXEC_CMD, #14] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "rm -fr /data/local/tmp/detox" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #14] detox[21596] DEBUG: [exec.js/EXEC_CMD, #15] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "mkdir -p /data/local/tmp/detox" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #15] detox[21596] DEBUG: [exec.js/EXEC_CMD, #16] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 push "/Users/tolo/Repos/Cinuru/app/android/app/build/outputs/apk/cinuru/debug/app-cinuru-debug.apk" "/data/local/tmp/detox/Application.apk" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #16] /Users/tolo/Repos/Cinuru/app/android/app/build/outputs/apk/cinuru/debug/app-cinuru-debug.apk: 1 file pushed, 0 skipped. 113.2 MB/s (42191959 bytes in 0.355s) detox[21596] DEBUG: [exec.js/EXEC_CMD, #17] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "pm install -r -g -t /data/local/tmp/detox/Application.apk" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #17] Success detox[21596] DEBUG: [exec.js/EXEC_CMD, #18] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 push "/Users/tolo/Repos/Cinuru/app/android/app/build/outputs/apk/androidTest/cinuru/debug/app-cinuru-debug-androidTest.apk" "/data/local/tmp/detox/Test.apk" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #18] /Users/tolo/Repos/Cinuru/app/android/app/build/outputs/apk/androidTest/cinuru/debug/app-cinuru-debug-androidTest.apk: 1 file pushed, 0 skipped. 346.9 MB/s (887437 bytes in 0.002s) detox[21596] DEBUG: [exec.js/EXEC_CMD, #19] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "pm install -r -g -t /data/local/tmp/detox/Test.apk" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #19] Success detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeTerminateApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug' }) detox[21596] DEBUG: [exec.js/EXEC_CMD, #20] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "am force-stop com.cinuru.app.debug" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #20] detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTerminateApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug' }) detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeLaunchApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', launchArgs: { detoxServer: 'ws://localhost:52704', detoxSessionId: '0e74b2e6-8cd9-67e3-68d5-db5b24b3856b' } }) detox[21596] DEBUG: [exec.js/EXEC_CMD, #21] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "date +\"%m-%d %T.000\"" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #21] 05-28 17:33:10.000 detox[21596] DEBUG: [exec.js/EXEC_CMD, #22] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 reverse tcp:52704 tcp:52704 detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #22] 52704 detox[21596] DEBUG: [exec.js/EXEC_CMD, #23] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "pm list instrumentation" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #23] instrumentation:com.cinuru.app.debug.test/androidx.test.runner.AndroidJUnitRunner (target=com.cinuru.app.debug) detox[21596] DEBUG: [exec.js/SPAWN_CMD, #24] [pid=21649] /Users/tolo/Library/Android/sdk/platform-tools/adb -s emulator-15898 shell am instrument -w -r -e detoxServer ws://localhost:52704 -e detoxSessionId 0e74b2e6-8cd9-67e3-68d5-db5b24b3856b -e debug false com.cinuru.app.debug.test/androidx.test.runner.AndroidJUnitRunner detox[21596] DEBUG: [exec.js/EXEC_CMD, #25] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "ps | grep \"com\.cinuru\.app\.debug$\"" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #25] u0_a258 13241 1779 1883676 120076 0 0 R com.cinuru.app.debug detox[13241] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onLaunchApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', launchArgs: { detoxServer: 'ws://localhost:52704', detoxSessionId: '0e74b2e6-8cd9-67e3-68d5-db5b24b3856b' }, pid: 13241 }) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"isReady","params":{},"messageId":-1000} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=isReady (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=testee not connected, cannot fw action (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [exec.js/SPAWN_STDOUT, #24] INSTRUMENTATION_STATUS: class=com.cinuru.app.DetoxTest detox[21596] TRACE: [exec.js/SPAWN_STDOUT, #24] INSTRUMENTATION_STATUS: current=1 INSTRUMENTATION_STATUS: id=AndroidJUnitRunner INSTRUMENTATION_STATUS: numtests=1 INSTRUMENTATION_STATUS: stream= com.cinuru.app.DetoxTest: INSTRUMENTATION_STATUS: test=runDetoxTests INSTRUMENTATION_STATUS_CODE: 1 detox[21596] DEBUG: [DetoxServer.js/LOGIN] role=testee, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] DEBUG: [DetoxServer.js/LOGIN_SUCCESS] role=testee, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=ready (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":-1000,"type":"ready","params":{}} detox[13241] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onAppReady({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', pid: 13241 }) detox[21596] INFO: test is assigned to emulator-15898 (Pixel_API_29) detox[21596] INFO: test: scrolling works test[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onSuiteStart({ name: 'test' }) detox[21596] TRACE: [Detox.js/DETOX_BEFORE_EACH] running test: "test scrolling works" detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTestStart({ title: 'scrolling works', fullName: 'test scrolling works', status: 'running' }) detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeLaunchApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', launchArgs: { detoxServer: 'ws://localhost:52704', detoxSessionId: '0e74b2e6-8cd9-67e3-68d5-db5b24b3856b' } }) detox[21596] DEBUG: [exec.js/EXEC_CMD, #26] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "date +\"%m-%d %T.000\"" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #26] 05-28 17:33:20.000 detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"invoke","params":{"target":{"type":"Class","value":"com.wix.detox.Detox"},"method":"launchMainActivity","args":[]},"messageId":1} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=invoke (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=invokeResult (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":1,"type":"invokeResult","params":{"result":null}} detox[21596] DEBUG: [exec.js/EXEC_CMD, #27] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 shell "ps | grep \"com\.cinuru\.app\.debug$\"" detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #27] u0_a258 13241 1779 2162428 300420 0 0 S com.cinuru.app.debug detox[13241] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onLaunchApp({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', launchArgs: { detoxServer: 'ws://localhost:52704', detoxSessionId: '0e74b2e6-8cd9-67e3-68d5-db5b24b3856b' }, pid: 13241 }) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"isReady","params":{},"messageId":-1000} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=isReady (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=ready (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":-1000,"type":"ready","params":{}} detox[13241] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onAppReady({ deviceId: 'emulator-15898', bundleId: 'com.cinuru.app.debug', pid: 13241 }) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"invoke","params":{"target":{"type":"Class","value":"com.wix.detox.espresso.EspressoDetox"},"method":"perform","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"androidx.test.espresso.Espresso"},"method":"onView","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"com.wix.detox.espresso.DetoxMatcher"},"method":"matcherForTestId","args":["ScrollView"]}}]}},{"type":"Invocation","value":{"target":{"type":"Class","value":"com.wix.detox.espresso.DetoxAction"},"method":"scrollInDirection","args":[{"type":"Integer","value":4},{"type":"Double","value":200},{"type":"Double","value":-1},{"type":"Double","value":-1}]}}]},"messageId":2} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=invoke (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=invokeResult (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":2,"type":"invokeResult","params":{"result":null}} detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"invoke","params":{"target":{"type":"Class","value":"com.wix.detox.espresso.DetoxAssertion"},"method":"assertMatcher","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"androidx.test.espresso.Espresso"},"method":"onView","args":[{"type":"Invocation","value":{"target":{"type":"Class","value":"com.wix.detox.espresso.DetoxMatcher"},"method":"matcherForTestId","args":["TextTest"]}}]}},{"type":"Invocation","value":{"target":{"type":"Class","value":"com.wix.detox.espresso.DetoxMatcher"},"method":"matcherForSufficientlyVisible","args":[]}}]},"messageId":3} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=invoke (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=error (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":3,"type":"error","params":{"error":"androidx.test.espresso.base.DefaultFailureHandler$AssertionFailedWithCauseError: 'at least 75 percent of the view's area is displayed to the user.' doesn't match the selected view.\nExpected: at least 75 percent of the view's area is displayed to the user.\n Got: \"ReactTextView{id=25, visibility=VISIBLE, width=71, height=51, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.view.ViewGroup$LayoutParams@766b716, tag=TextTest, root-is-layout-requested=false, has-input-connection=false, x=505.0, y=2829.0, text=Test, input-type=0, ime-target=false, has-links=false}\"\n\n\tat dalvik.system.VMStack.getThreadStackTrace(Native Method)\n\tat java.lang.Thread.getStackTrace(Thread.java:1720)\n\tat androidx.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:96)\n\tat androidx.test.espresso.base.DefaultFailureHandler.handle(DefaultFailureHandler.java:59)\n\tat androidx.test.espresso.ViewInteraction.waitForAndHandleInteractionResults(ViewInteraction.java:324)\n\tat androidx.test.espresso.ViewInteraction.check(ViewInteraction.java:306)\n\tat com.wix.detox.espresso.DetoxAssertion.assertMatcher(DetoxAssertion.java:32)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat org.apache.commons.lang3.reflect.MethodUtils.invokeStaticMethod(MethodUtils.java:443)\n\tat org.apache.commons.lang3.reflect.MethodUtils.invokeStaticMethod(MethodUtils.java:405)\n\tat com.wix.invoke.types.ClassTarget.execute(ClassTarget.java:23)\n\tat com.wix.invoke.types.Target.invoke(Target.java:59)\n\tat com.wix.invoke.MethodInvocation.invoke(MethodInvocation.java:35)\n\tat com.wix.invoke.MethodInvocation.invoke(MethodInvocation.java:26)\n\tat com.wix.invoke.MethodInvocation.invoke(MethodInvocation.java:20)\n\tat com.wix.detox.InvokeActionHandler.handle(DetoxActionHandlers.kt:52)\n\tat com.wix.detox.DetoxManager$4.run(DetoxManager.java:120)\n\tat android.os.Handler.handleCallback(Handler.java:883)\n\tat android.os.Handler.dispatchMessage(Handler.java:100)\n\tat android.os.Looper.loop(Looper.java:214)\n\tat com.wix.detox.Detox$1.run(Detox.java:174)\n\tat java.lang.Thread.run(Thread.java:919)\nCaused by: junit.framework.AssertionFailedError: 'at least 75 percent of the view's area is displayed to the user.' doesn't match the selected view.\nExpected: at least 75 percent of the view's area is displayed to the user.\n Got: \"ReactTextView{id=25, visibility=VISIBLE, width=71, height=51, has-focus=false, has-focusable=false, has-window-focus=true, is-clickable=false, is-enabled=true, is-focused=false, is-focusable=false, is-layout-requested=false, is-selected=false, layout-params=android.view.ViewGroup$LayoutParams@766b716, tag=TextTest, root-is-layout-requested=false, has-input-connection=false, x=505.0, y=2829.0, text=Test, input-type=0, ime-target=false, has-links=false}\"\n\n\tat androidx.test.espresso.matcher.ViewMatchers.assertThat(ViewMatchers.java:540)\n\tat com.wix.detox.espresso.assertion.ViewAssertions$MatchesViewAssertion.check(ViewAssertions.java:52)\n\tat androidx.test.espresso.ViewInteraction$SingleExecutionViewAssertion.check(ViewInteraction.java:425)\n\tat androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:288)\n\tat androidx.test.espresso.ViewInteraction$2.call(ViewInteraction.java:272)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat android.os.Handler.handleCallback(Handler.java:883)\n\tat android.os.Handler.dispatchMessage(Handler.java:100)\n\tat android.os.Looper.loop(Looper.java:214)\n\tat android.app.ActivityThread.main(ActivityThread.java:7356)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)\n\nCheck device logs for full details!\n"}} detox[21596] INFO: test: scrolling works [FAIL] detox[21596] TRACE: [Detox.js/DETOX_AFTER_EACH] failed test: "test scrolling works" detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onTestDone({ title: 'scrolling works', fullName: 'test scrolling works', status: 'failed', timedOut: false }) test[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onSuiteEnd({ name: 'test' }) detox[21596] TRACE: [ArtifactsManager.js/LIFECYCLE] artifactsManager.onBeforeCleanup() detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_SEND] {"type":"cleanup","params":{"stopRunner":false},"messageId":-49642} detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=tester action=cleanup (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [DetoxServer.js/MESSAGE] role=testee action=cleanupDone (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] TRACE: [AsyncWebSocket.js/WEBSOCKET_MESSAGE] {"messageId":-49642,"type":"cleanupDone","params":{}} detox[21596] DEBUG: [exec.js/KILL] sending SIGINT to [pid = 21649]: /Users/tolo/Library/Android/sdk/platform-tools/adb -s emulator-15898 shell am instrument -w -r -e detoxServer ws://localhost:52704 -e detoxSessionId 0e74b2e6-8cd9-67e3-68d5-db5b24b3856b -e debug false com.cinuru.app.debug.test/androidx.test.runner.AndroidJUnitRunner detox[21596] DEBUG: [DetoxServer.js/DISCONNECT] role=tester, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] DEBUG: [exec.js/KILL] sending SIGINT to [pid = 21649]: /Users/tolo/Library/Android/sdk/platform-tools/adb -s emulator-15898 shell am instrument -w -r -e detoxServer ws://localhost:52704 -e detoxSessionId 0e74b2e6-8cd9-67e3-68d5-db5b24b3856b -e debug false com.cinuru.app.debug.test/androidx.test.runner.AndroidJUnitRunner detox[21596] TRACE: [exec.js/SPAWN_END, #24] /Users/tolo/Library/Android/sdk/platform-tools/adb -s emulator-15898 shell am instrument -w -r -e detoxServer ws://localhost:52704 -e detoxSessionId 0e74b2e6-8cd9-67e3-68d5-db5b24b3856b -e debug false com.cinuru.app.debug.test/androidx.test.runner.AndroidJUnitRunner terminated with SIGINT detox[21596] DEBUG: [DetoxServer.js/DISCONNECT] role=testee, sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b detox[21596] DEBUG: [DetoxServer.js/CANNOT_FORWARD] role=tester not connected, cannot fw action (sessionId=0e74b2e6-8cd9-67e3-68d5-db5b24b3856b) detox[21596] DEBUG: [DetoxServer.js/WS_CLOSE] Detox server connections terminated gracefully detox[21596] DEBUG: [exec.js/EXEC_CMD, #28] "/Users/tolo/Library/Android/sdk/platform-tools/adb" -s emulator-15898 reverse --remove tcp:52704 FAIL spec/test.spec.js (16.729s) test ✕ scrolling works (2715ms) ● test › scrolling works 3 | await device.launchApp(); 4 | await $('ScrollView').scroll(200, 'down'); > 5 | await expect($('TextTest')).toBeVisible(); | ^ 6 | }); 7 | }); 8 | at Object.toBeVisible (test.spec.js:5:31) at tryCatch (../node_modules/regenerator-runtime/runtime.js:45:40) at Generator.invoke [as _invoke] (../node_modules/regenerator-runtime/runtime.js:271:22) at Generator.prototype.(anonymous function) [as next] (../node_modules/regenerator-runtime/runtime.js:97:21) at tryCatch (../node_modules/regenerator-runtime/runtime.js:45:40) at invoke (../node_modules/regenerator-runtime/runtime.js:135:20) at ../node_modules/regenerator-runtime/runtime.js:145:13 at tryCallOne (../node_modules/promise/lib/core.js:37:12) at ../node_modules/promise/lib/core.js:123:15 at flush (../node_modules/asap/raw.js:50:29) detox[21596] TRACE: [exec.js/EXEC_SUCCESS, #28] detox[21591] ERROR: [cli.js] Error: Command failed: node_modules/.bin/jest --config spec/jest.config.js '--testNamePattern=^((?!:ios:).)*$' --maxWorkers 1 test error Command failed with exit code 1.Environment (please complete the following information):