Merge branch 'master' of https://github.com/calamares/calamares into development

This commit is contained in:
Philip Müller 2020-04-24 12:15:20 +02:00
commit 8d314d2d56
3 changed files with 107 additions and 9 deletions

View File

@ -226,6 +226,16 @@ calamares_add_test(
partition/Tests.cpp partition/Tests.cpp
) )
if( KPMcore_FOUND )
calamares_add_test(
libcalamarespartitionkpmtest
SOURCES
partition/KPMTests.cpp
LIBRARIES
${OPTIONAL_PRIVATE_LIBRARIES}
)
endif()
calamares_add_test( calamares_add_test(
libcalamareslocaletest libcalamareslocaletest
SOURCES SOURCES
@ -244,8 +254,8 @@ calamares_add_test(
modulesystem/Tests.cpp modulesystem/Tests.cpp
) )
if( BUILD_TESTING ) # This is not an actual test, it's a test / demo application
add_executable( test_geoip geoip/test_geoip.cpp ${geoip_src} ) # for experimenting with GeoIP.
target_link_libraries( test_geoip calamares Qt5::Network yamlcpp ) add_executable( test_geoip geoip/test_geoip.cpp ${geoip_src} )
calamares_automoc( test_geoip ) target_link_libraries( test_geoip calamares Qt5::Network yamlcpp )
endif() calamares_automoc( test_geoip )

View 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"

View File

@ -417,6 +417,12 @@ PartitionViewStep::onLeave()
{ {
QString espMountPoint QString espMountPoint
= Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString(); = 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 ); Partition* esp = m_core->findPartitionByMountPoint( espMountPoint );
QString message; QString message;
@ -428,12 +434,12 @@ PartitionViewStep::onLeave()
"<br/><br/>" "<br/><br/>"
"To configure an EFI system partition, go back and " "To configure an EFI system partition, go back and "
"select or create a FAT32 filesystem with the " "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/>" "<strong>%2</strong>.<br/><br/>"
"You can continue without setting up an EFI system " "You can continue without setting up an EFI system "
"partition but your system may fail to start." ) "partition but your system may fail to start." )
.arg( *Calamares::Branding::ShortProductName ) .arg( *Calamares::Branding::ShortProductName )
.arg( espMountPoint ); .arg( espMountPoint, espFlagName );
} }
else if ( esp && !PartUtils::isEfiBootable( esp ) ) else if ( esp && !PartUtils::isEfiBootable( esp ) )
{ {
@ -441,14 +447,14 @@ PartitionViewStep::onLeave()
description = tr( "An EFI system partition is necessary to start %1." description = tr( "An EFI system partition is necessary to start %1."
"<br/><br/>" "<br/><br/>"
"A partition was configured with mount point " "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/>" "flag is not set.<br/>"
"To set the flag, go back and edit the partition." "To set the flag, go back and edit the partition."
"<br/><br/>" "<br/><br/>"
"You can continue without setting the flag but your " "You can continue without setting the flag but your "
"system may fail to start." ) "system may fail to start." )
.arg( *Calamares::Branding::ShortProductName ) .arg( *Calamares::Branding::ShortProductName )
.arg( espMountPoint ); .arg( espMountPoint, espFlagName );
} }
if ( !message.isEmpty() ) if ( !message.isEmpty() )