From aafb5cb9a3407b5c12b638e1b048f28e90592e19 Mon Sep 17 00:00:00 2001 From: Artem Sokolovskii Date: Tue, 4 Jan 2022 15:11:49 +0100 Subject: [PATCH] RemoteLinux: Move test actions to special test dir Change-Id: I9be4a1e7de1ae1accc507109bcf5f3b6188a8925 Reviewed-by: hjk --- .../remotelinux/filesystemaccess_test.cpp | 41 ++++++++++++------- .../remotelinux/filesystemaccess_test.h | 3 +- src/plugins/remotelinux/linuxdevice.cpp | 3 +- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/src/plugins/remotelinux/filesystemaccess_test.cpp b/src/plugins/remotelinux/filesystemaccess_test.cpp index 9c2be58f536..cf1c060c1dd 100644 --- a/src/plugins/remotelinux/filesystemaccess_test.cpp +++ b/src/plugins/remotelinux/filesystemaccess_test.cpp @@ -28,12 +28,12 @@ #include "linuxdevice.h" #include "remotelinux_constants.h" -#include #include #include +#include -#include #include +#include using namespace ProjectExplorer; using namespace Utils; @@ -42,6 +42,9 @@ namespace RemoteLinux { namespace Internal { static const char TEST_IP[] = "127.0.0.1"; +static const char TEST_DIR[] = "/tmp/testdir"; +static const FilePath baseFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + + QString(TEST_DIR)); TestLinuxDeviceFactory::TestLinuxDeviceFactory() : IDeviceFactory("test") @@ -64,9 +67,17 @@ IDevice::Ptr TestLinuxDeviceFactory::create() const return newDev; } +FilePath createFile(const QString &name) +{ + FilePath testFilePath = baseFilePath / name; + FilePath dummyFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/dev/null"); + dummyFilePath.copyFile(testFilePath); + return testFilePath; +} + void FileSystemAccessTest::initTestCase() { - FilePath filePath = FilePath::fromString("ssh://"+ QString(TEST_IP) +"/tmp"); + FilePath filePath = baseFilePath; if (DeviceManager::deviceForPath(filePath) == nullptr) { DeviceManager *const devMgr = DeviceManager::instance(); @@ -74,25 +85,30 @@ void FileSystemAccessTest::initTestCase() QVERIFY(!newDev.isNull()); devMgr->addDevice(newDev); } + QVERIFY(filePath.createDir()); +} + +void FileSystemAccessTest::cleanupTestCase() +{ + QVERIFY(baseFilePath.exists()); + QVERIFY(baseFilePath.removeRecursively()); } void FileSystemAccessTest::testDirStatuses() { - FilePath filePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/tmp"); + FilePath filePath = baseFilePath; QVERIFY(filePath.exists()); QVERIFY(filePath.isDir()); QVERIFY(filePath.isWritableDir()); - FilePath testFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/tmp/test"); - FilePath dummyFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/dev/null"); - dummyFilePath.copyFile(testFilePath); + FilePath testFilePath = createFile("test"); QVERIFY(testFilePath.exists()); QVERIFY(testFilePath.isFile()); bool fileExists = false; filePath.iterateDirectory( [&fileExists](const FilePath &filePath) { - if (filePath.baseName() == "test"){ + if (filePath.baseName() == "test") { fileExists = true; return true; } @@ -104,14 +120,11 @@ void FileSystemAccessTest::testDirStatuses() QVERIFY(fileExists); QVERIFY(testFilePath.removeFile()); QVERIFY(!testFilePath.exists()); - } void FileSystemAccessTest::testFileActions() { - FilePath testFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/tmp/test"); - FilePath dummyFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/dev/null"); - dummyFilePath.copyFile(testFilePath); + FilePath testFilePath = createFile("test"); QVERIFY(testFilePath.exists()); QVERIFY(testFilePath.isFile()); @@ -127,9 +140,9 @@ void FileSystemAccessTest::testFileActions() // ToDo: remove ".contains", make fileContents exact equal content QVERIFY(testFilePath.fileContents().contains(content)); - QVERIFY(testFilePath.renameFile(FilePath::fromString("ssh://" + QString(TEST_IP) + "/tmp/test1"))); + QVERIFY(testFilePath.renameFile(baseFilePath / "test1")); // It is Ok that FilePath doesn't change itself after rename. - FilePath newTestFilePath = FilePath::fromString("ssh://" + QString(TEST_IP) + "/tmp/test1"); + FilePath newTestFilePath = baseFilePath / "test1"; QVERIFY(newTestFilePath.exists()); QVERIFY(!testFilePath.removeFile()); QVERIFY(newTestFilePath.exists()); diff --git a/src/plugins/remotelinux/filesystemaccess_test.h b/src/plugins/remotelinux/filesystemaccess_test.h index 5579f22d615..e9e9d047527 100644 --- a/src/plugins/remotelinux/filesystemaccess_test.h +++ b/src/plugins/remotelinux/filesystemaccess_test.h @@ -38,8 +38,6 @@ class TestLinuxDeviceFactory final : public ProjectExplorer::IDeviceFactory public: TestLinuxDeviceFactory(); - Utils::FilePaths defaultKeys() const; - ProjectExplorer::IDevice::Ptr create() const override; }; @@ -49,6 +47,7 @@ class FileSystemAccessTest : public QObject private slots: void initTestCase(); + void cleanupTestCase(); void testDirStatuses(); void testFileActions(); diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 6efd1312482..f8c374e8678 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -404,7 +404,6 @@ QString LinuxDevice::userAtHost() const bool LinuxDevice::handlesFile(const FilePath &filePath) const { - DEBUG("handlesFile " << filePath.scheme() << filePath.host() << userAtHost()); return filePath.scheme() == "ssh" && filePath.host() == userAtHost(); } @@ -555,7 +554,7 @@ bool LinuxDevice::removeRecursively(const FilePath &filePath) const // We are expecting this only to be called in a context of build directories or similar. // Chicken out in some cases that _might_ be user code errors. QTC_ASSERT(path.startsWith('/'), return false); - const int levelsNeeded = path.startsWith("/home/") ? 4 : 3; + const int levelsNeeded = path.startsWith("/home/") ? 3 : 2; QTC_ASSERT(path.count('/') >= levelsNeeded, return false); return d->runInShell({"rm", {"-rf", "--", path}});