Merge branch 'master' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
8d314d2d56
@ -226,6 +226,16 @@ calamares_add_test(
|
||||
partition/Tests.cpp
|
||||
)
|
||||
|
||||
if( KPMcore_FOUND )
|
||||
calamares_add_test(
|
||||
libcalamarespartitionkpmtest
|
||||
SOURCES
|
||||
partition/KPMTests.cpp
|
||||
LIBRARIES
|
||||
${OPTIONAL_PRIVATE_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
|
||||
calamares_add_test(
|
||||
libcalamareslocaletest
|
||||
SOURCES
|
||||
@ -244,8 +254,8 @@ calamares_add_test(
|
||||
modulesystem/Tests.cpp
|
||||
)
|
||||
|
||||
if( BUILD_TESTING )
|
||||
add_executable( test_geoip geoip/test_geoip.cpp ${geoip_src} )
|
||||
target_link_libraries( test_geoip calamares Qt5::Network yamlcpp )
|
||||
calamares_automoc( test_geoip )
|
||||
endif()
|
||||
# This is not an actual test, it's a test / demo application
|
||||
# for experimenting with GeoIP.
|
||||
add_executable( test_geoip geoip/test_geoip.cpp ${geoip_src} )
|
||||
target_link_libraries( test_geoip calamares Qt5::Network yamlcpp )
|
||||
calamares_automoc( test_geoip )
|
||||
|
82
src/libcalamares/partition/KPMTests.cpp
Normal file
82
src/libcalamares/partition/KPMTests.cpp
Normal file
@ -0,0 +1,82 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2019, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "utils/Logger.h"
|
||||
|
||||
#include <kpmcore/core/partitiontable.h>
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
|
||||
class KPMTests : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
KPMTests();
|
||||
~KPMTests() override;
|
||||
private Q_SLOTS:
|
||||
void initTestCase();
|
||||
|
||||
void testFlagNames();
|
||||
};
|
||||
|
||||
KPMTests::KPMTests() {}
|
||||
|
||||
KPMTests::~KPMTests() {}
|
||||
|
||||
void
|
||||
KPMTests::initTestCase()
|
||||
{
|
||||
Logger::setupLogLevel( Logger::LOGDEBUG );
|
||||
}
|
||||
|
||||
void
|
||||
KPMTests::testFlagNames()
|
||||
{
|
||||
int f = 1;
|
||||
QStringList names;
|
||||
QString s;
|
||||
while ( !( s = PartitionTable::flagName( static_cast< PartitionTable::Flag >( f ) ) ).isEmpty() )
|
||||
{
|
||||
cDebug() << f << s;
|
||||
names.append( s );
|
||||
|
||||
f <<= 1;
|
||||
}
|
||||
|
||||
QCOMPARE( PartitionTable::flagName( static_cast< PartitionTable::Flag >( 1 ) ), QStringLiteral( "boot" ) );
|
||||
|
||||
#ifdef WITH_KPMCORE4API
|
||||
// KPMCore 4 unifies the flags and handles them internally
|
||||
QCOMPARE( PartitionTable::flagName( PartitionTable::Flag::Boot ), QStringLiteral( "boot" ) );
|
||||
QVERIFY( names.contains( QStringLiteral( "boot" ) ) );
|
||||
QVERIFY( !names.contains( QStringLiteral( "esp" ) ) );
|
||||
#else
|
||||
// KPMCore 3 has separate flags
|
||||
QCOMPARE( PartitionTable::flagName( PartitionTable::FlagBoot ), QStringLiteral( "boot" ) );
|
||||
QCOMPARE( PartitionTable::flagName( PartitionTable::FlagEsp ), QStringLiteral( "esp" ) );
|
||||
QVERIFY( names.contains( QStringLiteral( "boot" ) ) );
|
||||
QVERIFY( names.contains( QStringLiteral( "esp" ) ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
QTEST_GUILESS_MAIN( KPMTests )
|
||||
|
||||
#include "utils/moc-warnings.h"
|
||||
|
||||
#include "KPMTests.moc"
|
@ -417,6 +417,12 @@ PartitionViewStep::onLeave()
|
||||
{
|
||||
QString espMountPoint
|
||||
= Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString();
|
||||
#ifdef WITH_KPMCORE4API
|
||||
auto espFlag = PartitionTable::Flag::Boot;
|
||||
#else
|
||||
auto espFlag = PartitionTable::FlagEsp;
|
||||
#endif
|
||||
QString espFlagName = PartitionTable::flagName( espFlag );
|
||||
Partition* esp = m_core->findPartitionByMountPoint( espMountPoint );
|
||||
|
||||
QString message;
|
||||
@ -428,12 +434,12 @@ PartitionViewStep::onLeave()
|
||||
"<br/><br/>"
|
||||
"To configure an EFI system partition, go back and "
|
||||
"select or create a FAT32 filesystem with the "
|
||||
"<strong>esp</strong> flag enabled and mount point "
|
||||
"<strong>%3</strong> flag enabled and mount point "
|
||||
"<strong>%2</strong>.<br/><br/>"
|
||||
"You can continue without setting up an EFI system "
|
||||
"partition but your system may fail to start." )
|
||||
.arg( *Calamares::Branding::ShortProductName )
|
||||
.arg( espMountPoint );
|
||||
.arg( espMountPoint, espFlagName );
|
||||
}
|
||||
else if ( esp && !PartUtils::isEfiBootable( esp ) )
|
||||
{
|
||||
@ -441,14 +447,14 @@ PartitionViewStep::onLeave()
|
||||
description = tr( "An EFI system partition is necessary to start %1."
|
||||
"<br/><br/>"
|
||||
"A partition was configured with mount point "
|
||||
"<strong>%2</strong> but its <strong>esp</strong> "
|
||||
"<strong>%2</strong> but its <strong>%3</strong> "
|
||||
"flag is not set.<br/>"
|
||||
"To set the flag, go back and edit the partition."
|
||||
"<br/><br/>"
|
||||
"You can continue without setting the flag but your "
|
||||
"system may fail to start." )
|
||||
.arg( *Calamares::Branding::ShortProductName )
|
||||
.arg( espMountPoint );
|
||||
.arg( espMountPoint, espFlagName );
|
||||
}
|
||||
|
||||
if ( !message.isEmpty() )
|
||||
|
Loading…
Reference in New Issue
Block a user