Skip to content

Update and Refactor PLT-1.3#5394

Open
AmrNJ wants to merge 9 commits intomainfrom
AmrNJ-patch-5
Open

Update and Refactor PLT-1.3#5394
AmrNJ wants to merge 9 commits intomainfrom
AmrNJ-patch-5

Conversation

@AmrNJ
Copy link
Copy Markdown
Contributor

@AmrNJ AmrNJ commented Apr 28, 2026

Refactored breakout subscription test to improve stream handling, path/value verification, and line card discovery.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 the breakout subscription test suite to improve the reliability and accuracy of gNMI stream handling and component verification. By moving to a buffered channel-based stream reader and enhancing the logic for parsing and verifying OpenConfig notifications, the changes ensure that the tests can correctly interpret state updates even when they are grouped or nested. Additionally, the update improves line card discovery and adds necessary stability fixes for reboot-related test scenarios.

Highlights

  • Stream Handling Refactor: Introduced a dedicated goroutine and buffered channel (startStreamReader) to safely handle gRPC stream notifications, preventing potential concurrency issues during test execution.
  • Verification Logic Improvements: Enhanced verifyNotificationPaths and verifyUpdateValue to better handle parent-level grouping and JSON-encoded values, improving the robustness of state verification.
  • Line Card Discovery: Updated findLinecardFromPort to dynamically traverse the OpenConfig component hierarchy, making line card identification more reliable across different device types.
  • Test Stability: Increased timeout values and added channel draining mechanisms to ensure tests are less flaky and more resilient to control plane latency.
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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 pull request 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 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

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.

@OpenConfigBot
Copy link
Copy Markdown

OpenConfigBot commented Apr 28, 2026

@AmrNJ AmrNJ marked this pull request as ready for review April 28, 2026 06:51
@AmrNJ AmrNJ requested a review from a team as a code owner April 28, 2026 06:51
Copy link
Copy Markdown
Contributor

@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 refactors the breakout subscription test to enhance reliability and hardware compatibility. It introduces a channel-based gNMI stream reader to prevent concurrency issues and replaces regex-based linecard identification with dynamic gNMI hierarchy traversal. Additionally, verification logic is updated to handle grouped JSON updates and vendor-specific statuses. Feedback highlights critical issues including potential panics due to missing port count validations, a missing 'slices' package import, and logic errors in linecard quantity checks.

Comment thread feature/platform/tests/breakout_subscription_test/breakout_subscription_test.go Outdated
Comment thread feature/platform/tests/breakout_subscription_test/breakout_subscription_test.go Outdated
Comment thread feature/platform/tests/breakout_subscription_test/breakout_subscription_test.go Outdated
AmrNJ and others added 4 commits April 28, 2026 13:37
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@ram-mac
Copy link
Copy Markdown
Contributor

ram-mac commented Apr 29, 2026

@AmrNJ - There are static failure checks, fix them

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