robolectric icon indicating copy to clipboard operation
robolectric copied to clipboard

Make-fields-of-ShadowTranslationManager-static-for-context-level-instance

Open Devashishbasu opened this issue 1 year ago • 2 comments

1.Converted instance fields to static fields to ensure proper state management. 2.add tests for same in ShadowTranslationManager

Overview

Proposed Changes

Devashishbasu avatar Aug 15 '24 18:08 Devashishbasu

Hi @utzcoz , integration tests are passing on my machine but failing on CI image

Devashishbasu avatar Aug 22 '24 16:08 Devashishbasu

 INFO: Execute android.app.TranslationManagerTest.translationManager_activityInstance_isSameAsActivityInstance: PASSED
SEVERE: Execute android.app.TranslationManagerTest.translationManager_applicationInstance_isNotSameAsActivityInstance: FAILED
expected not to be specific instance: expected not to be specific instance: null
at android.app.TranslationManagerTest.lambda$translationManager_applicationInstance_isNotSameAsActivityInstance$0(TranslationManagerTest.java:31)
at android.app.TranslationManagerTest$$ExternalSyntheticLambda1.perform(D8$$SyntheticClass:0)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$androidx-test-core-app-ActivityScenario(ActivityScenario.java:794)
at androidx.test.core.app.ActivityScenario$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:2420)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
expected not to be specific instance: null
at android.app.TranslationManagerTest.lambda$translationManager_applicationInstance_isNotSameAsActivityInstance$0(TranslationManagerTest.java:31)
at android.app.TranslationManagerTest$$ExternalSyntheticLambda1.perform(D8$$SyntheticClass:0)
at androidx.test.core.app.ActivityScenario.lambda$onActivity$2$androidx-test-core-app-ActivityScenario(ActivityScenario.java:794)
at androidx.test.core.app.ActivityScenario$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:487)
at java.util.concurrent.FutureTask.run(FutureTask.java:264)
at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:2420)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
SEVERE: Execute android.app.TranslationManagerTest.translationManager_instance_retrievesSameCapabilities: FAILED
java.lang.NullPointerException: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.Set android.view.translation.TranslationManager.getOnDeviceTranslationCapabilities(int, int)' on a null object reference

@Devashishbasu You can run these tests with same Emulator images locally. I think you can get them from CI's configuration.

utzcoz avatar Aug 25 '24 14:08 utzcoz

The TranslationManager is not always existing on all Android devices, and we need check service existing before we run related tests. The WifiAwareManager is also the same logic.

utzcoz avatar Sep 07 '24 08:09 utzcoz

Thanks.

utzcoz avatar Sep 07 '24 09:09 utzcoz

@MGaetan89 @hoisie Maybe we need to upgrade Android Emulator images to use Google images to test more managers/services.

utzcoz avatar Sep 07 '24 09:09 utzcoz