Skip to content

Test Methodology

Principles

  1. Reproducible before report: a test that can't be re-run doesn't enter the public record
  2. External ground truth: for each protocol we also verify with a third-party client (curl, mc, ssh, openssl) to distinguish AeroFTP regressions from server misconfig
  3. Integrity check: every heavy upload/download is verified with SHA-256
  4. Exit code first: every command must terminate with the correct exit code; textual output is secondary

Docker harness

Full local environment, containers exposed on localhost:

ServiceHost portProtocolCredentials
aeroftp-test-ftps2121FTP (vsftpd)ftpuser / password123
aeroftp-test-sftp2223SFTP (OpenSSH)user_key with key, user_pwd with password
aeroftp-test-webdav8080WebDAV (bytemark/webdav)webdavuser / password123
aeroftp-test-minio9000 / 9001S3 (MinIO)admin / password123

Quick start:

bash
docker compose up -d

Initial S3 bucket

bash
mc alias set test http://127.0.0.1:9000 admin password123
mc mb --ignore-existing test/aeroftp-test

Coverage Class and scoring

The Provider Coverage Matrix assigns each provider a Coverage Class (A, B, C, D) and a numeric score out of 100 derived from a deterministic, speed-independent rubric.

ClassLabelScoreMeaning
APrimary90-100Full matrix green, ready for critical workloads
BExtended70-89Core operations solid, minor gaps on advanced features
CCompatible50-69Base works, known non-blocking limitations
DObserver< 50Partially covered, not recommended for production

Rubric (100 pt total):

DimensionWeightWhat it measures
Core Operations30connect, ls, put, get, stat, mkdir, rm, mv
Data Integrity20SHA-256 end-to-end + hashsum parity
Navigation & Discovery15tree, find, head, cat, recursive stat
Advanced Features15share links, trash/restore, versions, server-side copy, quota
Encoding Robustness10unicode, spaces, special characters in file names
Reconciliation10check, sync-doctor, reconcile post-sync matches

Throughput is deliberately excluded from scoring: it depends on distance from the provider endpoint and local network conditions, not on the client implementation.

Matrix conventions

Symbols used in tables:

  • ✅ passes completely with verified integrity
  • ⚠️ passes with caveat (noted below the table)
  • ⏳ pending benchmark (dimension not yet consolidated for this provider)
  • ❌ fails
  • "-" not applicable / not tested

Matrices are plain HTML tables without custom styling. The test-reports section uses a full-width layout to host them even when the grid is dense.

What this suite is not

This suite is not:

  • a rigorous performance benchmark (that requires standardized hardware and non-loopback network)
  • a security certification (that lives in Security)
  • an API contract (that lives in CLI and MCP)

It's an operational regression-testing log, published for transparency.

aeroftp.app - Released under the GPL-3.0 License. AeroFTP Reviews