Skip to content

Make the Sessions test app more convenient to test #7054

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

Merged
merged 1 commit into from
Jun 20, 2025

Conversation

mrober
Copy link
Contributor

@mrober mrober commented Jun 20, 2025

Make the Sessions test app more convenient to test

Initialize Firebase on the Application, not Activity, so it can be initialized in background services
Fixed the process name for older Android API levels
Made all the logcat tags be the same, so it will be easier to give test instructions like tag:SessionsTestApp tag:FirebaseSessions
Added 2 background services with easy actions to interact with in the background, e.g., am startservice -n com.google.firebase.testing.sessions/.MyServiceA -a PING

@mrober mrober requested review from tejasd and themiswang June 20, 2025 13:37
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

@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 @mrober, 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 significantly enhances the testability and convenience of the Firebase Sessions test application. The changes focus on improving the application's architecture for multi-process and background service testing by centralizing Firebase initialization, standardizing logging practices, and introducing dedicated background services with actionable commands. These improvements aim to streamline the process of verifying Firebase Sessions functionality under various application lifecycle conditions.

Highlights

  • Firebase Initialization Centralization: Firebase initialization has been moved from BaseActivity to TestApplication's onCreate method. This ensures Firebase is initialized at the application level, which is crucial for proper functioning and testing within background services and multi-process environments.
  • Standardized Logging and Process Name Resolution: The logcat tag has been unified to SessionsTestApp across the application, making log filtering and test instructions clearer. Additionally, the logic for determining the current process name has been centralized in TestApplication.Companion.myProcessName, including a robust fallback for older Android API levels (pre-P) by reading /proc/self/cmdline.
  • Introduction of Background Test Services: Two new background services, MyServiceA and MyServiceB, have been added. These services are exported and can be easily interacted with via adb shell commands (e.g., am startservice -n com.google.firebase.testing.sessions/.MyServiceA -a PING), enabling more convenient testing of Firebase Sessions behavior in background and multi-process scenarios, including crashes and process kills.
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

The pull request enhances the Sessions test app by initializing Firebase on the Application level, fixing the process name for older Android API levels, standardizing logcat tags, and adding background services for easier interaction. These changes improve the app's testability and convenience.

@google-oss-bot
Copy link
Contributor

Coverage Report 1

Affected Products

No changes between base commit (0aae9f1) and merge commit (9083017).

Test Logs

  1. https://storage.googleapis.com/firebase-sdk-metric-reports/6NsHepFDMV.html

Copy link
Contributor

Test Results

0 files   -  1 043  0 suites   - 1 043   0s ⏱️ - 35m 19s
0 tests  -  5 978  0 ✅  -  5 955  0 💤  - 22  0 ❌  - 1 
0 runs   - 11 866  0 ✅  - 11 821  0 💤  - 44  0 ❌  - 1 

Results for commit fcdf9d0. ± Comparison against base commit 0aae9f1.

@google-oss-bot
Copy link
Contributor

Size Report 1

Affected Products

No changes between base commit (0aae9f1) and merge commit (9083017).

Test Logs

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

@mrober mrober merged commit 2d8493c into sessions-sharedrepo Jun 20, 2025
28 of 29 checks passed
@mrober mrober deleted the mrober/testApp branch June 20, 2025 15:07
mrober added a commit that referenced this pull request Jun 20, 2025
Make the Sessions test app more convenient to test

Initialize Firebase on the Application, not Activity, so it can be
initialized in background services
Fixed the process name for older Android API levels
Made all the logcat tags be the same, so it will be easier to give test
instructions like `tag:SessionsTestApp tag:FirebaseSessions`
Added 2 background services with easy actions to interact with in the
background, e.g., `am startservice -n
com.google.firebase.testing.sessions/.MyServiceA -a PING`
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.

3 participants