Skip to content

feat(consistent handling): Integration tests for creating symlinks with updated representation #4429

Merged
anushka567 merged 12 commits intomasterfrom
e2e-test-create-symlink
Mar 23, 2026
Merged

feat(consistent handling): Integration tests for creating symlinks with updated representation #4429
anushka567 merged 12 commits intomasterfrom
e2e-test-create-symlink

Conversation

@anushka567
Copy link
Copy Markdown
Member

@anushka567 anushka567 commented Mar 3, 2026

Description

This PR introduces a new suite of integration tests to validate the consistent handling of symbolic links in GCSFuse . It verifies that GCSFuse correctly creates and recognizes symlinks using both the updated (Standard) representation and the backward-compatible (Legacy) representation .

Context: go/sts-consistent-symlink-handling-in-gcsfuse

Link to the issue in case of a bug fix.

b/488952648

Testing details

  1. Manual - Yes.
  2. Unit tests - Added as part of feat(consistent symlink): changes for CreateSymlink flow for updated representation #4424
  3. Integration tests - Automated. Link to successful run prior to rename only change - #15391

Any backward incompatible change? If so, please explain.

No.

@anushka567 anushka567 force-pushed the isSymlink-changes branch 3 times, most recently from 785688d to b8436c9 Compare March 16, 2026 11:17
@anushka567 anushka567 force-pushed the e2e-test-create-symlink branch 3 times, most recently from 132e741 to b5e84ed Compare March 16, 2026 15:18
@anushka567 anushka567 added execute-integration-tests-on-zb To run E2E tests on zonal bucket. execute-integration-tests Run only integration tests labels Mar 17, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (b93e4e0) to head (ec62c31).
⚠️ Report is 15 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #4429       +/-   ##
==========================================
- Coverage   83.35%       0   -83.36%     
==========================================
  Files         163       0      -163     
  Lines       20000       0    -20000     
==========================================
- Hits        16671       0    -16671     
+ Misses       2712       0     -2712     
+ Partials      617       0      -617     
Flag Coverage Δ
unittests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@anushka567 anushka567 force-pushed the e2e-test-create-symlink branch from bce14a3 to 2c54803 Compare March 17, 2026 09:20
@anushka567 anushka567 changed the base branch from isSymlink-changes to master March 17, 2026 09:20
@anushka567 anushka567 marked this pull request as ready for review March 17, 2026 09:27
@anushka567 anushka567 requested review from a team and Tulsishah as code owners March 17, 2026 09:27
@github-actions github-actions Bot added the remind-reviewers Auto remind reviewers in attention set for review post 24hrs of inactivity on PR. label Mar 17, 2026
@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 enhances the GCSFuse testing framework by adding a dedicated set of integration tests for symbolic link management. The primary goal is to ensure robust and consistent behavior when creating and interpreting symlinks, covering both modern 'Standard' and older 'Legacy' representations. This change improves the reliability of GCSFuse's symlink functionality by providing automated validation.

Highlights

  • New Integration Tests for Symlink Handling: Introduced a new suite of integration tests to validate the consistent handling of symbolic links within GCSFuse.
  • Standard and Legacy Symlink Validation: The tests specifically verify that GCSFuse correctly creates and recognizes symlinks using both the updated (Standard) representation and the backward-compatible (Legacy) representation.
  • Test Configuration Updates: Updated the test runner script and configuration files to include and enable the execution of these new symlink handling tests.
Changelog
  • tools/integration_tests/improved_run_e2e_tests.sh
    • Added 'symlink_handling' to the list of common test packages to be executed.
  • tools/integration_tests/symlink_handling/create_symlink_test.go
    • Added a new Go test file containing BaseSymlinkSuite, StandardSymlinksTestSuite, and LegacySymlinksTestSuite to test the creation and validation of symlinks under different configurations.
  • tools/integration_tests/symlink_handling/symlink_handling_test.go
    • Added a new Go test file that defines the test environment, constants for symlink metadata keys, and the TestMain function for setting up and running symlink handling integration tests.
  • tools/integration_tests/test_config.yaml
    • Added a new 'symlink_handling' section to the YAML configuration, specifying test runs for both standard and legacy symlinks with their respective flags and compatibility settings.
  • tools/integration_tests/util/test_suite/config.go
    • Extended the Config struct to include a SymlinkHandling field, allowing configuration of symlink-related tests.
Activity
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.

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.

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 introduces integration tests for creating symbolic links, covering both standard and legacy representations. The changes are well-structured, adding a new symlink_handling test package and updating the necessary test configurations. The tests correctly validate the underlying GCS object representation for both symlink types. I've identified a couple of issues: one is a potential for silent failures in the test setup due to an unhandled error, and the other is a configuration mismatch that would prevent the new tests from running when using the test configuration file. I've provided suggestions to address these points.

Comment thread tools/integration_tests/test_config.yaml Outdated
Comment thread tools/integration_tests/test_config.yaml Outdated
Comment thread tools/integration_tests/symlink_handling/create_symlink_test.go Outdated
Comment thread tools/integration_tests/symlink_handling/create_symlink_test.go Outdated
Comment thread tools/integration_tests/symlink_handling/create_symlink_test.go
@github-actions
Copy link
Copy Markdown

Hi @Tulsishah, your feedback is needed to move this pull request forward. This automated reminder was triggered because there has been no activity for over 24 hours. Please provide your input when you have a moment. Thank you!

1 similar comment
@github-actions
Copy link
Copy Markdown

Hi @Tulsishah, your feedback is needed to move this pull request forward. This automated reminder was triggered because there has been no activity for over 24 hours. Please provide your input when you have a moment. Thank you!

Comment thread tools/integration_tests/symlink_handling/symlink_suites_test.go
@anushka567 anushka567 removed execute-integration-tests Run only integration tests execute-integration-tests-on-zb To run E2E tests on zonal bucket. labels Mar 23, 2026
@anushka567 anushka567 merged commit ed82d5a into master Mar 23, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consistent-symlink-support remind-reviewers Auto remind reviewers in attention set for review post 24hrs of inactivity on PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants