Skip to content

fix(test): isolate cache directory for downloader tests#4812

Open
geertj wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
geertj:fix/downloader-test-isolation
Open

fix(test): isolate cache directory for downloader tests#4812
geertj wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
geertj:fix/downloader-test-isolation

Conversation

@geertj

@geertj geertj commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Use os.MkdirTemp to create a unique temporary cache directory for each downloaderTest run instead of using a shared directory in $HOME. Creating a temporary directory under a fixed name in $HOME is unsafe and leads to test interference and resource conflicts when running tests in parallel.

TAG=agy
CONV=ac1f66fe-728b-45e3-88c1-8e5f724a1f6f

@geertj geertj requested a review from a team as a code owner June 27, 2026 20:13
@geertj geertj requested a review from abhishek10004 June 27, 2026 20:13
@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 improves the reliability of the downloader test suite by eliminating potential resource conflicts and test interference. By moving away from a hardcoded directory in the user's home folder to dynamically generated temporary directories, the tests can now safely run in parallel without side effects.

Highlights

  • Test Isolation: Replaced the shared global cache directory with unique temporary directories created via os.MkdirTemp for each test run.
  • Resource Management: Updated the downloader test suite to manage its own cache directory lifecycle, ensuring proper cleanup during teardown.
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 the 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 counterproductive. 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.

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

Copy link
Copy Markdown
Contributor

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 replaces the hardcoded global cacheDir with a dynamically generated temporary directory (dt.cacheDir) using os.MkdirTemp in the downloader tests, improving test isolation and cleanup. The reviewer suggests using AssertEq instead of ExpectEq when verifying the temporary directory creation to fail fast, and advises checking if dt.fakeStorage is nil in TearDown to prevent potential nil pointer panics if setup fails early.

Comment thread internal/cache/file/downloader/downloader_test.go Outdated
Use os.MkdirTemp to create a unique temporary cache directory for each
downloaderTest run instead of using a shared directory in $HOME. Creating
a temporary directory under a fixed name in $HOME is unsafe and leads to
test interference and resource conflicts when running tests in parallel.

TAG=agy
CONV=ac1f66fe-728b-45e3-88c1-8e5f724a1f6f
@geertj geertj force-pushed the fix/downloader-test-isolation branch from c40685c to cf49df4 Compare June 27, 2026 20:28
@geertj geertj requested a review from charith87 June 30, 2026 11:23
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.

1 participant