Skip to content

[FIAM] Replace hardcoded SDK version with Config.OLDEST_SDK #7059

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

rlazo
Copy link
Collaborator

@rlazo rlazo commented Jun 20, 2025

Tests will use the Config.OLDEST_SDK instead of a hardcoded SDK if the corresponding hardcoded SDK would be below our intended minSdk.

I'll also need to re-evaluate whether these tests are necessary to keep around, or if they are irrelevant when bumping the minSdk.

Related to cl/770033566

Updated the @config annotation in AnalyticsEventsManagerTest.java and ApiClientTest.java to use Config.OLDEST_SDK.
Copy link
Contributor

Firebase AI Mock Responses Check ⚠️

A newer major version of the mock responses for Firebase AI unit tests is available. update_responses.sh should be updated to clone the latest version of the responses: v14.1

Copy link
Contributor

📝 PRs merging into main branch

Our main branch should always be in a releasable state. If you are working on a larger change, or if you don't want this change to see the light of the day just yet, consider using a feature branch first, and only merge into the main branch when the code complete and ready to be released.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @rlazo, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refactors test configurations within the Firebase In-App Messaging module to enhance their robustness and adaptability. By replacing a specific hardcoded Android SDK version with a dynamic reference to Config.OLDEST_SDK, the tests will automatically align with the project's minimum supported SDK, reducing the need for manual updates when the minSdk is bumped.

Highlights

  • Test Configuration Update: Replaced hardcoded Android SDK version (22) with Config.OLDEST_SDK in Robolectric test configurations for AnalyticsEventsManagerTest and ApiClientTest. This change ensures that these tests automatically align with the project's minimum supported SDK version, improving maintainability.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@google-oss-bot
Copy link
Contributor

1 Warning
⚠️ Did you forget to add a changelog entry? (Add the 'no-changelog' label to the PR to silence this warning.)

Generated by 🚫 Danger

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates Robolectric test configurations to use Config.OLDEST_SDK instead of a hardcoded SDK version. This is a positive change for maintainability.

My review identified a likely test failure in ApiClientTest.java due to this change, as an existing test hardcodes the SDK version. I've provided a comment with a suggested fix. The change in AnalyticsEventsManagerTest.java appears safe and has no side effects.

@@ -52,7 +52,7 @@
import org.robolectric.annotation.Config;

@RunWith(RobolectricTestRunner.class)
@Config(manifest = Config.NONE, sdk = 22, qualifiers = "es")
@Config(manifest = Config.NONE, sdk = Config.OLDEST_SDK, qualifiers = "es")

Choose a reason for hiding this comment

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

high

While this change is good for maintainability, it will likely cause the getFiams_signalsContainsPlatformVersion test to fail because it asserts a hardcoded SDK version of "22".

You can find the assertion on line 213:

// sdk version set in roboelectric annotation above
assertThat(clientSignals.getPlatformVersion()).isEqualTo("22");

To fix this, please update the test to use Config.OLDEST_SDK for the comparison, which will make it resilient to future changes in the oldest SDK version. For example:

assertThat(clientSignals.getPlatformVersion()).isEqualTo(String.valueOf(Config.OLDEST_SDK));

@google-oss-bot
Copy link
Contributor

Copy link
Contributor

Test Results

 44 files   -  1 014   44 suites   - 1 014   1m 50s ⏱️ - 33m 34s
319 tests  -  5 666  317 ✅  -  5 646  1 💤  - 21  1 ❌ +1 
375 runs   - 11 658  372 ✅  - 11 617  2 💤  - 42  1 ❌ +1 

For more details on these failures, see this check.

Results for commit 1809f2f. ± Comparison against base commit 9b510c4.

This pull request removes 5666 tests.
com.google.android.datatransport.cct.CctBackendFactoryTest ‑ create_returnCCTBackend_WhenBackendNameIsCCT
com.google.android.datatransport.cct.CctDestinationTest ‑ cctDestination_shouldOnlySupportProtoAndJson
com.google.android.datatransport.cct.CctDestinationTest ‑ cctDestination_shouldSupportProtoAndJson
com.google.android.datatransport.cct.CctTransportBackendTest ‑ decorate_whenOffline_shouldProperlyPopulateNetworkInfo
com.google.android.datatransport.cct.CctTransportBackendTest ‑ decorate_whenOnline_shouldProperlyPopulateNetworkInfo
com.google.android.datatransport.cct.CctTransportBackendTest ‑ schedule_shouldAddCookieOnPseudonymousIds
com.google.android.datatransport.cct.CctTransportBackendTest ‑ schedule_shouldDropCookieOnMixedPseudonymousIds
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_CompressedResponseIsUncompressed
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_whenBackendRedirectsMoreThan5Times_shouldOnlyRedirect4Times
com.google.android.datatransport.cct.CctTransportBackendTest ‑ send_whenBackendRedirects_shouldCorrectlyFollowTheRedirectViaPost
…

@google-oss-bot
Copy link
Contributor

