mirror of
https://github.com/nextcloud/desktop.git
synced 2024-11-29 04:08:54 +03:00
Please the clang-tidy overlord
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
This commit is contained in:
parent
c03a5da670
commit
c57eff6fd8
32 changed files with 75 additions and 87 deletions
|
@ -121,7 +121,7 @@ QByteArray calcAdler32(QIODevice *device)
|
||||||
QByteArray buf(BUFSIZE, Qt::Uninitialized);
|
QByteArray buf(BUFSIZE, Qt::Uninitialized);
|
||||||
|
|
||||||
unsigned int adler = adler32(0L, Z_NULL, 0);
|
unsigned int adler = adler32(0L, Z_NULL, 0);
|
||||||
qint64 size;
|
qint64 size = 0;
|
||||||
while (!device->atEnd()) {
|
while (!device->atEnd()) {
|
||||||
size = device->read(buf.data(), BUFSIZE);
|
size = device->read(buf.data(), BUFSIZE);
|
||||||
if (size > 0)
|
if (size > 0)
|
||||||
|
@ -204,9 +204,7 @@ ComputeChecksum::ComputeChecksum(QObject *parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
ComputeChecksum::~ComputeChecksum()
|
ComputeChecksum::~ComputeChecksum() = default;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ComputeChecksum::setChecksumType(const QByteArray &type)
|
void ComputeChecksum::setChecksumType(const QByteArray &type)
|
||||||
{
|
{
|
||||||
|
|
|
@ -518,9 +518,9 @@ QString FileSystem::pathtoUNC(const QString &str)
|
||||||
|
|
||||||
/* replace all occurences of / with the windows native \ */
|
/* replace all occurences of / with the windows native \ */
|
||||||
|
|
||||||
for (auto it = longStr.begin(); it != longStr.end(); ++it) {
|
for (auto &c : longStr) {
|
||||||
if (*it == QLatin1Char('/')) {
|
if (c == QLatin1Char('/')) {
|
||||||
*it = QLatin1Char('\\');
|
c = QLatin1Char('\\');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return longStr;
|
return longStr;
|
||||||
|
|
|
@ -62,7 +62,7 @@ QString RemotePermissions::toString() const
|
||||||
RemotePermissions RemotePermissions::fromDbValue(const QByteArray &value)
|
RemotePermissions RemotePermissions::fromDbValue(const QByteArray &value)
|
||||||
{
|
{
|
||||||
if (value.isEmpty())
|
if (value.isEmpty())
|
||||||
return RemotePermissions();
|
return {};
|
||||||
RemotePermissions perm;
|
RemotePermissions perm;
|
||||||
perm.fromArray(value.constData());
|
perm.fromArray(value.constData());
|
||||||
return perm;
|
return perm;
|
||||||
|
|
|
@ -706,7 +706,7 @@ bool SyncJournalDb::updateMetadataTableStructure()
|
||||||
commitInternal(QStringLiteral("update database structure: add path index"));
|
commitInternal(QStringLiteral("update database structure: add path index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (1) {
|
if (true) {
|
||||||
SqlQuery query(_db);
|
SqlQuery query(_db);
|
||||||
query.prepare("CREATE INDEX IF NOT EXISTS metadata_parent ON metadata(parent_hash(path));");
|
query.prepare("CREATE INDEX IF NOT EXISTS metadata_parent ON metadata(parent_hash(path));");
|
||||||
if (!query.exec()) {
|
if (!query.exec()) {
|
||||||
|
|
|
@ -25,12 +25,12 @@
|
||||||
#include "syncfilestatus.h"
|
#include "syncfilestatus.h"
|
||||||
#include "pinstate.h"
|
#include "pinstate.h"
|
||||||
|
|
||||||
typedef struct csync_file_stat_s csync_file_stat_t;
|
using csync_file_stat_t = struct csync_file_stat_s;
|
||||||
|
|
||||||
namespace OCC {
|
namespace OCC {
|
||||||
|
|
||||||
class Account;
|
class Account;
|
||||||
typedef QSharedPointer<Account> AccountPtr;
|
using AccountPtr = QSharedPointer<Account>;
|
||||||
class SyncJournalDb;
|
class SyncJournalDb;
|
||||||
class VfsPrivate;
|
class VfsPrivate;
|
||||||
class SyncFileItem;
|
class SyncFileItem;
|
||||||
|
@ -329,7 +329,7 @@ OCSYNC_EXPORT std::unique_ptr<Vfs> createVfsFromPlugin(Vfs::Mode mode);
|
||||||
namespace { \
|
namespace { \
|
||||||
void initPlugin() \
|
void initPlugin() \
|
||||||
{ \
|
{ \
|
||||||
OCC::Vfs::registerPlugin(QStringLiteral(name), []() -> OCC::Vfs * { return new Type; }); \
|
OCC::Vfs::registerPlugin(QStringLiteral(name), []() -> OCC::Vfs * { return new (Type); }); \
|
||||||
} \
|
} \
|
||||||
Q_COREAPP_STARTUP_FUNCTION(initPlugin) \
|
Q_COREAPP_STARTUP_FUNCTION(initPlugin) \
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ class OCSYNC_EXPORT ExcludedFiles : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
typedef std::tuple<int, int, int> Version;
|
using Version = std::tuple<int, int, int>;
|
||||||
|
|
||||||
explicit ExcludedFiles(const QString &localPath = QStringLiteral("/"));
|
explicit ExcludedFiles(const QString &localPath = QStringLiteral("/"));
|
||||||
~ExcludedFiles();
|
~ExcludedFiles();
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdlib.h> // NOLINT this is sometimes compiled in C mode
|
#include <cstdlib>
|
||||||
#include <string.h> // NOLINT this is sometimes compiled in C mode
|
#include <cstring>
|
||||||
|
|
||||||
#include "c_private.h"
|
#include "c_private.h"
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <errno.h> // NOLINT this is sometimes compiled in C mode
|
#include <cerrno>
|
||||||
|
|
||||||
#ifdef __MINGW32__
|
#ifdef __MINGW32__
|
||||||
#ifndef S_IRGRP
|
#ifndef S_IRGRP
|
||||||
|
@ -74,10 +74,10 @@
|
||||||
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
typedef struct stat64 csync_stat_t; // NOLINT this is sometimes compiled in C mode
|
using csync_stat_t = struct stat64;
|
||||||
#define _FILE_OFFSET_BITS 64
|
#define _FILE_OFFSET_BITS 64
|
||||||
#else
|
#else
|
||||||
typedef struct stat csync_stat_t; // NOLINT this is sometimes compiled in C mode
|
using csync_stat_t = struct stat;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef O_NOATIME
|
#ifndef O_NOATIME
|
||||||
|
@ -94,7 +94,7 @@ typedef struct stat csync_stat_t; // NOLINT this is sometimes compiled in C mode
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined _WIN32 && defined _UNICODE
|
#if defined _WIN32 && defined _UNICODE
|
||||||
typedef wchar_t mbchar_t; // NOLINT this is sometimes compiled in C mode
|
using mbchar_t = wchar_t;
|
||||||
#define _topen _wopen
|
#define _topen _wopen
|
||||||
#define _tdirent _wdirent
|
#define _tdirent _wdirent
|
||||||
#define _topendir _wopendir
|
#define _topendir _wopendir
|
||||||
|
@ -115,7 +115,7 @@ typedef wchar_t mbchar_t; // NOLINT this is sometimes compiled in C mod
|
||||||
#define _tchdir _wchdir
|
#define _tchdir _wchdir
|
||||||
#define _tgetcwd _wgetcwd
|
#define _tgetcwd _wgetcwd
|
||||||
#else
|
#else
|
||||||
typedef char mbchar_t; // NOLINT this is sometimes compiled in C mode
|
using mbchar_t = char;
|
||||||
#define _tdirent dirent
|
#define _tdirent dirent
|
||||||
#define _topen open
|
#define _topen open
|
||||||
#define _topendir opendir
|
#define _topendir opendir
|
||||||
|
|
|
@ -74,7 +74,7 @@ int csync_vio_local_closedir(csync_vio_handle_t *dhandle) {
|
||||||
|
|
||||||
std::unique_ptr<csync_file_stat_t> csync_vio_local_readdir(csync_vio_handle_t *handle, OCC::Vfs *vfs) {
|
std::unique_ptr<csync_file_stat_t> csync_vio_local_readdir(csync_vio_handle_t *handle, OCC::Vfs *vfs) {
|
||||||
|
|
||||||
struct _tdirent *dirent = NULL;
|
struct _tdirent *dirent = nullptr;
|
||||||
std::unique_ptr<csync_file_stat_t> file_stat;
|
std::unique_ptr<csync_file_stat_t> file_stat;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
|
|
@ -113,7 +113,7 @@ void HttpCredentialsGui::showDialog()
|
||||||
+ QLatin1String("<br>");
|
+ QLatin1String("<br>");
|
||||||
}
|
}
|
||||||
|
|
||||||
QInputDialog *dialog = new QInputDialog();
|
auto *dialog = new QInputDialog();
|
||||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||||
dialog->setWindowTitle(tr("Enter Password"));
|
dialog->setWindowTitle(tr("Enter Password"));
|
||||||
dialog->setLabelText(msg);
|
dialog->setLabelText(msg);
|
||||||
|
|
|
@ -648,8 +648,8 @@ void Folder::setVirtualFilesEnabled(bool enabled)
|
||||||
_vfs->stop();
|
_vfs->stop();
|
||||||
_vfs->unregisterFolder();
|
_vfs->unregisterFolder();
|
||||||
|
|
||||||
disconnect(_vfs.data(), 0, this, 0);
|
disconnect(_vfs.data(), nullptr, this, nullptr);
|
||||||
disconnect(&_engine->syncFileStatusTracker(), 0, _vfs.data(), 0);
|
disconnect(&_engine->syncFileStatusTracker(), nullptr, _vfs.data(), nullptr);
|
||||||
|
|
||||||
_vfs.reset(createVfsFromPlugin(newMode).release());
|
_vfs.reset(createVfsFromPlugin(newMode).release());
|
||||||
|
|
||||||
|
|
|
@ -1007,7 +1007,7 @@ Folder *FolderMan::addFolder(AccountState *accountState, const FolderDefinition
|
||||||
auto vfs = createVfsFromPlugin(folderDefinition.virtualFilesMode);
|
auto vfs = createVfsFromPlugin(folderDefinition.virtualFilesMode);
|
||||||
if (!vfs) {
|
if (!vfs) {
|
||||||
qCWarning(lcFolderMan) << "Could not load plugin for mode" << folderDefinition.virtualFilesMode;
|
qCWarning(lcFolderMan) << "Could not load plugin for mode" << folderDefinition.virtualFilesMode;
|
||||||
return 0;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto folder = addFolderInternal(definition, accountState, std::move(vfs));
|
auto folder = addFolderInternal(definition, accountState, std::move(vfs));
|
||||||
|
|
|
@ -79,7 +79,6 @@ QString Utility::vfsCurrentAvailabilityText(VfsItemAvailability availability)
|
||||||
case VfsItemAvailability::Mixed:
|
case VfsItemAvailability::Mixed:
|
||||||
return QCoreApplication::translate("utility", "Some available online only");
|
return QCoreApplication::translate("utility", "Some available online only");
|
||||||
case VfsItemAvailability::AllDehydrated:
|
case VfsItemAvailability::AllDehydrated:
|
||||||
return QCoreApplication::translate("utility", "Available online only");
|
|
||||||
case VfsItemAvailability::OnlineOnly:
|
case VfsItemAvailability::OnlineOnly:
|
||||||
return QCoreApplication::translate("utility", "Available online only");
|
return QCoreApplication::translate("utility", "Available online only");
|
||||||
}
|
}
|
||||||
|
|
|
@ -246,7 +246,7 @@ void SettingsDialog::accountAdded(AccountState *s)
|
||||||
|
|
||||||
if (!brandingSingleAccount) {
|
if (!brandingSingleAccount) {
|
||||||
accountAction->setToolTip(s->account()->displayName());
|
accountAction->setToolTip(s->account()->displayName());
|
||||||
accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), height * buttonSizeRatio));
|
accountAction->setIconText(shortDisplayNameForSettings(s->account().data(), static_cast<int>(height * buttonSizeRatio)));
|
||||||
}
|
}
|
||||||
|
|
||||||
_toolBar->insertAction(_toolBar->actions().at(0), accountAction);
|
_toolBar->insertAction(_toolBar->actions().at(0), accountAction);
|
||||||
|
@ -295,7 +295,7 @@ void SettingsDialog::slotAccountDisplayNameChanged()
|
||||||
QString displayName = account->displayName();
|
QString displayName = account->displayName();
|
||||||
action->setText(displayName);
|
action->setText(displayName);
|
||||||
auto height = _toolBar->sizeHint().height();
|
auto height = _toolBar->sizeHint().height();
|
||||||
action->setIconText(shortDisplayNameForSettings(account, height * buttonSizeRatio));
|
action->setIconText(shortDisplayNameForSettings(account, static_cast<int>(height * buttonSizeRatio)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,7 +201,7 @@ void HttpCredentials::fetchFromKeychainHelper()
|
||||||
if (!_clientCertBundle.isEmpty()) {
|
if (!_clientCertBundle.isEmpty()) {
|
||||||
// New case (>=2.6): We have a bundle in the settings and read the password from
|
// New case (>=2.6): We have a bundle in the settings and read the password from
|
||||||
// the keychain
|
// the keychain
|
||||||
ReadPasswordJob *job = new ReadPasswordJob(Theme::instance()->appName());
|
auto job = new ReadPasswordJob(Theme::instance()->appName());
|
||||||
addSettingsToJob(_account, job);
|
addSettingsToJob(_account, job);
|
||||||
job->setInsecureFallback(false);
|
job->setInsecureFallback(false);
|
||||||
job->setKey(keychainKey(_account->url().toString(), _user + clientCertPasswordC, _account->id()));
|
job->setKey(keychainKey(_account->url().toString(), _user + clientCertPasswordC, _account->id()));
|
||||||
|
@ -263,7 +263,7 @@ void HttpCredentials::slotReadClientCertPasswordJobDone(QKeychain::Job *job)
|
||||||
if (keychainUnavailableRetryLater(job))
|
if (keychainUnavailableRetryLater(job))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ReadPasswordJob *readJob = static_cast<ReadPasswordJob *>(job);
|
auto readJob = static_cast<ReadPasswordJob *>(job);
|
||||||
if (readJob->error() == NoError) {
|
if (readJob->error() == NoError) {
|
||||||
_clientCertPassword = readJob->binaryData();
|
_clientCertPassword = readJob->binaryData();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -41,7 +41,7 @@ class TokenCredentialsAccessManager : public AccessManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
friend class TokenCredentials;
|
friend class TokenCredentials;
|
||||||
TokenCredentialsAccessManager(const TokenCredentials *cred, QObject *parent = 0)
|
TokenCredentialsAccessManager(const TokenCredentials *cred, QObject *parent = nullptr)
|
||||||
: AccessManager(parent)
|
: AccessManager(parent)
|
||||||
, _cred(cred)
|
, _cred(cred)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1296,9 +1296,8 @@ auto ProcessDirectoryJob::checkMovePermissions(RemotePermissions srcPerm, const
|
||||||
bool destinationOK = true;
|
bool destinationOK = true;
|
||||||
bool destinationNewOK = true;
|
bool destinationNewOK = true;
|
||||||
if (destPerms.isNull()) {
|
if (destPerms.isNull()) {
|
||||||
} else if (isDirectory && !destPerms.hasPermission(RemotePermissions::CanAddSubDirectories)) {
|
} else if ((isDirectory && !destPerms.hasPermission(RemotePermissions::CanAddSubDirectories)) ||
|
||||||
destinationNewOK = false;
|
(!isDirectory && !destPerms.hasPermission(RemotePermissions::CanAddFile))) {
|
||||||
} else if (!isDirectory && !destPerms.hasPermission(RemotePermissions::CanAddFile)) {
|
|
||||||
destinationNewOK = false;
|
destinationNewOK = false;
|
||||||
}
|
}
|
||||||
if (!isRename && !destinationNewOK) {
|
if (!isRename && !destinationNewOK) {
|
||||||
|
|
|
@ -89,7 +89,7 @@ class DiscoverySingleLocalDirectoryJob : public QObject, public QRunnable
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
explicit DiscoverySingleLocalDirectoryJob(const AccountPtr &account, const QString &localPath, OCC::Vfs *vfs, QObject *parent = 0);
|
explicit DiscoverySingleLocalDirectoryJob(const AccountPtr &account, const QString &localPath, OCC::Vfs *vfs, QObject *parent = nullptr);
|
||||||
|
|
||||||
void run() Q_DECL_OVERRIDE;
|
void run() Q_DECL_OVERRIDE;
|
||||||
signals:
|
signals:
|
||||||
|
|
|
@ -22,9 +22,7 @@ using namespace OCC;
|
||||||
|
|
||||||
Q_LOGGING_CATEGORY(lcLocalDiscoveryTracker, "sync.localdiscoverytracker", QtInfoMsg)
|
Q_LOGGING_CATEGORY(lcLocalDiscoveryTracker, "sync.localdiscoverytracker", QtInfoMsg)
|
||||||
|
|
||||||
LocalDiscoveryTracker::LocalDiscoveryTracker()
|
LocalDiscoveryTracker::LocalDiscoveryTracker() = default;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void LocalDiscoveryTracker::addTouchedPath(const QString &relativePath)
|
void LocalDiscoveryTracker::addTouchedPath(const QString &relativePath)
|
||||||
{
|
{
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
namespace OCC {
|
namespace OCC {
|
||||||
|
|
||||||
class SyncFileItem;
|
class SyncFileItem;
|
||||||
typedef QSharedPointer<SyncFileItem> SyncFileItemPtr;
|
using SyncFileItemPtr = QSharedPointer<SyncFileItem>;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Tracks files that must be rediscovered locally
|
* @brief Tracks files that must be rediscovered locally
|
||||||
|
|
|
@ -205,7 +205,7 @@ void GETFileJob::slotMetaDataChanged()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ok;
|
bool ok = false;
|
||||||
_contentLength = reply()->header(QNetworkRequest::ContentLengthHeader).toLongLong(&ok);
|
_contentLength = reply()->header(QNetworkRequest::ContentLengthHeader).toLongLong(&ok);
|
||||||
if (ok && _expectedContentLength != -1 && _contentLength != _expectedContentLength) {
|
if (ok && _expectedContentLength != -1 && _contentLength != _expectedContentLength) {
|
||||||
qCWarning(lcGetJob) << "We received a different content length than expected!"
|
qCWarning(lcGetJob) << "We received a different content length than expected!"
|
||||||
|
|
|
@ -441,12 +441,7 @@ UploadDevice::UploadDevice(const QString &fileName, qint64 start, qint64 size, B
|
||||||
: _file(fileName)
|
: _file(fileName)
|
||||||
, _start(start)
|
, _start(start)
|
||||||
, _size(size)
|
, _size(size)
|
||||||
, _read(0)
|
|
||||||
, _bandwidthManager(bwm)
|
, _bandwidthManager(bwm)
|
||||||
, _bandwidthQuota(0)
|
|
||||||
, _readWithProgress(0)
|
|
||||||
, _bandwidthLimited(false)
|
|
||||||
, _choked(false)
|
|
||||||
{
|
{
|
||||||
_bandwidthManager->registerUploadDevice(this);
|
_bandwidthManager->registerUploadDevice(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -73,10 +73,10 @@ private:
|
||||||
|
|
||||||
// Bandwidth manager related
|
// Bandwidth manager related
|
||||||
QPointer<BandwidthManager> _bandwidthManager;
|
QPointer<BandwidthManager> _bandwidthManager;
|
||||||
qint64 _bandwidthQuota;
|
qint64 _bandwidthQuota = 0;
|
||||||
qint64 _readWithProgress;
|
qint64 _readWithProgress = 0;
|
||||||
bool _bandwidthLimited; // if _bandwidthQuota will be used
|
bool _bandwidthLimited = false; // if _bandwidthQuota will be used
|
||||||
bool _choked; // if upload is paused (readData() will return 0)
|
bool _choked = false; // if upload is paused (readData() will return 0)
|
||||||
friend class BandwidthManager;
|
friend class BandwidthManager;
|
||||||
public slots:
|
public slots:
|
||||||
void slotJobUploadProgress(qint64 sent, qint64 t);
|
void slotJobUploadProgress(qint64 sent, qint64 t);
|
||||||
|
|
|
@ -563,7 +563,7 @@ void SyncEngine::startSync()
|
||||||
// files with names that contain these.
|
// files with names that contain these.
|
||||||
// It's important to respect the capability also for older servers -- the
|
// It's important to respect the capability also for older servers -- the
|
||||||
// version check doesn't make sense for custom servers.
|
// version check doesn't make sense for custom servers.
|
||||||
invalidFilenamePattern = "[\\\\:?*\"<>|]";
|
invalidFilenamePattern = R"([\\:?*"<>|])";
|
||||||
}
|
}
|
||||||
if (!invalidFilenamePattern.isEmpty())
|
if (!invalidFilenamePattern.isEmpty())
|
||||||
_discoveryPhase->_invalidFilenameRx = QRegExp(invalidFilenamePattern);
|
_discoveryPhase->_invalidFilenameRx = QRegExp(invalidFilenamePattern);
|
||||||
|
@ -589,12 +589,10 @@ void SyncEngine::startSync()
|
||||||
void SyncEngine::slotFolderDiscovered(bool local, const QString &folder)
|
void SyncEngine::slotFolderDiscovered(bool local, const QString &folder)
|
||||||
{
|
{
|
||||||
// Don't wanna overload the UI
|
// Don't wanna overload the UI
|
||||||
if (!_lastUpdateProgressCallbackCall.isValid()) {
|
if (!_lastUpdateProgressCallbackCall.isValid() || _lastUpdateProgressCallbackCall.elapsed() >= 200) {
|
||||||
_lastUpdateProgressCallbackCall.start(); // first call
|
_lastUpdateProgressCallbackCall.start(); // first call or enough elapsed time
|
||||||
} else if (_lastUpdateProgressCallbackCall.elapsed() < 200) {
|
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
_lastUpdateProgressCallbackCall.start();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (local) {
|
if (local) {
|
||||||
|
@ -1014,7 +1012,7 @@ void SyncEngine::abort()
|
||||||
} else if (_discoveryPhase) {
|
} else if (_discoveryPhase) {
|
||||||
// Delete the discovery and all child jobs after ensuring
|
// Delete the discovery and all child jobs after ensuring
|
||||||
// it can't finish and start the propagator
|
// it can't finish and start the propagator
|
||||||
disconnect(_discoveryPhase.data(), 0, this, 0);
|
disconnect(_discoveryPhase.data(), nullptr, this, nullptr);
|
||||||
_discoveryPhase.take()->deleteLater();
|
_discoveryPhase.take()->deleteLater();
|
||||||
|
|
||||||
syncError(tr("Aborted"));
|
syncError(tr("Aborted"));
|
||||||
|
|
|
@ -27,9 +27,7 @@ VfsSuffix::VfsSuffix(QObject *parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
VfsSuffix::~VfsSuffix()
|
VfsSuffix::~VfsSuffix() = default;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Vfs::Mode VfsSuffix::mode() const
|
Vfs::Mode VfsSuffix::mode() const
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,7 +61,7 @@ static int wipe_testdir()
|
||||||
}
|
}
|
||||||
|
|
||||||
static int setup_testenv(void **state) {
|
static int setup_testenv(void **state) {
|
||||||
int rc;
|
int rc = 0;
|
||||||
|
|
||||||
rc = wipe_testdir();
|
rc = wipe_testdir();
|
||||||
assert_int_equal(rc, 0);
|
assert_int_equal(rc, 0);
|
||||||
|
@ -80,7 +80,7 @@ static int setup_testenv(void **state) {
|
||||||
assert_int_equal(rc, 0);
|
assert_int_equal(rc, 0);
|
||||||
|
|
||||||
/* --- initialize csync */
|
/* --- initialize csync */
|
||||||
statevar *mystate = new statevar;
|
auto mystate = new statevar;
|
||||||
*state = mystate;
|
*state = mystate;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,7 @@ static void output( const char *text )
|
||||||
}
|
}
|
||||||
|
|
||||||
static int teardown(void **state) {
|
static int teardown(void **state) {
|
||||||
int rc;
|
int rc = -1;
|
||||||
|
|
||||||
output("================== Tearing down!\n");
|
output("================== Tearing down!\n");
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ static int teardown(void **state) {
|
||||||
*/
|
*/
|
||||||
static void create_dirs( const char *path )
|
static void create_dirs( const char *path )
|
||||||
{
|
{
|
||||||
int rc;
|
int rc = -1;
|
||||||
auto _mypath = QStringLiteral("%1/%2").arg(CSYNC_TEST_DIR, QString::fromUtf8(path)).toUtf8();
|
auto _mypath = QStringLiteral("%1/%2").arg(CSYNC_TEST_DIR, QString::fromUtf8(path)).toUtf8();
|
||||||
char *mypath = _mypath.data();
|
char *mypath = _mypath.data();
|
||||||
|
|
||||||
|
@ -149,13 +149,13 @@ static void create_dirs( const char *path )
|
||||||
*/
|
*/
|
||||||
static void traverse_dir(void **state, const QString &dir, int *cnt)
|
static void traverse_dir(void **state, const QString &dir, int *cnt)
|
||||||
{
|
{
|
||||||
csync_vio_handle_t *dh;
|
csync_vio_handle_t *dh = nullptr;
|
||||||
std::unique_ptr<csync_file_stat_t> dirent;
|
std::unique_ptr<csync_file_stat_t> dirent;
|
||||||
statevar *sv = (statevar*) *state;
|
auto sv = (statevar*) *state;
|
||||||
QByteArray subdir;
|
QByteArray subdir;
|
||||||
QByteArray subdir_out;
|
QByteArray subdir_out;
|
||||||
int rc;
|
int rc = -1;
|
||||||
int is_dir;
|
int is_dir = 0;
|
||||||
|
|
||||||
dh = csync_vio_local_opendir(dir);
|
dh = csync_vio_local_opendir(dir);
|
||||||
assert_non_null(dh);
|
assert_non_null(dh);
|
||||||
|
@ -208,7 +208,7 @@ static void create_file( const char *path, const char *name, const char *content
|
||||||
|
|
||||||
static void check_readdir_shorttree(void **state)
|
static void check_readdir_shorttree(void **state)
|
||||||
{
|
{
|
||||||
statevar *sv = (statevar*) *state;
|
auto sv = (statevar*) *state;
|
||||||
|
|
||||||
const char *t1 = "alibaba/und/die/vierzig/räuber/";
|
const char *t1 = "alibaba/und/die/vierzig/räuber/";
|
||||||
create_dirs( t1 );
|
create_dirs( t1 );
|
||||||
|
@ -230,7 +230,7 @@ static void check_readdir_shorttree(void **state)
|
||||||
|
|
||||||
static void check_readdir_with_content(void **state)
|
static void check_readdir_with_content(void **state)
|
||||||
{
|
{
|
||||||
statevar *sv = (statevar*) *state;
|
auto sv = (statevar*) *state;
|
||||||
int files_cnt = 0;
|
int files_cnt = 0;
|
||||||
|
|
||||||
const char *t1 = "warum/nur/40/Räuber/";
|
const char *t1 = "warum/nur/40/Räuber/";
|
||||||
|
@ -257,7 +257,7 @@ static void check_readdir_with_content(void **state)
|
||||||
|
|
||||||
static void check_readdir_longtree(void **state)
|
static void check_readdir_longtree(void **state)
|
||||||
{
|
{
|
||||||
statevar *sv = (statevar*) *state;
|
auto sv = (statevar*) *state;
|
||||||
|
|
||||||
/* Strange things here: Compilers only support strings with length of 4k max.
|
/* Strange things here: Compilers only support strings with length of 4k max.
|
||||||
* The expected result string is longer, so it needs to be split up in r1, r2 and r3
|
* The expected result string is longer, so it needs to be split up in r1, r2 and r3
|
||||||
|
@ -327,7 +327,7 @@ static void check_readdir_longtree(void **state)
|
||||||
// https://github.com/owncloud/client/issues/3128 https://github.com/owncloud/client/issues/2777
|
// https://github.com/owncloud/client/issues/3128 https://github.com/owncloud/client/issues/2777
|
||||||
static void check_readdir_bigunicode(void **state)
|
static void check_readdir_bigunicode(void **state)
|
||||||
{
|
{
|
||||||
statevar *sv = (statevar*) *state;
|
auto sv = (statevar*) *state;
|
||||||
// 1: ? ASCII: 239 - EF
|
// 1: ? ASCII: 239 - EF
|
||||||
// 2: ? ASCII: 187 - BB
|
// 2: ? ASCII: 187 - BB
|
||||||
// 3: ? ASCII: 191 - BF
|
// 3: ? ASCII: 191 - BF
|
||||||
|
@ -362,5 +362,5 @@ int torture_run_tests(void)
|
||||||
cmocka_unit_test_setup_teardown(check_readdir_bigunicode, setup_testenv, teardown),
|
cmocka_unit_test_setup_teardown(check_readdir_bigunicode, setup_testenv, teardown),
|
||||||
};
|
};
|
||||||
|
|
||||||
return cmocka_run_group_tests(tests, NULL, NULL);
|
return cmocka_run_group_tests(tests, nullptr, nullptr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ class HttpServer : public QTcpServer
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
HttpServer(qint16 port, QObject* parent = 0);
|
HttpServer(qint16 port, QObject* parent = nullptr);
|
||||||
void incomingConnection(int socket);
|
void incomingConnection(int socket);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
#include "syncenginetestutils.h"
|
#include "syncenginetestutils.h"
|
||||||
|
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
PathComponents::PathComponents(const char *path)
|
PathComponents::PathComponents(const char *path)
|
||||||
: PathComponents { QString::fromUtf8(path) }
|
: PathComponents { QString::fromUtf8(path) }
|
||||||
{
|
{
|
||||||
|
@ -374,7 +378,7 @@ FileInfo *FakePutReply::perform(FileInfo &remoteRootFileInfo, const QNetworkRequ
|
||||||
fileInfo = remoteRootFileInfo.create(fileName, putPayload.size(), putPayload.at(0));
|
fileInfo = remoteRootFileInfo.create(fileName, putPayload.size(), putPayload.at(0));
|
||||||
}
|
}
|
||||||
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
||||||
remoteRootFileInfo.find(fileName, /*invalidate_etags=*/true);
|
remoteRootFileInfo.find(fileName, /*invalidateEtags=*/true);
|
||||||
return fileInfo;
|
return fileInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -612,7 +616,7 @@ FileInfo *FakeChunkMoveReply::perform(FileInfo &uploadsFileInfo, FileInfo &remot
|
||||||
QString source = getFilePathFromUrl(request.url());
|
QString source = getFilePathFromUrl(request.url());
|
||||||
Q_ASSERT(!source.isEmpty());
|
Q_ASSERT(!source.isEmpty());
|
||||||
Q_ASSERT(source.endsWith(QLatin1String("/.file")));
|
Q_ASSERT(source.endsWith(QLatin1String("/.file")));
|
||||||
source = source.left(source.length() - qstrlen("/.file"));
|
source = source.left(source.length() - static_cast<int>(qstrlen("/.file")));
|
||||||
|
|
||||||
auto sourceFolder = uploadsFileInfo.find(source);
|
auto sourceFolder = uploadsFileInfo.find(source);
|
||||||
Q_ASSERT(sourceFolder);
|
Q_ASSERT(sourceFolder);
|
||||||
|
@ -657,7 +661,7 @@ FileInfo *FakeChunkMoveReply::perform(FileInfo &uploadsFileInfo, FileInfo &remot
|
||||||
fileInfo = remoteRootFileInfo.create(fileName, size, payload);
|
fileInfo = remoteRootFileInfo.create(fileName, size, payload);
|
||||||
}
|
}
|
||||||
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
fileInfo->lastModified = OCC::Utility::qDateTimeFromTime_t(request.rawHeader("X-OC-Mtime").toLongLong());
|
||||||
remoteRootFileInfo.find(fileName, /*invalidate_etags=*/true);
|
remoteRootFileInfo.find(fileName, /*invalidateEtags=*/true);
|
||||||
|
|
||||||
return fileInfo;
|
return fileInfo;
|
||||||
}
|
}
|
||||||
|
@ -800,7 +804,7 @@ QNetworkReply *FakeQNAM::createRequest(QNetworkAccessManager::Operation op, cons
|
||||||
FileInfo &info = isUpload ? _uploadFileInfo : _remoteRootFileInfo;
|
FileInfo &info = isUpload ? _uploadFileInfo : _remoteRootFileInfo;
|
||||||
|
|
||||||
auto verb = request.attribute(QNetworkRequest::CustomVerbAttribute);
|
auto verb = request.attribute(QNetworkRequest::CustomVerbAttribute);
|
||||||
FakeReply *reply;
|
FakeReply *reply = nullptr;
|
||||||
if (verb == QLatin1String("PROPFIND"))
|
if (verb == QLatin1String("PROPFIND"))
|
||||||
// Ignore outgoingData always returning somethign good enough, works for now.
|
// Ignore outgoingData always returning somethign good enough, works for now.
|
||||||
reply = new FakePropfindReply { info, op, request, this };
|
reply = new FakePropfindReply { info, op, request, this };
|
||||||
|
@ -841,8 +845,8 @@ FakeFolder::FakeFolder(const FileInfo &fileTemplate)
|
||||||
_account->setDavDisplayName(QStringLiteral("fakename"));
|
_account->setDavDisplayName(QStringLiteral("fakename"));
|
||||||
_account->setServerVersion(QStringLiteral("10.0.0"));
|
_account->setServerVersion(QStringLiteral("10.0.0"));
|
||||||
|
|
||||||
_journalDb.reset(new OCC::SyncJournalDb(localPath() + QStringLiteral(".sync_test.db")));
|
_journalDb = std::make_unique<OCC::SyncJournalDb>(localPath() + QStringLiteral(".sync_test.db"));
|
||||||
_syncEngine.reset(new OCC::SyncEngine(_account, localPath(), QString(), _journalDb.get()));
|
_syncEngine = std::make_unique<OCC::SyncEngine>(_account, localPath(), QString(), _journalDb.get());
|
||||||
// Ignore temporary files from the download. (This is in the default exclude list, but we don't load it)
|
// Ignore temporary files from the download. (This is in the default exclude list, but we don't load it)
|
||||||
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));
|
_syncEngine->excludedFiles().addManualExclude(QStringLiteral("]*.~*"));
|
||||||
|
|
||||||
|
@ -1026,5 +1030,4 @@ FakeReply::FakeReply(QObject *parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
FakeReply::~FakeReply()
|
FakeReply::~FakeReply()
|
||||||
{
|
= default;
|
||||||
}
|
|
||||||
|
|
|
@ -113,7 +113,7 @@ private slots:
|
||||||
auto successCallback = [](TestCase *tc, const QNetworkRequest &request) {
|
auto successCallback = [](TestCase *tc, const QNetworkRequest &request) {
|
||||||
tc->pollRequest = [](TestCase *, const QNetworkRequest &) -> QNetworkReply * { std::abort(); }; // shall no longer be called
|
tc->pollRequest = [](TestCase *, const QNetworkRequest &) -> QNetworkReply * { std::abort(); }; // shall no longer be called
|
||||||
FileInfo *info = tc->perform();
|
FileInfo *info = tc->perform();
|
||||||
QByteArray body = "{ \"status\":\"finished\", \"ETag\":\"\\\"" + info->etag + "\\\"\", \"fileId\":\"" + info->fileId + "\"}\n";
|
QByteArray body = R"({ "status":"finished", "ETag":"\")" + info->etag + R"(\"", "fileId":")" + info->fileId + "\"}\n";
|
||||||
return new FakePayloadReply(QNetworkAccessManager::GetOperation, request, body, nullptr);
|
return new FakePayloadReply(QNetworkAccessManager::GetOperation, request, body, nullptr);
|
||||||
};
|
};
|
||||||
// Callback that never finishes
|
// Callback that never finishes
|
||||||
|
@ -139,7 +139,7 @@ private slots:
|
||||||
};
|
};
|
||||||
|
|
||||||
// Create a testcase by creating a file of a given size locally and assigning it a callback
|
// Create a testcase by creating a file of a given size locally and assigning it a callback
|
||||||
auto insertFile = [&](const QString &file, int size, TestCase::PollRequest_t cb) {
|
auto insertFile = [&](const QString &file, qint64 size, TestCase::PollRequest_t cb) {
|
||||||
fakeFolder.localModifier().insert(file, size);
|
fakeFolder.localModifier().insert(file, size);
|
||||||
testCases[file] = { std::move(cb) };
|
testCases[file] = { std::move(cb) };
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,7 +26,7 @@ public:
|
||||||
{
|
{
|
||||||
if (aborted)
|
if (aborted)
|
||||||
return 0;
|
return 0;
|
||||||
return std::min(size, fakeSize) + QIODevice::bytesAvailable();
|
return std::min(size, fakeSize) + QIODevice::bytesAvailable(); // NOLINT: This is intended to simulare the brokeness
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 readData(char *data, qint64 maxlen) override
|
qint64 readData(char *data, qint64 maxlen) override
|
||||||
|
|
|
@ -666,7 +666,7 @@ private slots:
|
||||||
{
|
{
|
||||||
extern void csync_exclude_expand_escapes(QByteArray &input);
|
extern void csync_exclude_expand_escapes(QByteArray &input);
|
||||||
|
|
||||||
QByteArray line = "keep \\' \\\" \\? \\\\ \\a \\b \\f \\n \\r \\t \\v \\z \\#";
|
QByteArray line = R"(keep \' \" \? \\ \a \b \f \n \r \t \v \z \#)";
|
||||||
csync_exclude_expand_escapes(line);
|
csync_exclude_expand_escapes(line);
|
||||||
QVERIFY(0 == strcmp(line.constData(), "keep ' \" ? \\\\ \a \b \f \n \r \t \v \\z #"));
|
QVERIFY(0 == strcmp(line.constData(), "keep ' \" ? \\\\ \a \b \f \n \r \t \v \\z #"));
|
||||||
|
|
||||||
|
|
|
@ -310,14 +310,14 @@ private slots:
|
||||||
if (redirectsDone == 0) {
|
if (redirectsDone == 0) {
|
||||||
std::unique_ptr<QBuffer> payload(new QBuffer());
|
std::unique_ptr<QBuffer> payload(new QBuffer());
|
||||||
payload->setData("");
|
payload->setData("");
|
||||||
SlowFakePostReply *reply = new SlowFakePostReply(op, request, std::move(payload), this);
|
auto *reply = new SlowFakePostReply(op, request, std::move(payload), this);
|
||||||
reply->redirectToPolicy = true;
|
reply->redirectToPolicy = true;
|
||||||
redirectsDone++;
|
redirectsDone++;
|
||||||
return reply;
|
return reply;
|
||||||
} else if (redirectsDone == 1) {
|
} else if (redirectsDone == 1) {
|
||||||
std::unique_ptr<QBuffer> payload(new QBuffer());
|
std::unique_ptr<QBuffer> payload(new QBuffer());
|
||||||
payload->setData("");
|
payload->setData("");
|
||||||
SlowFakePostReply *reply = new SlowFakePostReply(op, request, std::move(payload), this);
|
auto *reply = new SlowFakePostReply(op, request, std::move(payload), this);
|
||||||
reply->redirectToToken = true;
|
reply->redirectToToken = true;
|
||||||
redirectsDone++;
|
redirectsDone++;
|
||||||
return reply;
|
return reply;
|
||||||
|
|
Loading…
Reference in a new issue