From 3245c0ae0d6a4316aa549e5fcf1a7cdb9cf10e0a Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Sun, 30 Jun 2019 18:31:58 +0100 Subject: [PATCH] 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. --- fstest/fstests/fstests.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fstest/fstests/fstests.go b/fstest/fstests/fstests.go index f652a2857..c144b7319 100644 --- a/fstest/fstests/fstests.go +++ b/fstest/fstests/fstests.go @@ -189,6 +189,9 @@ func testPutLarge(t *testing.T, f fs.Fs, file *fstest.Item) { obji := object.NewStaticObjectInfo(file.Path, file.ModTime, file.Size, true, nil, nil) obj, err = f.Put(context.Background(), in, obji) + if file.Size == 0 && err == fs.ErrorCantUploadEmptyFiles { + t.Skip("Can't upload zero length files") + } return err }) file.Hashes = uploadHash.Sums() @@ -675,6 +678,16 @@ func Run(t *testing.T, opt *Opt) { } }) + t.Run("FsPutZeroLength", func(t *testing.T) { + skipIfNotOk(t) + + testPutLarge(t, remote, &fstest.Item{ + ModTime: fstest.Time("2001-02-03T04:05:06.499999999Z"), + Path: fmt.Sprintf("zero-length-file"), + Size: int64(0), + }) + }) + t.Run("FsOpenWriterAt", func(t *testing.T) { skipIfNotOk(t) openWriterAt := remote.Features().OpenWriterAt