"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
Find a file
Ole Frost 5e91b93e59 cmdtest: end-to-end test for commands, flags and environment variables
There was no easy way to automatically test the end-to-end functionality
of commands, flags, environment variables etc.

The need for end-to-end testing was highlighted by the issues fixed
in #5341. There was no automated test to continually verify current
behaviour, nor a framework to quickly test the correctness of the fixes.

This change adds an end-to-end testing framework in the cmdtest folder.
It has some simple examples in func TestCmdTest in cmdtest_test.go. The
tests should be readable by anybody familiar with rclone and look like
this:

    // Test the rclone version command with debug logging (-vv)
    out, err = rclone("version", "-vv")
    if assert.NoError(t, err) {
        assert.Contains(t, out, "rclone v")
        assert.Contains(t, out, "os/version:")
        assert.Contains(t, out, " DEBUG : ")
    }

The end-to-end tests are executed just like the Go unit tests, that is:

    go test ./cmdtest -v

The change also contains a thorough test of environment variables in
environment_test.go.

Thanks to @ncw for encouragement and introduction to the TestMain trick.
2021-07-05 16:38:20 +01:00
.github build: add gomobile android build 2021-04-30 20:39:04 +01:00
backend azureblob: Fix typo in Azure Blob help 2021-07-05 15:58:41 +01:00
bin bin/config.py: add --rc flag for testing to an rclone rcd #3455 2021-05-17 12:10:58 +01:00
cmd config: fixed issues with flags/options set by environment vars. 2021-07-05 16:38:20 +01:00
cmdtest cmdtest: end-to-end test for commands, flags and environment variables 2021-07-05 16:38:20 +01:00
contrib/docker Contrib: Add sample WebDAV server Docker Compose manifest. 2019-09-15 16:06:54 +01:00
docs cmdtest: end-to-end test for commands, flags and environment variables 2021-07-05 16:38:20 +01:00
fs config: fixed issues with flags/options set by environment vars. 2021-07-05 16:38:20 +01:00
fstest Use binary prefixes for size and rate units 2021-04-27 02:25:52 +03:00
graphics build: Add file properties and icon to Windows executable (fixes #4304) 2020-06-11 09:26:14 +01:00
lib b2: fix versions and .files with no extension - fixes #5244 2021-05-17 16:20:29 +01:00
librclone librclone: update docs for merge #4891 2021-04-28 20:42:00 +01:00
vfs vfs: do not print notice about missing poll-interval support when set to 0 2021-05-28 13:09:15 +02:00
.gitattributes build: add azure pipelines build 2019-08-06 10:31:32 +01:00
.gitignore Remove accidentally committed *.orig and *.rej files and ignore 2021-05-03 07:58:29 +01:00
.golangci.yml build: move linter build tags into Makefile to fix golangci-lint 2019-04-12 15:48:36 +01:00
CONTRIBUTING.md cmdtest: end-to-end test for commands, flags and environment variables 2021-07-05 16:38:20 +01:00
COPYING Initial commit - some small parts working 2012-11-18 17:32:31 +00:00
Dockerfile build: add an rclone user to the Docker image but don't use it by default 2021-02-11 17:45:44 +00:00
go.mod feat: Add lib/http 2021-04-28 22:54:15 +01:00
go.sum accounting: calculate rolling average speed 2021-07-05 16:27:33 +01:00
MAINTAINERS.md compress: finish docs 2020-12-02 16:30:02 +01:00
Makefile build: add missing BUILD_FLAGS to compile_only to speed up other_os build 2021-03-15 19:22:07 +00:00
MANUAL.html Version v1.55.0 2021-03-31 19:12:08 +01:00
MANUAL.md Version v1.55.0 2021-03-31 19:12:08 +01:00
MANUAL.txt Version v1.55.0 2021-03-31 19:12:08 +01:00
notes.txt docs: spelling: etc. 2020-10-28 18:16:23 +00:00
rclone.1 Version v1.55.0 2021-03-31 19:12:08 +01:00
rclone.go lib: add plugin support 2019-09-29 11:05:10 +01:00
README.md deprecate cache backend (#5382) 2021-06-10 19:52:55 +03:00
RELEASE.md build: update notes on how to build the release manually with docker 2021-03-24 14:22:27 +00:00
VERSION Start v1.56.0-DEV development 2021-03-31 19:51:43 +01:00

rclone logo

Website | Documentation | Download | Contributing | Changelog | Installation | Forum

Build Status Go Report Card GoDoc Docker Pulls

Rclone

Rclone ("rsync for cloud storage") is a command line program to sync files and directories to and from different cloud storage providers.

Storage providers

Please see the full list of all storage providers and their features

Features

  • MD5/SHA-1 hashes checked at all times for file integrity
  • Timestamps preserved on files
  • Partial syncs supported on a whole file basis
  • Copy mode to just copy new/changed files
  • Sync (one way) mode to make a directory identical
  • Check mode to check for file hash equality
  • Can sync to and from network, e.g. two different cloud accounts
  • Optional large file chunking (Chunker)
  • Optional transparent compression (Compress)
  • Optional encryption (Crypt)
  • Optional FUSE mount (rclone mount)
  • Multi-threaded downloads to local disk
  • Can serve local or remote files over HTTP/WebDav/FTP/SFTP/dlna

Installation & documentation

Please see the rclone website for:

Downloads

License

This is free software under the terms of MIT the license (check the COPYING file included in this package).