diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2018-10-18 14:10:18 +0300 |
---|---|---|
committer | Olivier Goffart <ogoffart@woboq.com> | 2018-10-18 14:22:29 +0300 |
commit | 2e16f654ea694c9e14cb569923327d0964682c77 (patch) | |
tree | 2eec6e601c9debb3c0034fa6d239fe222afc941f /test/testsyncengine.cpp | |
parent | e42b0bce4eadb99a1ba383dae5e86ae5741cc922 (diff) | |
parent | 7daf393c1c766a1a5a5b422f738ee3d27b005dac (diff) |
Merge remote-tracking branch 'owncloud/master' into new_discovery_algo
Conflicts:
src/csync/csync_update.cpp
test/csync/csync_tests/check_csync_update.cpp
Diffstat (limited to 'test/testsyncengine.cpp')
-rw-r--r-- | test/testsyncengine.cpp | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/test/testsyncengine.cpp b/test/testsyncengine.cpp index 1c4dd7e02..91c2e046a 100644 --- a/test/testsyncengine.cpp +++ b/test/testsyncengine.cpp @@ -439,13 +439,13 @@ private slots: // Produce an error based on upload size int remoteQuota = 1000; int n507 = 0, nPUT = 0; - auto parent = new QObject; + QObject parent; fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *) -> QNetworkReply * { if (op == QNetworkAccessManager::PutOperation) { nPUT++; if (request.rawHeader("OC-Total-Length").toInt() > remoteQuota) { n507++; - return new FakeErrorReply(op, request, parent, 507); + return new FakeErrorReply(op, request, &parent, 507); } } return nullptr; @@ -649,6 +649,33 @@ private slots: QTextCodec::setCodecForLocale(utf8Locale); #endif } + + // Aborting has had bugs when there are parallel upload jobs + void testUploadV1Multiabort() + { + FakeFolder fakeFolder{ FileInfo{} }; + SyncOptions options; + options._initialChunkSize = 10; + options._maxChunkSize = 10; + options._minChunkSize = 10; + fakeFolder.syncEngine().setSyncOptions(options); + + QObject parent; + int nPUT = 0; + fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *) -> QNetworkReply * { + if (op == QNetworkAccessManager::PutOperation) { + ++nPUT; + return new FakeHangingReply(op, request, &parent); + } + return nullptr; + }); + + fakeFolder.localModifier().insert("file", 100, 'W'); + QTimer::singleShot(100, &fakeFolder.syncEngine(), [&]() { fakeFolder.syncEngine().abort(); }); + QVERIFY(!fakeFolder.syncOnce()); + + QCOMPARE(nPUT, 3); + } }; QTEST_GUILESS_MAIN(TestSyncEngine) |