Nick Craig-Wood
3245c0ae0d
fstests: add integration test for uploading empty files
...
This tests a remote can upload empty files. If the remote can't
upload empty files it should return fs.ErrorCantUploadEmptyFiles.
2019-06-30 18:35:01 +01:00
Aleksandar Jankovic
f78cd1e043
Add context propagation to rclone
...
- Change rclone/fs interfaces to accept context.Context
- Update interface implementations to use context.Context
- Change top level usage to propagate context to lover level functions
Context propagation is needed for stopping transfers and passing other
request-scoped values.
2019-06-19 11:59:46 +01:00
Cnly
fb1bbecb41
fstests: add FsRootCollapse test - #3164
2019-06-06 15:48:46 +01:00
Nick Craig-Wood
7c4fe3eb75
local: define OpenWriterAt interface and test and implement it #2252
...
This will enable multipart downloads in future commits
2019-05-11 23:35:19 +01:00
Nick Craig-Wood
49d2ab512d
test_all: run restic integration tests against local backend
2019-05-01 16:09:50 +01:00
Fabian Möller
48c09608ea
fix spelling
2019-04-30 14:12:18 +02:00
Nick Craig-Wood
2f21aa86b4
fstest: add tests for coverage of optional methods for wrapping Fs
2019-04-16 13:33:10 +01:00
Nick Craig-Wood
16d8014cbb
build: drop support for go1.8
2019-04-15 21:49:58 +01:00
Nick Craig-Wood
ac7e1dbf62
test_all: add the vfs tests to the integration tests
...
Fix failing tests for some remotes
2019-03-17 14:56:17 +00:00
Nick Craig-Wood
7267d19ad8
fstest: Use walk.ListR for listing
2019-03-16 17:41:12 +00:00
Nick Craig-Wood
efd720b533
walk: Implement walk.ListR which will use ListR if at all possible
...
It otherwise has the nearly the same interface as walk.Walk which it
will fall back to if it can't use ListR.
Using walk.ListR will speed up file system operations by default and
use much less memory and start immediately compared to if --fast-list
had been supplied.
2019-03-16 17:41:12 +00:00
jaKa
118a8b949e
koofr: implemented a backend for Koofr cloud storage service.
...
Implemented a Koofr REST API backend.
Added said backend to tests.
Added documentation for said backend.
2019-03-06 13:41:43 +00:00
Nick Craig-Wood
578d00666c
test_all: make -clean not give up on the first error
2019-02-07 11:29:52 +00:00
Nick Craig-Wood
a838add230
fstests: skip chunked uploading tests with -short
2019-02-03 12:28:44 +00:00
Cnly
cd46ce916b
fstests: ensure Fs.Put and Object.Update don't panic on unknown-sized uploads
2019-02-03 11:47:57 +00:00
Nick Craig-Wood
6b3a9bf26a
build: fix problems found by the deadcode linter
2019-02-02 11:45:07 +00:00
Nick Craig-Wood
1318c6aec8
s3: Add Alibaba OSS to integration tests and fix storage classes
2019-01-12 20:41:47 +00:00
Nick Craig-Wood
f29757de3b
test_all: make a way of ignoring integration test failures
...
Use this to ignore known failures
2019-01-12 20:18:05 +00:00
Nick Craig-Wood
f397c35935
fstest/test_all: add alternate s3 and swift providers to the integration tests
2019-01-12 18:33:31 +00:00
Nick Craig-Wood
2e6ef4f6ec
test_all: fix run with -remotes that aren't in the config file
2019-01-10 10:59:32 +00:00
Cnly
3220acc729
fstests: fix TestFsName fails when using remote:with/path
2018-12-29 09:34:04 +00:00
Nick Craig-Wood
26b5f55cba
Update after goimports change
2018-12-04 10:11:57 +00:00
Nick Craig-Wood
bb10a51b39
test_all: limit to go1.11 so the template used is supported
2018-11-23 17:17:19 +00:00
Nick Craig-Wood
df01f7a4eb
test_all: fix regexp for retrying nested tests
2018-11-23 17:17:19 +00:00
Nick Craig-Wood
31e2ce03c3
fstests: re-arrange backend integration tests so they can be retried
...
Before this change backend integration tests depended on each other,
so tests could not be retried.
After this change we nest tests to ensure that tests are provided with
the starting state they expect.
Tell the integration test runner that it can retry backend tests also.
This also includes bin/test_independence.go which runs each test
individually for a backend to prove that they are independent.
2018-11-22 20:12:12 +00:00
Nick Craig-Wood
141c133818
fstest: Wait for longer if neccessary in TestFsChangeNotify
2018-11-16 07:45:24 +00:00
Nick Craig-Wood
0f03e55cd1
fstests: ignore main directory creation in TestFsChangeNotify
2018-11-15 18:39:28 +00:00
Nick Craig-Wood
9e6ba92a11
fstests: attempt to fix TestFsChangeNotify flakiness
...
This now uses testPut to upload the test files which will retry on
errors properly.
2018-11-15 18:39:28 +00:00
Nick Craig-Wood
762561f88e
fstest: factor out retry logic from put code and make testPut return the object too
2018-11-15 18:39:28 +00:00
Nick Craig-Wood
084fe38922
fstests: fixes the integration test errors running crypt over swift.
...
Skip tests involving errors creating or removing dirs on non root
bucket based fs
2018-11-15 18:39:28 +00:00
Nick Craig-Wood
f92beb4e14
fstest: Fix TestPurge causing errors with subsequent tests on azure
...
Before this change TestPurge would remove a container and subsequent
tests would fail because the container was still being deleted so
couldn't be created.
This was fixed by introducing an fstest.NewRunIndividual() test runner
for TestPurge which causes the test to be run on a new container.
2018-11-14 17:14:02 +00:00
Nick Craig-Wood
a379eec9d9
fstest/mockfs: create mock fs.Fs for testing
2018-11-02 17:32:20 +00:00
Nick Craig-Wood
38a89d49ae
fstest/test_all: tidy HTML report
...
- link test number to online copy
- style links
- attempt to make a nicer colour scheme
2018-10-25 11:33:17 +01:00
Nick Craig-Wood
b0db08fd2b
fstest/test_all: constrain to go1.10 and above
2018-10-24 21:33:42 +01:00
Nick Craig-Wood
07addf74fd
fstest/test_all: upload a copy of the report to "current"
2018-10-24 12:21:07 +01:00
Nick Craig-Wood
52c7c738ca
fstest/test_all: limit concurrency and run tests in random order
2018-10-24 10:46:58 +01:00
Nick Craig-Wood
5c32b32011
fstest/test_all: fix directories that tests are run in
...
- Don't build a binary for backend tests
- Run tests in their relevant directories
2018-10-23 17:31:11 +01:00
Nick Craig-Wood
fbab1e55bb
fstest/test_all: adapt to nested test definitions
2018-10-23 16:56:35 +01:00
Nick Craig-Wood
1bfd07567e
fstest/test_all: add oneonly flag to only run one test per backend if required
2018-10-23 14:07:48 +01:00
Nick Craig-Wood
f97c4c8d9d
fstest/test_all: rework integration tests to improve output
...
- Make integration tests use a config file
- Output individual logs for each test
- Make HTML report and open browser
- Optionally email and upload results
2018-10-23 14:07:48 +01:00
Fabian Möller
15ce0ae57c
fstests: fix maximum tested size in TestFsPutChunked
...
Before this it was possible hat maxChunkSize was incorrectly set to 200.
2018-10-16 11:50:47 +02:00
Nick Craig-Wood
c3a8eb1c10
fstests: make findObject() sleep a bit longer to fix b2 largePut tests
2018-10-14 14:45:23 +01:00
Nick Craig-Wood
eb8130f48a
fstests: update TestPublicLink comment to show how to run solo
2018-10-14 14:17:05 +01:00
Nick Craig-Wood
6fea75afde
fstests: fix upload offsets not being set and redownload test files
...
In chunked upload tests:
- Add ability to set upload offset
- Read back the uploaded file to check it is OK
2018-10-13 22:49:12 +01:00
Fabian Möller
57273d364b
fstests: add TestFsPutChunked
2018-10-11 14:47:58 +01:00
Fabian Möller
c00ec0cbe4
fstests: add ChunkedUploadConfig
2018-10-11 14:47:58 +01:00
Fabian Möller
1eec59e091
fs: update ChangeNotifier interface
...
This introduces a channel to the ChangeNotify function, which can be
used to update the poll-interval and cleanly exit the polling function.
2018-09-25 14:01:13 +02:00
sandeepkru
b94d87ae2d
azureblob and fstests - Modify integration tests to include new
...
optional setting to test SetTier on only few supported tiers.
Remove unused optional interface ListTiers and backend and internal tests
2018-09-18 13:56:09 +01:00
sandeepkru
9594fd0a0c
fstests: Added integration tests on SetTier operation
2018-09-12 21:09:08 +01:00
Nick Craig-Wood
e05ec2b77e
fstests: Allow object name and fs check to be skipped
2018-09-07 15:14:08 +01:00
Felix Brucker
9e3ea3c6ac
union: Implement union backend which reads from multiple backends
2018-09-07 15:14:08 +01:00
albertony
3fccce625c
jottacloud: add --fast-list support - fixes #2532
2018-09-07 12:49:39 +01:00
Nick Craig-Wood
32ab4e9ac6
pcloud: delete half uploaded files on upload error
...
Sometimes pcloud will leave a half uploaded file when the transfer
actually failed. This patch deletes the file if it exists.
This problem was spotted by the integration tests.
2018-09-01 10:01:02 +01:00
Nick Craig-Wood
58339a5cb6
fstests: In TestFsPutError reliably provoke test failure
...
This change to go1.11 causes the TestFsPutError test to fail
https://go-review.googlesource.com/c/go/+/114316
This is because it now passes the half written file to the backend
whereas it didn't previously because of the buffering.
In this commit the size of the data written was increased to 5k from
50 bytes to provoke the test failure under go1.10 also.
2018-08-16 15:52:15 +01:00
Sebastian Bünger
10ed455777
New backend: Jottacloud
2018-08-10 11:14:34 +01:00
Nick Craig-Wood
f7c0b2407d
drive: add docs for --fast-list and add to integration tests
2018-08-06 21:38:50 +01:00
Oleg Kovalov
06c9f76cd2
all: fix go-critic linter suggestions
2018-08-06 21:14:03 +01:00
Stefan
4009fb67c8
fs: calculate ModifyWindow each time on the fly instead of relying on global state - see #2319 , #2328
2018-06-03 20:45:34 +02:00
Nick Craig-Wood
cdde8fa75a
opendrive: finish off #1026
...
* Fix errcheck and golint warnings
* Remove unused constants and fix comments
* Parse error responses properly
* Fix Open with RangeOption
* Fix Move, Copy and DirMove
* Implement DirCacheFlush
* Check interfaces are correct
* Remove debugs and update overview
* Correct feature flags
* Pare replacement characters down to the minimum set
* Add to the integration tests
2018-05-12 10:10:46 +01:00
Nick Craig-Wood
ad02d1be3f
fstest: update comments on how to run individual tests
2018-05-11 14:04:36 +01:00
Nick Craig-Wood
f1ffe8e309
fstests: fix test crash if NewFs fails
2018-05-11 08:43:53 +01:00
Nick Craig-Wood
9698a2babb
gcs: low level retry all operations if necessary
...
Google cloud storage doesn't normally need retries, however certain
things (eg bucket creation and removal) are rate limited and do
generate 429 errors.
Before this change the integration tests would regularly blow up with
errors from GCS rate limiting bucket creation and removal.
After this change we low level retry all operations using the same
exponential backoff strategy as used in the google drive backend.
2018-05-10 09:24:09 +01:00
Fabian Möller
9fdf273614
fs: improve ChunkedReader
...
- make Close permanent and return errors afterwards
- use RangeSeek from the wrapped reader if present
- add a limit to chunk growth
- correct RangeSeek interface behavior
- add tests
2018-05-05 12:49:42 +01:00
Nick Craig-Wood
9fbc40c5b9
fstests: List missing dir must return ErrorDirNotFound for non bucket based remotes
...
List or ListR of an non existent directory must return
ErrorDirNotFound for non bucket based remotes. For bucket based
remotes it may return ErrorDirNotFound or it may return no error and
no entries.
2018-04-20 23:22:46 +01:00
Nick Craig-Wood
1f255a8567
Add a mega.nz remote #163
...
Not supported yet:
* Hash
* ModTime
* Server Side Copy
Otherwise fully functional and passing all the tests.
2018-04-18 21:09:54 +01:00
Nick Craig-Wood
1ac6dacf0f
about: complete other providers and re-work internals
...
* Implement about for:
* local, crypt, cache, drive, swift, hubic, onedrive, pcloud, dropbox
* Implement `--json` and `---full` flag for `rclone about`
* change About interface to return a Usage structure
* Remove operations.About as it is too thin an interface
* Implement Integration test
Relates to #1138 and #1564
2018-04-17 21:53:27 +01:00
Nick Craig-Wood
3d5106e52b
drive: fix DirMove leaving a hardlinked directory behind #2245
...
This bug was introduced by the v3 API conversion in 07f20dd1fd
.
The problem was that dircache.FindPath doesn't work for the root directory.
This adds an internal error for dircache.FindPath being called with
the root directory. This makes a failing test, which the fix to the
drive backend fixes.
This also improves the DirCache integration test.
2018-04-15 10:12:21 +01:00
Nick Craig-Wood
29ce1c2747
fstest: fix CheckListingWithPrecision with non Windows safe chars
...
* Factor WinPath from fstest to fstests
* Use it to normalize the directory names while checking them
2018-04-15 10:12:20 +01:00
Antoine GIRARD
1f681e585b
fstests: fix typo
2018-04-13 13:23:08 +01:00
Nick Craig-Wood
4b5ff33125
fstest: retry cleaning the integration test directory if necessary
2018-04-11 20:51:13 +01:00
Nick Craig-Wood
0fa700b3cf
Make integration tests use go1.7+ nested tests #2154
...
* Removed generated code and code generator
* Updated docs on how to write integration tests
* Tidied up the actual integration tests
2018-04-08 15:04:14 +01:00
Nick Craig-Wood
be54fd8f70
Remove builds conditional on go1.7 since that is now guaranteed #2154
...
Old fallback code was deleted and the go1.7 style code inlined where
appropriate.
2018-04-07 11:42:55 +01:00
Nick Craig-Wood
32e02bd367
fstests: Fix TestObjectRemove failures
...
This was failing because TestPublicLink was causing the file to be
modified with Google drive.
2018-04-06 16:27:19 +01:00
Nick Craig-Wood
92cfb57fbd
fstest/test_all: make -clean work better with google cloud storage
2018-04-06 14:54:33 +01:00
Stefan
a8267d1628
link: allow creating public link to files and folders - closes #1562
2018-03-29 09:10:19 +02:00
Nick Craig-Wood
0bfbde8856
fstest: make ChangeNotify test clean up after itself and be more reliable
...
Previous to this fix old notifications could creep in and cause the
test to fail. It also left files around which upset the TestObjectRemove test.
Fixes #2177
2018-03-24 19:57:44 +00:00
Nick Craig-Wood
911a78ce6d
sftp: require go1.8+ after github.com/pkg/sftp update
2018-03-19 16:37:40 +00:00
Nick Craig-Wood
5981f9fab5
acd: disable integration tests
...
We no longer have any working keys for Amazon Cloud Drive so disable
the integration tests.
2018-03-14 22:44:46 +00:00
Nick Craig-Wood
0861207ace
fstest/test_all: set cache backend wait time to 30m to fix integration tests
2018-03-08 21:14:09 +00:00
Remus Bunduc
70f07fd3ac
fs: add ChangeNotify and backend support for it ( #2094 )
...
* fs: rename DirChangeNotify to ChangeNotify
* cache: switch to ChangeNotify
* ChangeNotify: keep order of notifications
2018-03-08 22:03:34 +02:00
Fabian Möller
aeefa34f62
fstests: add TestInternal ( #2085 )
...
TestInternal allows to perform a custom test on the backend using the
optional InternalTester interface.
2018-02-25 10:58:06 +01:00
Nick Craig-Wood
9ffc3898b1
fstests: Allow RangeOption tests to run everywhere #1825
2018-02-19 18:00:39 +00:00
Nick Craig-Wood
fc8641809e
fstests: add name of remote to WARN message
2018-02-02 12:05:34 +00:00
Nick Craig-Wood
de35f1c165
Show WARN in integration tests if remote not configured
2018-02-02 09:50:58 +00:00
Nick Craig-Wood
d016438243
fstest: Fix CheckWithDuplicates after code reshuffle to not use operations
2018-01-25 12:03:39 +00:00
Nick Craig-Wood
6f6f2aa369
fstest: Fix config file override, hence fixing make quicktest
2018-01-25 10:33:00 +00:00
Nick Craig-Wood
f9806848fe
fstest: use the difficult file name for server side copy #2001
...
This should detect re-occurrence of #315
2018-01-23 09:37:33 +00:00
Nick Craig-Wood
c098e25552
fstest: Skip RangeOption test on Appveyor also
2018-01-22 11:10:29 +00:00
Nick Craig-Wood
ea69deaa4c
fstests: Skip RangeOption test in CI until all implemented
2018-01-21 18:09:16 +00:00
Nick Craig-Wood
8653944a6d
Make RangeOption manadatory for Open - #1825
...
Add an integration test to make sure all backends implement
RangeOption correctly.
2018-01-21 17:09:12 +00:00
Nick Craig-Wood
5ad226ab54
fs: Add dir option to fs.Purge #1891
...
Purge optional interface needs fixing too.
2018-01-19 11:45:50 +00:00
Nick Craig-Wood
a375992186
fstest: Fix removal of test folders/buckets
2018-01-19 10:20:06 +00:00
Nick Craig-Wood
b96c73bee6
test_all: fix -clean flag
2018-01-19 09:47:01 +00:00
Nick Craig-Wood
4b0c5f79b5
qingstor: Only support on go1.7+
2018-01-16 17:05:26 +00:00
Nick Craig-Wood
1848e26183
dropbox: Only support on go1.7+
...
See https://github.com/dropbox/dropbox-sdk-go-unofficial/pull/40
2018-01-16 17:05:02 +00:00
Nick Craig-Wood
11da2a6c9b
Break the fs package up into smaller parts.
...
The purpose of this is to make it easier to maintain and eventually to
allow the rclone backends to be re-used in other projects without
having to use the rclone configuration system.
The new code layout is documented in CONTRIBUTING.
2018-01-15 17:51:14 +00:00
Nick Craig-Wood
b8b620f5c2
Move all backends into backend directory
2018-01-12 17:07:38 +00:00
remusb
b48b537325
cache: plex integration, refactor chunk storage and worker retries ( #1899 )
2017-12-09 23:54:26 +02:00
Nick Craig-Wood
ebd7780188
fstest: don't error out if the target was not found at end of run
2017-12-04 15:58:29 +00:00
ishuah
6c62fced60
move: fixed root source directories getting deleted after move - fixes #1849
2017-11-23 12:01:35 +03:00