bats: add remotes-s3 covering minio and aws s3
Five tests need no network and always run: adding a plain and a routed remote, and the three url validations, unknown parameter, non-boolean path-style, and credentials embedded in the url. The rest exercise real providers. The minio tests start and stop their own server, following how the git ssh tests manage sshd: helper/s3-common.bash provides setup_minio and teardown_minio, one server per test on a port from definePORT, the pid captured and killed in teardown, and a skip when the binary is absent. Nothing is left running for the life of the job. CI only installs the binary into .ci_bin, which is already on PATH. The aws tests run against a real bucket and are gated on DOLT_BATS_AWS_BUCKET; unlike aws://, they need no DynamoDB table, so that bucket is all they require. Each provider gets the same round trip: push, clone, verify the row count, push again, pull. The second push earns its place because creating a manifest and replacing one take different conditional-write paths, If-None-Match against If-Match. The two url shapes differ on purpose. MinIO needs endpoint, region and path-style in the query string, the last because it has no wildcard DNS for virtual-hosted buckets; against AWS the SDK resolves the endpoint from the region, so the url is bucket and database alone. setup_minio also points the credential chain at MinIO, because the job exports real AWS credentials for the aws:// tests and MinIO rejects both those keys and the session token a role-assumed identity carries. Each bats test runs in its own subshell, so this does not leak to the aws tests. stdio is redirected to /dev/null for the same reason setup_git_sshd does it: otherwise the server holds bats' pipes open and bats never reaches EOF. Verified locally: 8 run and 2 skip with a role-shaped AWS key and session token in the environment, no minio process or listening socket survives the run, and every network test skips cleanly when nothing is configured. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
N
Neil Macneale IV committed
05eed7f6aff3dde25a8fff373d47c06367eb49f4
Parent: 4486673