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
|
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 )
|
||||||
|
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
|
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() )
|
||||||
|
Loading…
Reference in New Issue
Block a user