diff --git a/CMakeLists.txt b/CMakeLists.txt
index f241cedd0..4fb88420b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -237,6 +237,11 @@ set_package_properties(
find_package(ECM ${ECM_VERSION} NO_MODULE)
if( ECM_FOUND )
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_MODULE_PATH})
+ if ( BUILD_TESTING )
+ # ECM implies that we can build the tests, too
+ find_package( Qt5 COMPONENTS Test REQUIRED )
+ include( ECMAddTests )
+ endif()
endif()
find_package( KF5 COMPONENTS CoreAddons Crash )
diff --git a/calamares.desktop b/calamares.desktop
index 3cdce6888..46b2e979f 100644
--- a/calamares.desktop
+++ b/calamares.desktop
@@ -14,165 +14,165 @@ Categories=Qt;System;
X-AppStream-Ignore=true
Name[ar]=نظام التثبيت
-Icon[be]=calamares
-GenericName[be]=Усталёўшчык сістэмы
Comment[be]=Calamares — усталёўшчык сістэмы
+Icon[be]=calamares
Name[be]=Усталяваць сістэму
-Icon[bg]=calamares
-GenericName[bg]=Системен Инсталатор
+GenericName[be]=Усталёўшчык сістэмы
Comment[bg]=Calamares — Системен Инсталатор
+Icon[bg]=calamares
Name[bg]=Инсталирай системата
-Icon[ca]=calamares
-GenericName[ca]=Instal·lador de sistema
+GenericName[bg]=Системен Инсталатор
Comment[ca]=Calamares — Instal·lador de sistema
+Icon[ca]=calamares
Name[ca]=Instal·la el sistema
-Icon[da]=calamares
-GenericName[da]=Systeminstallationsprogram
+GenericName[ca]=Instal·lador de sistema
Comment[da]=Calamares — Systeminstallationsprogram
+Icon[da]=calamares
Name[da]=Installér system
-Icon[de]=calamares
-GenericName[de]=Installation des Betriebssystems
+GenericName[da]=Systeminstallationsprogram
Comment[de]=Calamares - Installation des Betriebssystems
+Icon[de]=calamares
Name[de]=System installieren
-Icon[el]=calamares
-GenericName[el]=Εγκατάσταση συστήματος
+GenericName[de]=Installation des Betriebssystems
Comment[el]=Calamares — Εγκατάσταση συστήματος
+Icon[el]=calamares
Name[el]=Εγκατάσταση συστήματος
-Icon[en_GB]=calamares
-GenericName[en_GB]=System Installer
+GenericName[el]=Εγκατάσταση συστήματος
Comment[en_GB]=Calamares — System Installer
+Icon[en_GB]=calamares
Name[en_GB]=Install System
-Icon[es]=calamares
-GenericName[es]=Instalador del Sistema
+GenericName[en_GB]=System Installer
Comment[es]=Calamares — Instalador del Sistema
+Icon[es]=calamares
Name[es]=Instalar Sistema
-Icon[et]=calamares
-GenericName[et]=Süsteemipaigaldaja
+GenericName[es]=Instalador del Sistema
Comment[et]=Calamares — süsteemipaigaldaja
+Icon[et]=calamares
Name[et]=Paigalda süsteem
+GenericName[et]=Süsteemipaigaldaja
Name[eu]=Sistema instalatu
Name[es_PR]=Instalar el sistema
-Icon[fr]=calamares
-GenericName[fr]=Installateur système
Comment[fr]=Calamares - Installateur système
+Icon[fr]=calamares
Name[fr]=Installer le système
+GenericName[fr]=Installateur système
Name[gl]=Instalación do Sistema
-Icon[he]=calamares
-GenericName[he]=אשף התקנה
Comment[he]=Calamares - אשף התקנה
+Icon[he]=calamares
Name[he]=התקנת מערכת
-Icon[hi]=calamares
-GenericName[hi]=सिस्टम इंस्टॉलर
+GenericName[he]=אשף התקנה
Comment[hi]=Calamares — सिस्टम इंस्टॉलर
+Icon[hi]=calamares
Name[hi]=सिस्टम इंस्टॉल करें
-Icon[hr]=calamares
-GenericName[hr]=Instalacija sustava
+GenericName[hi]=सिस्टम इंस्टॉलर
Comment[hr]=Calamares — Instalacija sustava
+Icon[hr]=calamares
Name[hr]=Instaliraj sustav
-Icon[hu]=calamares
-GenericName[hu]=Rendszer Telepítő
+GenericName[hr]=Instalacija sustava
Comment[hu]=Calamares — Rendszer Telepítő
+Icon[hu]=calamares
Name[hu]=Rendszer telepítése
-Icon[id]=calamares
-GenericName[id]=Pemasang
+GenericName[hu]=Rendszer Telepítő
Comment[id]=Calamares — Pemasang Sistem
+Icon[id]=calamares
Name[id]=Instal Sistem
-Icon[is]=calamares
-GenericName[is]=Kerfis uppsetning
+GenericName[id]=Pemasang
Comment[is]=Calamares — Kerfis uppsetning
+Icon[is]=calamares
Name[is]=Setja upp kerfið
-Icon[cs_CZ]=calamares
-GenericName[cs_CZ]=Instalátor systému
+GenericName[is]=Kerfis uppsetning
Comment[cs_CZ]=Calamares – instalátor operačních systémů
+Icon[cs_CZ]=calamares
Name[cs_CZ]=Nainstalovat
-Icon[ja]=calamares
-GenericName[ja]=システムインストーラー
+GenericName[cs_CZ]=Instalátor systému
Comment[ja]=Calamares — システムインストーラー
+Icon[ja]=calamares
Name[ja]=システムをインストール
-Icon[ko]=깔라마레스
-GenericName[ko]=시스템 설치 관리자
+GenericName[ja]=システムインストーラー
Comment[ko]=깔라마레스 — 시스템 설치 관리자
+Icon[ko]=깔라마레스
Name[ko]=시스템 설치
-Icon[lt]=calamares
-GenericName[lt]=Sistemos diegimas į kompiuterį
+GenericName[ko]=시스템 설치 관리자
Comment[lt]=Calamares — Sistemos diegimo programa
+Icon[lt]=calamares
Name[lt]=Įdiegti Sistemą
-Icon[it_IT]=calamares
-GenericName[it_IT]=Programma d'installazione del sistema
+GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[it_IT]=Calamares — Programma d'installazione del sistema
+Icon[it_IT]=calamares
Name[it_IT]=Installa il sistema
-Icon[nb]=calamares
-GenericName[nb]=Systeminstallatør
+GenericName[it_IT]=Programma d'installazione del sistema
Comment[nb]=Calamares-systeminstallatør
+Icon[nb]=calamares
Name[nb]=Installer System
-Icon[nl]=calamares
-GenericName[nl]=Installatieprogramma
+GenericName[nb]=Systeminstallatør
Comment[nl]=Calamares — Installatieprogramma
+Icon[nl]=calamares
Name[nl]=Installeer systeem
-Icon[pl]=calamares
-GenericName[pl]=Instalator systemu
+GenericName[nl]=Installatieprogramma
Comment[pl]=Calamares — Instalator systemu
+Icon[pl]=calamares
Name[pl]=Zainstaluj system
-Icon[pt_BR]=calamares
-GenericName[pt_BR]=Instalador de Sistema
+GenericName[pl]=Instalator systemu
Comment[pt_BR]=Calamares — Instalador de Sistema
+Icon[pt_BR]=calamares
Name[pt_BR]=Sistema de Instalação
-Icon[ro]=calamares
-GenericName[ro]=Instalator de sistem
+GenericName[pt_BR]=Instalador de Sistema
Comment[ro]=Calamares — Instalator de sistem
+Icon[ro]=calamares
Name[ro]=Instalează sistemul
-Icon[ru]=calamares
-GenericName[ru]=Установщик системы
+GenericName[ro]=Instalator de sistem
Comment[ru]=Calamares - Установщик системы
+Icon[ru]=calamares
Name[ru]=Установить систему
-Icon[sk]=calamares
-GenericName[sk]=Inštalátor systému
+GenericName[ru]=Установщик системы
Comment[sk]=Calamares — Inštalátor systému
+Icon[sk]=calamares
Name[sk]=Inštalovať systém
+GenericName[sk]=Inštalátor systému
Name[sl]=Namesti sistem
-Icon[sq]=calamares
-GenericName[sq]=Instalues Sistemi
Comment[sq]=Calamares — Instalues Sistemi
+Icon[sq]=calamares
Name[sq]=Instalo Sistemin
-Icon[fi_FI]=calamares
-GenericName[fi_FI]=Järjestelmän Asennusohjelma
+GenericName[sq]=Instalues Sistemi
Comment[fi_FI]=Calamares — Järjestelmän Asentaja
+Icon[fi_FI]=calamares
Name[fi_FI]=Asenna Järjestelmä
+GenericName[fi_FI]=Järjestelmän Asennusohjelma
Name[sr@latin]=Instaliraj sistem
Name[sr]=Инсталирај систем
-Icon[sv]=calamares
-GenericName[sv]=Systeminstallerare
Comment[sv]=Calamares — Systeminstallerare
+Icon[sv]=calamares
Name[sv]=Installera system
+GenericName[sv]=Systeminstallerare
Name[th]=ติดตั้งระบบ
-GenericName[uk]=Встановлювач системи
Comment[uk]=Calamares - Встановлювач системи
Name[uk]=Встановити Систему
-Icon[zh_CN]=calamares
-GenericName[zh_CN]=系统安装程序
+GenericName[uk]=Встановлювач системи
Comment[zh_CN]=Calamares — 系统安装程序
+Icon[zh_CN]=calamares
Name[zh_CN]=安装系统
-Icon[zh_TW]=calamares
-GenericName[zh_TW]=系統安裝程式
+GenericName[zh_CN]=系统安装程序
Comment[zh_TW]=Calamares ── 系統安裝程式
+Icon[zh_TW]=calamares
Name[zh_TW]=安裝系統
-Icon[ast]=calamares
-GenericName[ast]=Instalador del sistema
+GenericName[zh_TW]=系統安裝程式
Comment[ast]=Calamares — Instalador del sistema
+Icon[ast]=calamares
Name[ast]=Instalar sistema
-Icon[eo]=calamares
-GenericName[eo]=Sistema Instalilo
+GenericName[ast]=Instalador del sistema
Comment[eo]=Calamares — Sistema Instalilo
+Icon[eo]=calamares
Name[eo]=Instali Sistemo
-Icon[es_MX]=calamares
-GenericName[es_MX]=Instalador del sistema
+GenericName[eo]=Sistema Instalilo
Comment[es_MX]=Calamares - Instalador del sistema
+Icon[es_MX]=calamares
Name[es_MX]=Instalar el Sistema
-Icon[pt_PT]=calamares
-GenericName[pt_PT]=Instalador de Sistema
+GenericName[es_MX]=Instalador del sistema
Comment[pt_PT]=Calamares - Instalador de Sistema
+Icon[pt_PT]=calamares
Name[pt_PT]=Instalar Sistema
-Icon[tr_TR]=calamares
-GenericName[tr_TR]=Sistem Yükleyici
+GenericName[pt_PT]=Instalador de Sistema
Comment[tr_TR]=Calamares — Sistem Yükleyici
+Icon[tr_TR]=calamares
Name[tr_TR]=Sistemi Yükle
+GenericName[tr_TR]=Sistem Yükleyici
diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts
index 7cfef1875..c69150583 100644
--- a/lang/calamares_da.ts
+++ b/lang/calamares_da.ts
@@ -1693,7 +1693,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.
- Partitionstabellen på %1 har allerede %2 primære partitioner, og der kan ikke tilføjes flere. Fjern venligst en primær partition og tilføj i stedet en udviddet partition.
+ Partitionstabellen på %1 har allerede %2 primære partitioner, og der kan ikke tilføjes flere. Fjern venligst en primær partition og tilføj i stedet en udvidet partition.
diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts
index 572a4b1df..26062f604 100644
--- a/lang/calamares_fr.ts
+++ b/lang/calamares_fr.ts
@@ -4,7 +4,7 @@
- L'<strong>environnement de démarrage</strong> de ce système.<br><br>Les anciens systèmes x86 supportent uniquement le <strong>BIOS</strong>.<br>Les systèmes récents utilisent habituellement <strong>EFI</strong>, mais peuvent également afficher BIOS s'ils sont démarrés en mode de compatibilité.
+ L'<strong>environnement de démarrage</strong> de ce système.<br><br>Les anciens systèmes x86 supportent uniquement <strong>BIOS</strong>.<br>Les systèmes récents utilisent habituellement <strong>EFI</strong>, mais peuvent également afficher BIOS s'ils sont démarrés en mode de compatibilité.
diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts
index fed3a48f4..cdceb60de 100644
--- a/lang/calamares_he.ts
+++ b/lang/calamares_he.ts
@@ -521,7 +521,7 @@ The installer will quit and all changes will be lost.
-
+ משימת תהליכי הקשר
@@ -2358,7 +2358,7 @@ Output:
-
+ משימת תהליכי מעטפת
diff --git a/lang/calamares_hu.ts b/lang/calamares_hu.ts
index 20ffbb815..75f3457b8 100644
--- a/lang/calamares_hu.ts
+++ b/lang/calamares_hu.ts
@@ -207,7 +207,7 @@
-
+ &Telepítés
@@ -229,7 +229,7 @@ Minden változtatás elveszik, ha kilépsz a telepítőből.
- @Nem
+ &Nem
@@ -944,7 +944,7 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l
- $Újraindítás most
+ Új&raindítás most
diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts
index 12d53ba11..33191566b 100644
--- a/lang/calamares_lt.ts
+++ b/lang/calamares_lt.ts
@@ -244,7 +244,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.
- %1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų atšaukti nebegalėsite.</strong>
+ %1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų nebegalėsite atšaukti.</strong>
diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts
index d20d75630..d1c1a62cc 100644
--- a/lang/calamares_nl.ts
+++ b/lang/calamares_nl.ts
@@ -50,7 +50,7 @@
-
+ Lege pagina
@@ -192,7 +192,7 @@
-
+ Calamares Initialisatie mislukt
@@ -202,7 +202,7 @@
-
+ <br/>The volgende modules konden niet worden geladen:
@@ -1244,7 +1244,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan.
-
+ Wachtwoord is te zwak
@@ -1259,12 +1259,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan.
-
+ Het wachtwoord is hetzelfde als het oude wachtwoord
-
+ Het wachtwoord is een palindroom
@@ -1274,12 +1274,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan.
-
+ Het wachtwoord lijkt te veel op het oude wachtwoord
-
+ Het wachtwoord bevat de gebruikersnaam op een of andere manier
diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts
index 4889eabf1..b69c5f63c 100644
--- a/lang/calamares_zh_CN.ts
+++ b/lang/calamares_zh_CN.ts
@@ -9,7 +9,7 @@
- 这个系统从 <strong>EFI</strong> 引导环境启动。<br><br>目前市面上大多数的民用设备都使用 EFI,并同时与之使用 GPT 分区表。<br>要从 EFI 环境引导的话,本安装程序必须部署一个引导器(如 <strong>GRUB</strong> 或 <strong>systemd-boot</strong>)到 <strong>EFI 系统分区</strong>。这个步骤是自动的,除非您选择手动分区——此时您必须自行选择或创建。
+ 这个系统是从 <strong>EFI</strong> 引导环境启动的。<br><br>目前市面上大多数的民用设备都使用 EFI,并同时对硬盘使用 GPT 分区表分区。<br>您如果要从 EFI 环境引导这个系统的话,本安装程序必须安装一个引导器(如 <strong>GRUB</strong> 或 <strong>systemd-boot</strong>)到 <strong>EFI 分区</strong>。这个步骤将会由本安装程序自动执行,除非您选择自己创建分区——此时您必须选择让本安装程序自动创建EFI分区或您自己手动创建EFI分区。
@@ -51,7 +51,7 @@
-
+ 空白页
@@ -193,17 +193,17 @@
-
+ Calamares安装失败
-
+ %1无法安装。 Calamares无法加载所有已配置的模块。这是分配使用Calamares的方式的问题。
-
+ <br/>无法加载以下模块:
@@ -265,7 +265,7 @@ The installer will quit and all changes will be lost.
- 安装过程已完毕。请关闭安装器。
+ 安装已完成。请关闭安装程序。
@@ -334,7 +334,7 @@ The installer will quit and all changes will be lost.
- 为了更好的体验,请确定这台电脑:
+ 为了更好的体验,请确保这台电脑:
@@ -509,12 +509,12 @@ The installer will quit and all changes will be lost.
-
+ 该命令在主机环境中运行,且需要知道根路径,但没有定义root挂载点。
-
+ 命令行需要知道用户的名字,但用户名没有被设置
@@ -1665,7 +1665,7 @@ The installer will quit and all changes will be lost.
-
+ 创建
@@ -1690,12 +1690,12 @@ The installer will quit and all changes will be lost.
-
+ 无法创建新分区
-
+ %1上的分区表已经有%2个主分区,并且不能再添加。请删除一个主分区并添加扩展分区。
@@ -1841,17 +1841,17 @@ The installer will quit and all changes will be lost.
-
+ 保存文件以供日后使用
-
+ 没有已保存且供日后使用的配置文件。
-
+ 并不是所有配置文件都可以被保留
diff --git a/lang/python/hu/LC_MESSAGES/python.mo b/lang/python/hu/LC_MESSAGES/python.mo
index 94e29ac49..4cb87d96a 100644
Binary files a/lang/python/hu/LC_MESSAGES/python.mo and b/lang/python/hu/LC_MESSAGES/python.mo differ
diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po
index 286e27b3b..e2b46349c 100644
--- a/lang/python/hu/LC_MESSAGES/python.po
+++ b/lang/python/hu/LC_MESSAGES/python.po
@@ -10,7 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-06-18 07:46-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: miku84, 2017\n"
+"Last-Translator: Adriaan de Groot , 2018\n"
"Language-Team: Hungarian (https://www.transifex.com/calamares/teams/20061/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,7 +20,7 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
-msgstr ""
+msgstr "Fájlrendszerek leválasztása."
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
@@ -47,12 +47,12 @@ msgstr "Csomagok telepítése."
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Egy csomag telepítése."
+msgstr[1] "%(num)d csomag telepítése."
#: src/modules/packages/main.py:70
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "Egy csomag eltávolítása."
+msgstr[1] "%(num)d csomag eltávolítása."
diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt
index 598d3c313..4bf78176e 100644
--- a/src/libcalamares/CMakeLists.txt
+++ b/src/libcalamares/CMakeLists.txt
@@ -105,6 +105,19 @@ install( TARGETS calamares
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
+if ( ECM_FOUND AND BUILD_TESTING )
+ ecm_add_test(
+ Tests.cpp
+ TEST_NAME
+ libcalamarestest
+ LINK_LIBRARIES
+ calamares
+ Qt5::Core
+ Qt5::Test
+ )
+ set_target_properties( libcalamarestest PROPERTIES AUTOMOC TRUE )
+endif()
+
# Make symlink lib/calamares/libcalamares.so to lib/libcalamares.so.VERSION so
# lib/calamares can be used as module path for the Python interpreter.
install( CODE "
diff --git a/src/libcalamares/Tests.cpp b/src/libcalamares/Tests.cpp
new file mode 100644
index 000000000..7595718e4
--- /dev/null
+++ b/src/libcalamares/Tests.cpp
@@ -0,0 +1,59 @@
+/* === This file is part of Calamares - ===
+ *
+ * Copyright 2018, Adriaan de Groot
+ *
+ * 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 .
+ */
+
+#include "Tests.h"
+
+#include "utils/Logger.h"
+
+#include
+
+QTEST_GUILESS_MAIN( LibCalamaresTests )
+
+LibCalamaresTests::LibCalamaresTests()
+{
+}
+
+LibCalamaresTests::~LibCalamaresTests()
+{
+}
+
+void
+LibCalamaresTests::initTestCase()
+{
+}
+
+void
+LibCalamaresTests::testDebugLevels()
+{
+ Logger::setupLogLevel( Logger::LOG_DISABLE );
+
+ QCOMPARE( Logger::logLevel(), Logger::LOG_DISABLE );
+
+ for ( unsigned int level = 0; level <= Logger::LOGVERBOSE ; ++level )
+ {
+ Logger::setupLogLevel( level );
+ QCOMPARE( Logger::logLevel(), level );
+ QVERIFY( Logger::logLevelEnabled( level ) );
+
+ for ( unsigned int xlevel = 0; xlevel <= Logger::LOGVERBOSE; ++xlevel )
+ {
+ QCOMPARE( Logger::logLevelEnabled( xlevel ), xlevel <= level );
+ }
+ }
+}
+
diff --git a/src/libcalamares/Tests.h b/src/libcalamares/Tests.h
new file mode 100644
index 000000000..123655c6e
--- /dev/null
+++ b/src/libcalamares/Tests.h
@@ -0,0 +1,36 @@
+/* === This file is part of Calamares - ===
+ *
+ * Copyright 2018, Adriaan de Groot
+ *
+ * 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 .
+ */
+
+#ifndef TESTS_H
+#define TESTS_H
+
+#include
+
+class LibCalamaresTests : public QObject
+{
+ Q_OBJECT
+public:
+ LibCalamaresTests();
+ ~LibCalamaresTests() override;
+
+private Q_SLOTS:
+ void initTestCase();
+ void testDebugLevels();
+};
+
+#endif
diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp
index 735414b85..98aa2121f 100644
--- a/src/libcalamares/utils/Logger.cpp
+++ b/src/libcalamares/utils/Logger.cpp
@@ -55,6 +55,18 @@ setupLogLevel(unsigned int level)
s_threshold = level + 1; // Comparison is < in log() function
}
+bool
+logLevelEnabled(unsigned int level)
+{
+ return level < s_threshold;
+}
+
+unsigned int
+logLevel()
+{
+ return s_threshold > 0 ? s_threshold - 1 : 0;
+}
+
static void
log( const char* msg, unsigned int debugLevel, bool toDisk = true )
{
diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h
index dba386eae..0cb4b494f 100644
--- a/src/libcalamares/utils/Logger.h
+++ b/src/libcalamares/utils/Logger.h
@@ -89,6 +89,12 @@ namespace Logger
*/
DLLEXPORT void setupLogLevel( unsigned int level );
+ /** @brief Return the configured log-level. */
+ DLLEXPORT unsigned int logLevel();
+
+ /** @brief Would the given @p level really be logged? */
+ DLLEXPORT bool logLevelEnabled( unsigned int level );
+
/**
* @brief Row-oriented formatted logging.
*
diff --git a/src/modules/contextualprocess/CMakeLists.txt b/src/modules/contextualprocess/CMakeLists.txt
index 2cf8d3879..f75946b58 100644
--- a/src/modules/contextualprocess/CMakeLists.txt
+++ b/src/modules/contextualprocess/CMakeLists.txt
@@ -8,10 +8,7 @@ calamares_add_plugin( contextualprocess
SHARED_LIB
)
-if( ECM_FOUND )
- find_package( Qt5 COMPONENTS Test REQUIRED )
- include( ECMAddTests )
-
+if( ECM_FOUND AND BUILD_TESTING )
ecm_add_test(
Tests.cpp
ContextualProcessJob.cpp # Builds it a second time
diff --git a/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo
index 0dac94ca0..240d5c4db 100644
Binary files a/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.mo differ
diff --git a/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.po
index 14bf4463a..564bcdabc 100644
--- a/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.po
+++ b/src/modules/dummypythonqt/lang/zh_CN/LC_MESSAGES/dummypythonqt.po
@@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-09-04 08:16-0400\n"
+"POT-Creation-Date: 2018-06-18 07:46-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: Mingcong Bai , 2017\n"
+"Last-Translator: soenggam , 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/calamares/teams/20061/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -24,7 +24,7 @@ msgstr "按我按我!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
-msgstr "一个平淡无奇的 QLabel。"
+msgstr "一个新的QLabel。"
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
diff --git a/src/modules/fsresizer/CMakeLists.txt b/src/modules/fsresizer/CMakeLists.txt
index 5de329cad..e339b2799 100644
--- a/src/modules/fsresizer/CMakeLists.txt
+++ b/src/modules/fsresizer/CMakeLists.txt
@@ -20,10 +20,7 @@ if ( KPMcore_FOUND )
SHARED_LIB
)
- if( ECM_FOUND )
- find_package( Qt5 COMPONENTS Test REQUIRED )
- include( ECMAddTests )
-
+ if( ECM_FOUND AND BUILD_TESTING )
ecm_add_test(
Tests.cpp
TEST_NAME
diff --git a/src/modules/fsresizer/ResizeFSJob.cpp b/src/modules/fsresizer/ResizeFSJob.cpp
index 4320baba1..4df41a7d4 100644
--- a/src/modules/fsresizer/ResizeFSJob.cpp
+++ b/src/modules/fsresizer/ResizeFSJob.cpp
@@ -302,7 +302,7 @@ ResizeFSJob::exec()
return Calamares::JobResult::error(
tr( "Resize Failed" ),
!m_fsname.isEmpty() ? tr( "The filesystem %1 must be resized, but cannot." ).arg( m_fsname )
- : tr( "The device %11 must be resized, but cannot" ).arg( m_fsname ) );
+ : tr( "The device %1 must be resized, but cannot" ).arg( m_fsname ) );
return Calamares::JobResult::ok();
}
diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt
index 24259d797..576f2e16e 100644
--- a/src/modules/locale/CMakeLists.txt
+++ b/src/modules/locale/CMakeLists.txt
@@ -1,9 +1,3 @@
-find_package(ECM ${ECM_VERSION} NO_MODULE)
-if( ECM_FOUND AND BUILD_TESTING )
- include( ECMAddTests )
- find_package( Qt5 COMPONENTS Core Test REQUIRED )
-endif()
-
# When debugging the timezone widget, add this debugging definition
# to have a debugging-friendly timezone widget, debug logging,
# and no intrusive timezone-setting while clicking around.
diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp
index 0913664ca..f41142b6a 100644
--- a/src/modules/partition/core/PartitionCoreModule.cpp
+++ b/src/modules/partition/core/PartitionCoreModule.cpp
@@ -509,18 +509,8 @@ PartitionCoreModule::jobs() const
lst << info->jobs;
devices << info->device.data();
}
- cDebug() << "Creating FillGlobalStorageJob with bootLoader path" << m_bootLoaderInstallPath;
lst << Calamares::job_ptr( new FillGlobalStorageJob( devices, m_bootLoaderInstallPath ) );
-
- QStringList jobsDebug;
- foreach ( auto job, lst )
- jobsDebug.append( job->prettyName() );
-
- cDebug() << "PartitionCodeModule has been asked for jobs. About to return:";
- for ( const auto item: jobsDebug )
- cDebug() << " .." << item;
-
return lst;
}
@@ -573,9 +563,9 @@ PartitionCoreModule::dumpQueue() const
cDebug() << "# Queue:";
for ( auto info : m_deviceInfos )
{
- cDebug() << " .. Device:" << info->device->name();
+ cDebug() << "## Device:" << info->device->name();
for ( auto job : info->jobs )
- cDebug() << " .." << job->prettyName();
+ cDebug() << "-" << job->prettyName();
}
}
diff --git a/src/modules/partition/jobs/CreatePartitionTableJob.cpp b/src/modules/partition/jobs/CreatePartitionTableJob.cpp
index 3ae201d62..937b8437d 100644
--- a/src/modules/partition/jobs/CreatePartitionTableJob.cpp
+++ b/src/modules/partition/jobs/CreatePartitionTableJob.cpp
@@ -20,6 +20,8 @@
#include "jobs/CreatePartitionTableJob.h"
+#include "core/PartitionIterator.h"
+
#include "utils/Logger.h"
// KPMcore
@@ -65,6 +67,14 @@ CreatePartitionTableJob::prettyStatusMessage() const
}
+static inline QDebug&
+operator <<( QDebug& s, PartitionIterator& it )
+{
+ s << ( ( *it ) ? ( *it )->deviceNode() : QString( "" ) );
+ return s;
+}
+
+
Calamares::JobResult
CreatePartitionTableJob::exec()
{
@@ -73,33 +83,28 @@ CreatePartitionTableJob::exec()
PartitionTable* table = m_device->partitionTable();
cDebug() << "Creating new partition table of type" << table->typeName()
- << " - Uncommitted yet: " << table;
+ << ", uncommitted yet:";
- QProcess lsblk;
- lsblk.setProgram( "lsblk" );
- lsblk.setProcessChannelMode( QProcess::MergedChannels );
- lsblk.start();
- lsblk.waitForFinished();
+ if ( Logger::logLevelEnabled( Logger::LOGDEBUG ) )
+ {
+ for ( auto it = PartitionIterator::begin( table );
+ it != PartitionIterator::end( table ); ++it )
+ cDebug() << *it;
- QByteArray byte = lsblk.readAllStandardOutput();
- QStringList lines = QString(byte).split(("\n"),QString::SkipEmptyParts);
- cDebug() << "CreatePartitionTableJob asked for lsblk output:";
+ QProcess lsblk;
+ lsblk.setProgram( "lsblk" );
+ lsblk.setProcessChannelMode( QProcess::MergedChannels );
+ lsblk.start();
+ lsblk.waitForFinished();
+ cDebug() << "lsblk:\n" << lsblk.readAllStandardOutput();
- for (const auto line: lines)
- cDebug() << " .." << line;
-
- QProcess mount;
- mount.setProgram( "mount" );
- mount.setProcessChannelMode( QProcess::MergedChannels );
- mount.start();
- mount.waitForFinished();
-
- QByteArray mbyte = mount.readAllStandardOutput();
- QStringList mlines = QString(mbyte).split(("\n"),QString::SkipEmptyParts);
- cDebug() << "CreatePartitionTableJob asked for mount output:";
-
- for (const auto mline: mlines)
- cDebug() << " .." << mline;
+ QProcess mount;
+ mount.setProgram( "mount" );
+ mount.setProcessChannelMode( QProcess::MergedChannels );
+ mount.start();
+ mount.waitForFinished();
+ cDebug() << "mount:\n" << mount.readAllStandardOutput();
+ }
CreatePartitionTableOperation op(*m_device, table);
op.setStatus(Operation::StatusRunning);
diff --git a/src/modules/partition/jobs/FillGlobalStorageJob.cpp b/src/modules/partition/jobs/FillGlobalStorageJob.cpp
index 43a5f3904..597d62a82 100644
--- a/src/modules/partition/jobs/FillGlobalStorageJob.cpp
+++ b/src/modules/partition/jobs/FillGlobalStorageJob.cpp
@@ -56,9 +56,12 @@ findPartitionUuids( QList < Device* > devices )
QString path = p->partitionPath();
QString uuid = p->fileSystem().readUUID( p->partitionPath() );
hash.insert( path, uuid );
+ cDebug() << ".. added path=" << path << "UUID=" << uuid;
}
}
- cDebug() << hash;
+
+ if ( hash.isEmpty() )
+ cDebug() << ".. no UUIDs found.";
return hash;
}
@@ -90,10 +93,16 @@ mapForPartition( Partition* partition, const QString& uuid )
dynamic_cast< FS::luks& >( partition->fileSystem() ).innerFS() )
map[ "fs" ] = dynamic_cast< FS::luks& >( partition->fileSystem() ).innerFS()->name();
map[ "uuid" ] = uuid;
- cDebug() << partition->partitionPath()
- << "mtpoint:" << PartitionInfo::mountPoint( partition )
- << "fs:" << map[ "fs" ] << '(' << map[ "fsName" ] << ')'
- << uuid;
+
+ // Debugging for inside the loop in createPartitionList(),
+ // so indent a bit
+ Logger::CLog deb = cDebug();
+ using TR = Logger::DebugRow;
+ deb << " .. mapping for" << partition->partitionPath() << partition->deviceNode()
+ << TR( "mtpoint:", PartitionInfo::mountPoint( partition ) )
+ << TR( "fs:", map[ "fs" ].toString() )
+ << TR( "fsname", map[ "fsName" ].toString() )
+ << TR( "uuid", uuid );
if ( partition->roles().has( PartitionRole::Luks ) )
{
@@ -104,7 +113,7 @@ mapForPartition( Partition* partition, const QString& uuid )
map[ "luksMapperName" ] = luksFs->mapperName().split( "/" ).last();
map[ "luksUuid" ] = getLuksUuid( partition->partitionPath() );
map[ "luksPassphrase" ] = luksFs->passphrase();
- cDebug() << "luksMapperName:" << map[ "luksMapperName" ];
+ deb << TR( "luksMapperName:", map[ "luksMapperName" ].toString() );
}
}
@@ -215,9 +224,11 @@ FillGlobalStorageJob::createPartitionList() const
cDebug() << "Writing to GlobalStorage[\"partitions\"]";
for ( auto device : m_devices )
{
+ cDebug() << ".. partitions on" << device->deviceNode();
for ( auto it = PartitionIterator::begin( device );
it != PartitionIterator::end( device ); ++it )
{
+ // Debug-logging is done when creating the map
lst << mapForPartition( *it, hash.value( ( *it )->partitionPath() ) );
}
}
diff --git a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp
index 7f6169bbe..fee987479 100644
--- a/src/modules/partition/jobs/SetPartitionFlagsJob.cpp
+++ b/src/modules/partition/jobs/SetPartitionFlagsJob.cpp
@@ -132,6 +132,10 @@ SetPartFlagsJob::prettyStatusMessage() const
Calamares::JobResult
SetPartFlagsJob::exec()
{
+ cDebug() << "Setting flags on" << m_device->deviceNode()
+ << "partition" << partition()->deviceNode()
+ << "to" << m_flags;
+
Report report ( nullptr );
SetPartFlagsOperation op( *m_device, *partition(), m_flags );
op.setStatus( Operation::StatusRunning );
diff --git a/src/modules/partition/tests/CMakeLists.txt b/src/modules/partition/tests/CMakeLists.txt
index 68474287e..7b40c34a5 100644
--- a/src/modules/partition/tests/CMakeLists.txt
+++ b/src/modules/partition/tests/CMakeLists.txt
@@ -1,6 +1,4 @@
-find_package( Qt5 COMPONENTS Gui Test REQUIRED )
-
-include( ECMAddTests )
+find_package( Qt5 COMPONENTS Gui REQUIRED )
set( PartitionModule_SOURCE_DIR .. )
@@ -23,13 +21,15 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR}
)
-ecm_add_test( ${partitionjobtests_SRCS}
- TEST_NAME partitionjobtests
- LINK_LIBRARIES
- ${CALAMARES_LIBRARIES}
- kpmcore
- Qt5::Core
- Qt5::Test
-)
+if( ECM_FOUND AND BUILD_TESTING )
+ ecm_add_test( ${partitionjobtests_SRCS}
+ TEST_NAME partitionjobtests
+ LINK_LIBRARIES
+ ${CALAMARES_LIBRARIES}
+ kpmcore
+ Qt5::Core
+ Qt5::Test
+ )
-set_target_properties( partitionjobtests PROPERTIES AUTOMOC TRUE )
+ set_target_properties( partitionjobtests PROPERTIES AUTOMOC TRUE )
+endif()
diff --git a/src/modules/shellprocess/CMakeLists.txt b/src/modules/shellprocess/CMakeLists.txt
index 51d4c4a4c..82ae8b911 100644
--- a/src/modules/shellprocess/CMakeLists.txt
+++ b/src/modules/shellprocess/CMakeLists.txt
@@ -8,10 +8,7 @@ calamares_add_plugin( shellprocess
SHARED_LIB
)
-if( ECM_FOUND )
- find_package( Qt5 COMPONENTS Test REQUIRED )
- include( ECMAddTests )
-
+if( ECM_FOUND AND BUILD_TESTING )
ecm_add_test(
Tests.cpp
TEST_NAME
diff --git a/src/modules/users/CMakeLists.txt b/src/modules/users/CMakeLists.txt
index 16e235fd5..207ffbb3a 100644
--- a/src/modules/users/CMakeLists.txt
+++ b/src/modules/users/CMakeLists.txt
@@ -1,9 +1,4 @@
-find_package(ECM ${ECM_VERSION} NO_MODULE)
-if( ECM_FOUND )
- include( ECMAddTests )
-endif()
-
-find_package( Qt5 COMPONENTS Core Test REQUIRED )
+find_package( Qt5 COMPONENTS Core REQUIRED )
find_package( Crypt REQUIRED )
# Add optional libraries here
@@ -44,7 +39,7 @@ calamares_add_plugin( users
SHARED_LIB
)
-if( ECM_FOUND )
+if( ECM_FOUND AND BUILD_TESTING )
ecm_add_test(
PasswordTests.cpp
SetPasswordJob.cpp