Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Refactors backend/testsuite into an exported conformance test suite so individual backends (including contrib) can run standardized integration tests directly, while keeping the centralized VFS_INTEGRATION_LOCATIONS runner.
Changes:
- Exported reusable conformance test entry points (filesystem/location/file + IO behaviors) from
backend/testsuite. - Added per-backend
conformance_test.gointegration tests for core backends and new documentation explaining usage. - Updated dependencies and minor backend improvements (mem seek bounds, preallocs, GCS context import).
Reviewed changes
Copilot reviewed 25 out of 26 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| go.mod | Bumps Go version and updates core dependencies (AWS/Azure/GCP, x/net, google api). |
| go.sum | Updates dependency checksums to match module upgrades. |
| docs/conformance_tests.md | Adds detailed documentation for running conformance tests per-backend and centrally. |
| docs/backend.md | Adds a “Testing Your Backend” section linking to conformance tests. |
| backend/testsuite/io_integration_test.go | Simplifies IO integration runner to call exported IO conformance functions and registers backends via backend/all. |
| backend/testsuite/io_conformance.go | Introduces exported IO conformance helpers and test case definitions. |
| backend/testsuite/doc.go | Updates package documentation to describe exported conformance entry points and usage patterns. |
| backend/testsuite/conformance.go | Adds exported conformance runners for filesystem/location/file behavior. |
| backend/testsuite/backend_integration_test.go | Refactors centralized runner to call exported conformance tests and retains GS-specific assertions. |
| backend/sftp/conformance_test.go | Adds per-backend SFTP conformance + IO integration tests behind vfsintegration tag. |
| backend/s3/conformance_test.go | Adds per-backend S3 conformance + IO integration tests behind vfsintegration tag. |
| backend/os/conformance_test.go | Adds per-backend OS conformance + IO integration tests behind vfsintegration tag. |
| backend/mem/readwriteseeker.go | Adds seek upper-bound validation to prevent int overflow. |
| backend/mem/fileSystem.go | Preallocates key slice capacity for efficiency. |
| backend/mem/file.go | Adds seek-position bounds check before updating internal state. |
| backend/mem/conformance_test.go | Adds per-backend mem conformance + IO integration tests behind vfsintegration tag. |
| backend/gs/options.go | Adds linter suppression comment for deprecated-but-functional credentials option. |
| backend/gs/location_test.go | Preallocates slice capacity for efficiency. |
| backend/gs/fileSystem.go | Switches to standard context import (removes x/net/context). |
| backend/gs/conformance_test.go | Adds per-backend GS conformance + IO integration tests behind vfsintegration tag. |
| backend/ftp/options.go | Preallocates cipher suite slice capacity for efficiency. |
| backend/ftp/conformance_test.go | Adds per-backend FTP conformance + IO integration tests behind vfsintegration tag. |
| backend/azure/conformance_test.go | Adds per-backend Azure conformance + IO integration tests behind vfsintegration tag. |
| README.md | Links to new conformance test documentation. |
| CHANGELOG.md | Documents new conformance test exports, per-backend tests, docs, and dependency updates. |
| .testcoverage.yml | Excludes conformance helper sources from coverage thresholds. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ce3ba89 to
195d4d7
Compare
- Add exported RunConformanceTests, RunFileSystemTests, RunLocationTests, RunFileTests, and RunIOTests functions - Add conformance_test.go to each core backend (s3, gs, azure, os, mem, sftp, ftp) - Add docs/conformance_tests.md and update testsuite doc.go
…r needed. Move gs-specific test to gs conformance test
bc137df to
4423373
Compare
dmcilvain44
approved these changes
Jan 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #311