mirror of https://github.com/cutefishos/calamares
				
				
				
			
						commit
						638c9feeb6
					
				@ -0,0 +1,90 @@
 | 
			
		||||
/* === This file is part of Calamares - <https://calamares.io> ===
 | 
			
		||||
 *
 | 
			
		||||
 *   SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
 | 
			
		||||
 *   SPDX-License-Identifier: GPL-3.0-or-later
 | 
			
		||||
 *
 | 
			
		||||
 *   Calamares is Free Software: see the License-Identifier above.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "core/DeviceList.h"
 | 
			
		||||
 | 
			
		||||
#include "partition/KPMManager.h"
 | 
			
		||||
#include "utils/Logger.h"
 | 
			
		||||
 | 
			
		||||
#include <kpmcore/backend/corebackend.h>
 | 
			
		||||
#include <kpmcore/backend/corebackendmanager.h>
 | 
			
		||||
 | 
			
		||||
#include <QObject>
 | 
			
		||||
#include <QtTest/QtTest>
 | 
			
		||||
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
 | 
			
		||||
class DevicesTests : public QObject
 | 
			
		||||
{
 | 
			
		||||
    Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    DevicesTests();
 | 
			
		||||
 | 
			
		||||
private Q_SLOTS:
 | 
			
		||||
    void testKPMScanDevices();
 | 
			
		||||
    void testPartUtilScanDevices();
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    std::unique_ptr< CalamaresUtils::Partition::KPMManager > m_d;
 | 
			
		||||
    bool m_isRoot = false;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
DevicesTests::DevicesTests()
 | 
			
		||||
    : m_d( std::make_unique< CalamaresUtils::Partition::KPMManager >() )
 | 
			
		||||
    , m_isRoot( geteuid() == 0 )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
DevicesTests::testKPMScanDevices()
 | 
			
		||||
{
 | 
			
		||||
    Logger::setupLogLevel( Logger::LOGVERBOSE );
 | 
			
		||||
 | 
			
		||||
    cDebug() << "Getting devices via KPMCore";
 | 
			
		||||
    CoreBackend* backend = CoreBackendManager::self()->backend();
 | 
			
		||||
    QVERIFY( backend );
 | 
			
		||||
#if defined( WITH_KPMCORE4API )
 | 
			
		||||
    auto flags = ScanFlag( ~0 );
 | 
			
		||||
#else
 | 
			
		||||
    auto flags = true;
 | 
			
		||||
#endif
 | 
			
		||||
    auto devices = backend->scanDevices( flags );  // These flags try to get "all"
 | 
			
		||||
    cDebug() << Logger::SubEntry << "Done getting devices.";
 | 
			
		||||
 | 
			
		||||
    if ( !m_isRoot )
 | 
			
		||||
    {
 | 
			
		||||
        QEXPECT_FAIL( "", "Test invalid when not root", Continue );
 | 
			
		||||
    }
 | 
			
		||||
    QVERIFY( devices.count() > 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
DevicesTests::testPartUtilScanDevices()
 | 
			
		||||
{
 | 
			
		||||
    Logger::setupLogLevel( Logger::LOGVERBOSE );
 | 
			
		||||
 | 
			
		||||
    cDebug() << "Getting devices via PartUtils";
 | 
			
		||||
    auto devices = PartUtils::getDevices();
 | 
			
		||||
    cDebug() << Logger::SubEntry << "Done getting devices.";
 | 
			
		||||
 | 
			
		||||
    if ( !m_isRoot )
 | 
			
		||||
    {
 | 
			
		||||
        QEXPECT_FAIL( "", "Test invalid when not root", Continue );
 | 
			
		||||
    }
 | 
			
		||||
    QVERIFY( devices.count() > 0 );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
QTEST_GUILESS_MAIN( DevicesTests )
 | 
			
		||||
 | 
			
		||||
#include "utils/moc-warnings.h"
 | 
			
		||||
 | 
			
		||||
#include "DevicesTests.moc"
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue