-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: gameloop addition #1262
feat: gameloop addition #1262
Conversation
test_runner/src/main/kotlin/ftl/run/model/AndroidTestContext.kt
Outdated
Show resolved
Hide resolved
test_runner/src/main/kotlin/ftl/run/platform/android/AndroidTestConfig.kt
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've noticed some differences in logic compared with gcloud
-
app: [path]/app-debug.apk test: [path]/app-multiple-success-debug-androidTest.apk type: game-loop
runs normal instrumentation test where gcloud throw error
ERROR: (gcloud.alpha.firebase.test.android.run) Invalid value for [test]: may not be used with test type [game-loop]
-
app: [path]/app-debug.apk type: game-loop
runs sanity robo where
gcloud
runsgame-loop
-
app: [path]/app-debug.apk obb-files: - [path]/test.obb <== the same as in PR type: game-loop
results in a nasty exception
RunTests Uploading app-debug.apk . java.io.IOException: Request failed at ftl.http.ExecuteWithRetryKt$executeWithRetry$$inlined$withRetry$1.invokeSuspend(ExecuteWithRetry.kt:40) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:176) at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:111) at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:308) at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl(CancellableContinuationImpl.kt:318) at kotlinx.coroutines.CancellableContinuationImpl.resumeUndispatched(CancellableContinuationImpl.kt:400) at kotlinx.coroutines.EventLoopImplBase$DelayedResumeTask.run(EventLoop.common.kt:489) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) at ftl.http.ExecuteWithRetryKt.executeWithRetry(ExecuteWithRetry.kt:45) at ftl.run.platform.RunAndroidTestsKt$executeAndroidTestMatrix$2$invokeSuspend$$inlined$map$lambda$1.invokeSuspend(RunAndroidTests.kt:103) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:738) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665) Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request POST https://testing.googleapis.com/v1/projects/pawel-p/testMatrices { "code" : 400, "errors" : [ { "domain" : "global", "message" : "Required field should not be empty: google.devtools.testing.v1.ObbFile.obb_file_name", "reason" : "badRequest" } ], "message" : "Required field should not be empty: google.devtools.testing.v1.ObbFile.obb_file_name", "status" : "INVALID_ARGUMENT" } at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:149) at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:112) at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:39) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:443) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1108) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:541) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:474) at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:591) at ftl.http.ExecuteWithRetryKt$executeWithRetry$$inlined$withRetry$1.invokeSuspend(ExecuteWithRetry.kt:45) ... 21 more
and
gcloud
'sERROR: (gcloud.alpha.firebase.test.android.run) Invalid value for [obb-files]: [path/test.obb] is not a valid OBB file name, which must have the format: (main|patch).<versionCode>.<package.name>.obb
-
app: [path]/app-debug.apk obb-files: - [path]/main.0300110.com.example.android.obb type: game-loop
here is interesting because flank throws an exception the same as above where gcloud results:
ERROR: (gcloud.alpha.firebase.test.android.run) Matrix [matrix-2p3op1ukymruk] failed during validation: The app does not have a correctly formatted game-loop intent filter.
I might be wrong and some of those errors are due to my incorrect configuration. Please verify
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please address comments and update docs/index.md
and flank.yml
|
This is what I get when launched with flank and gcloud (it actually fails but you can see it's trying to run game-loop) copy-pasted config
|
I can reproduce it 10/10. Flank built from commit
|
@pawelpasterz Added manual tests have a look at the Debug.kt. Also added a semi-compatible android application that works without crashes. You can see the latest commit to see whats added. |
Codecov Report
@@ Coverage Diff @@
## master #1262 +/- ##
============================================
+ Coverage 79.65% 79.75% +0.10%
- Complexity 715 724 +9
============================================
Files 233 235 +2
Lines 4399 4485 +86
Branches 756 768 +12
============================================
+ Hits 3504 3577 +73
- Misses 496 510 +14
+ Partials 399 398 -1 |
Fixes #1245
adds the gameloop into android (androidtestloop)
Checklist