mirror of https://github.com/cutefishos/calamares
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
/* === 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"
 |