Skip to content

Conformance 311#312

Merged
funkyshu merged 8 commits intomainfrom
conformance_311
Jan 26, 2026
Merged

Conformance 311#312
funkyshu merged 8 commits intomainfrom
conformance_311

Conversation

@funkyshu
Copy link
Member

@funkyshu funkyshu commented Jan 24, 2026

Fixes #311

@c2fo-cibot c2fo-cibot bot added the size/XXL Denotes a PR that changes 1000+ lines label Jan 24, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.go integration 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.

@funkyshu funkyshu merged commit 7b4db58 into main Jan 26, 2026
27 checks passed
@funkyshu funkyshu deleted the conformance_311 branch January 26, 2026 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/XXL Denotes a PR that changes 1000+ lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Convert Backend Test Suites to Conformance Tests

2 participants

Comments