@google-oss-bot
Copy link
Contributor

Startup Time Report 1

Note: Layout is sometimes suboptimal due to limited formatting support on GitHub. Please check this report on GCS.

Notes

Startup Times

  • fire-fiam

    DeviceStatisticsDistributions
    oriole-32
    Percentile9b510c404b16a3DiffSignificant (?)
    p105.22 ±2 ms5.55 ±2 ms+326 μs (+6.2%)NO
    p255.58 ±2 ms5.92 ±2 ms+344 μs (+6.2%)NO
    p506.29 ±2 ms6.52 ±2 ms+229 μs (+3.6%)NO
    p757.25 ±2 ms7.55 ±2 ms+293 μs (+4.0%)NO
    p908.44 ±2 ms8.94 ±2 ms+496 μs (+5.9%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG
    redfin-30
    Percentile9b510c404b16a3DiffSignificant (?)
    p108.16 ±5 ms10.7 ±5 ms+2.50 ms (+30.6%)NO
    p258.71 ±5 ms11.8 ±6 ms+3.10 ms (+35.6%)NO
    p509.78 ±6 ms13.4 ±7 ms+3.61 ms (+36.9%)NO
    p7511.6 ±6 ms16.0 ±7 ms+4.39 ms (+37.9%)NO
    p9014.0 ±7 ms19.3 ±7 ms+5.27 ms (+37.7%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG
  • fire-fiamd

    DeviceStatisticsDistributions
    oriole-32
    Percentile9b510c404b16a3DiffSignificant (?)
    p107.38 ±3 ms8.28 ±3 ms+898 μs (+12.2%)NO
    p257.87 ±3 ms8.79 ±4 ms+922 μs (+11.7%)NO
    p508.61 ±4 ms9.67 ±4 ms+1.06 ms (+12.3%)NO
    p759.63 ±4 ms11.0 ±4 ms+1.36 ms (+14.1%)NO
    p9011.1 ±4 ms12.5 ±5 ms+1.42 ms (+12.8%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG
    redfin-30
    Percentile9b510c404b16a3DiffSignificant (?)
    p1010.2 ±5 ms13.5 ±8 ms+3.32 ms (+32.5%)NO
    p2510.7 ±5 ms14.7 ±9 ms+4.02 ms (+37.6%)NO
    p5011.6 ±5 ms16.3 ±9.8 ms+4.74 ms (+41.0%)NO
    p7513.1 ±6 ms18.6 ±11 ms+5.43 ms (+41.3%)NO
    p9015.6 ±7 ms21.3 ±11 ms+5.67 ms (+36.4%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG
  • timeToInitialDisplay

    DeviceStatisticsDistributions
    oriole-32
    Percentile9b510c404b16a3DiffSignificant (?)
    p10198 ±4 ms200 ±3 ms+2.50 ms (+1.3%)NO
    p25203 ±3 ms207 ±3 ms+4.44 ms (+2.2%)NO
    p50209 ±4 ms213 ±3 ms+4.66 ms (+2.2%)NO
    p75216 ±4 ms222 ±4 ms+5.41 ms (+2.5%)NO
    p90225 ±5 ms233 ±7 ms+7.43 ms (+3.3%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG
    redfin-30
    Percentile9b510c404b16a3DiffSignificant (?)
    p10225 ±7 ms248 ±5 ms+22.4 ms (+9.9%)MAYBE
    p25232 ±7 ms253 ±4 ms+21.5 ms (+9.3%)MAYBE
    p50239 ±9 ms262 ±5 ms+22.1 ms (+9.2%)NO
    p75249 ±12 ms271 ±6 ms+21.5 ms (+8.6%)NO
    p90260 ±15 ms283 ±5 ms+23.3 ms (+9.0%)NO

    19 test runs in comparison
    CommitTest Runs
    9b510c4
    • 2025-06-20_21:43:51.650907_CVMu
    • 2025-06-20_21:43:51.650950_tHuJ
    • 2025-06-20_21:43:51.650959_wNNT
    • 2025-06-20_21:43:51.650967_kXiu
    • 2025-06-20_21:43:51.650974_XEbc
    • 2025-06-20_21:43:51.650981_xOlN
    • 2025-06-20_21:43:51.650989_cSfz
    • 2025-06-20_21:43:51.650996_uMIs
    • 2025-06-20_21:43:51.651003_ihVf
    • 2025-06-20_21:43:51.651010_SzXi
    04b16a3
    • 2025-06-20_23:26:13.653445_eCUS
    • 2025-06-20_23:26:13.653499_pXXC
    • 2025-06-20_23:26:13.653508_BDbW
    • 2025-06-20_23:26:13.653515_OVBx
    • 2025-06-20_23:26:13.653536_jVnA
    • 2025-06-20_23:26:13.653544_zPFd
    • 2025-06-20_23:26:13.653551_EbXZ
    • 2025-06-20_23:26:13.653557_YRZD
    • 2025-06-20_23:26:13.653563_vTdG

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/Pav1A7AXWK/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants