Skip to content

emulator 37 testing#9515

Merged
yschimke merged 2 commits into
lysine-dev:masterfrom
yschimke:claude/emulator-setup-testing-ech-i2yi9i
Jun 27, 2026
Merged

emulator 37 testing#9515
yschimke merged 2 commits into
lysine-dev:masterfrom
yschimke:claude/emulator-setup-testing-ech-i2yi9i

Conversation

@yschimke

Copy link
Copy Markdown
Collaborator

No description provided.

yschimke added 2 commits June 27, 2026 20:16
Refactor the android CI job to drive the emulator matrix off an explicit
target/arch include list and add an experimental, non-blocking API 37
(16 KB page-size) entry. Warm the Gradle cache by assembling the
instrumentation APK instead of running the Robolectric unit tests, match
the snapshot boot options on the run step so cached snapshots restore,
and bump emulator memory/GPU/feature flags for headless runs.

Extracted from the testing_ech branch so the emulator setup can land
ahead of the ECH work.
Three environmental differences surface on the API 37 emulator image and
make connectedCheck fail there:

- The GmsCore Conscrypt provider negotiates TLS 1.3 (not 1.2) from API 37
  onward, so assert the version conditionally.
- The dual-stack loopback tries the unbound address first, emitting a
  ConnectStart/ConnectFailed pair before the successful connect; filter
  those pairs out so the event-sequence assertion is stable across single-
  and dual-stack environments.
- Peer verification failures can arrive wrapped (as a cause or suppressed
  exception) rather than thrown directly; accept any of those shapes.

These are independent of the Android 17 platform/ECH work, so they can
land with the emulator CI setup ahead of it.
@yschimke

Copy link
Copy Markdown
Collaborator Author

@swankjesse requesting post review. Want API 37 landed for two separate prs.

@yschimke
yschimke merged commit 359febc into lysine-dev:master Jun 27, 2026
25 checks passed

@swankjesse swankjesse left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

runs-on: ubuntu-latest
timeout-minutes: 30
# The pre-release API 37 emulator image is still maturing, so let the entry marked
# experimental fail without blocking the build until the image is stable on CI.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

-no-boot-anim
-camera-back none
-memory 2048
-memory ${{ matrix.memory || '2048' }}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

doing matrix + defaults is nice

fail<Any>("")
} catch (_: SSLPeerUnverifiedException) {
} catch (e: Exception) {
// The API 37 emulator can surface the verification failure wrapped (as a cause or a

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aww, that’s a regression. Does that impact RetryAndFollowUpInterceptor ?

}

/**
* Returns these events with failed connection attempts removed. On a dual-stack loopback the

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder how many other users will get impacted by this?!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants