Commit Graph

267 Commits

Author SHA1 Message Date
Adriaan de Groot
86ffab1873 [libcalamares] Use convenience Logger::NoQuote 2020-04-21 16:46:48 +02:00
Adriaan de Groot
6de82e6857 [libcalamares] Add convenience for QDebug.noquote()
- Use << Logger::NoQuote{} to turn off quoting **and** the space
- In practice, in Calamares we use this only around other processes'
  output, where we want neither quotes nor spaces.
2020-04-21 16:46:13 +02:00
Adriaan de Groot
16a5ca2a55 [libcalamares] Format floats with trailing digits
- When writing YAML, given a float **always** write
   some decimal digits (e.g. "1.0" rather than "1")
   so that the type of the written-out thing stays
   float.
 - Avoids test failure with the sample `welcome.conf`
   file which reads 1.0 and would write out 1, which then
   led to type differences.
2020-04-08 17:10:32 +02:00
Adriaan de Groot
3b354b8b20 [libcalamares] Handle qlonglong when writing YAML
- Handle qlonglong explicitly
- Add a fallbackfor things that convert to qulonglong, to
  avoid these remaining integer types from hitting the
  very end of the if-chain, and being written out as
  the **string** "<typename>"
2020-04-08 17:01:24 +02:00
Adriaan de Groot
c6463a30ea [libcalamares] Be far more detailed in comparing maps
- just comparing a==b (both QVariantMap) gives a
  not-so-informative message, so go through the keys looking
  for differences.
2020-04-08 16:47:03 +02:00
Adriaan de Groot
f33c737e99 [libcalamares] Pretty debug formatting
- toggle nospace() and noquote() part-way through the line,
  so that they only affect the output obtained from the external
  command.
2020-04-06 11:56:39 +02:00
Adriaan de Groot
4abb87ccca [libcalamares] Improve reporting on process failures
- In production, cDebug() might not show up, so the log will not
  contain the lines saying what program is being run;
- Errors should at least mention the program name, but "env" or
  "chroot" is not useful, so pull that from *args*, which is
  the command we actually want to run.
2020-04-06 11:17:47 +02:00
Adriaan de Groot
752399ca6b [libcalamares] Error out on empty command
- an empty command isn't going to work (although it might successfully
  run chroot or env in the target system, that's not useful)
- while here, move variable declarations closer to their use.
2020-04-06 11:15:10 +02:00
Adriaan de Groot
88c75fb5dc [libcalamares] Simplify program-arguments creation 2020-04-06 11:08:16 +02:00
Adriaan de Groot
d8ecd302e1 [libcalamares] Apply coding style
- minor space issues
 - drop a blank line after moc-warnings.h to avoid if being sorted
   downwards, after the MOC file it's protecting
2020-03-31 23:19:51 +02:00
Adriaan de Groot
83f5f9e1a7 [libcalamares] Introduce generic delete-later class
Don't bother with QScopeGuard just right now, since I can't
find a use-case in the Calamares codebase.

FIXES #1358
2020-03-28 11:49:23 +01:00
Adriaan de Groot
875f79b49f [libcalamares] Drop unused parameter
- the `parent` when installing a translator was not used, so drop it
  from the API. Chase some uses of the API, but leave welcome-modules
   broken: there's a merge of those coming.
2020-03-25 12:08:27 +01:00
Adriaan de Groot
1678a03cb3 [libcalamares] Tighten up types
- If we're converting a YAML map to a QVariant (Map), may as well
  express that in the types. This makes the return from, say,
  `yamlMapToVariant()` cheaper, but incurs conversion in
  `yamlToVariant()` .. previously the place for costs was
  swapped around.
- For those cases that want-and-expect a Map, or List, this makes
  the calls slightly cheaper. For the generic case, the costs move
  around internally.
2020-03-20 21:25:42 +01:00
Adriaan de Groot
841ea9ff48 [libcalamares] Tidy up includes
- Remove commented-out includes
- Consistent punctuation
2020-03-09 21:05:15 -05:00
Adriaan de Groot
0abde6f1a7 [libcalamares] Don't print funcinfo in continuations
- when a single function does more logging, it generally marks
  those as subsequent debug-messages (with Continuation, or SubEntry)
  and we don't need to print funcinfo for those, since it was already
  printed the first time.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
5248a37eb3 [libcalamares] Add FUNC_INFO into all debug messages
- This is needlessly verbose
- Chase CreatePartitionTableJob which needs to bind to a temporary
2020-03-03 17:00:57 +01:00
Adriaan de Groot
3ddee8090c [libcalamares] Drop intermediate CLog class
- All the real work is done in CDebug, so remove the base class.
2020-03-03 17:00:57 +01:00
Adriaan de Groot
f818d4b446 [libcalamares] Log Q_FUNC_INFO as part of debug
- Warnings, errors, don't get funcinfo, but regular cDebug()
  calls do. Other special-cases, like calling Logger::CDebug()
  constructor explicitly, don't get funcinfo either.

FIXES #1328
2020-02-27 13:20:19 +01:00
Adriaan de Groot
3456aabfce [libcalamares] Expand utility of list-logging
- Allow logging any QList type (needs explicit call in usage).
- Add a DebugList inheriting from DebugListT to keep existing
  code that logs QStringLists.
- For Calamares 3.3, consider using C++17 and class template deduction.
2020-02-27 11:59:24 +01:00
Adriaan de Groot
862b7e34df [libcalamares] Add tests for file-overwrite 2020-02-24 12:38:08 +01:00
Adriaan de Groot
f89951716e [libcalamares] Add mode to createTargetFile()
- Unconditionally **not** overwriting the target file isn't an option:
  writing hostname, for instance, expects that to be done even
  if `/etc/hostname` already exists on the target filesystem.
2020-02-24 12:14:50 +01:00
Adriaan de Groot
39cc43f26b [libcalamares] Fix tests
- QCOMPARE() is sensitive to differing types in actual and expected,
  and uchar and int (and mode_t and int) are different.
2020-02-21 17:53:43 +01:00
Adriaan de Groot
1bb43e06e2 Merge branch 'master' into kpmcore-manager 2020-02-19 18:34:44 +01:00
Adriaan de Groot
f6526f7d9f [libcalamares] Add some tests for CreationResult
- More important is the compiler warning that will show up
   if we add more failure states.
2020-02-14 13:21:16 +01:00
Adriaan de Groot
274115c727 [libcalamares] Update tests to reflect changed API 2020-02-14 13:07:29 +01:00
Adriaan de Groot
2d7398161d [libcalamares] More detail for createTargetFile()
- Return a result-object with statrus information and the path
   which was previously used (empty for "failures").
2020-02-14 13:03:51 +01:00
Adriaan de Groot
e72ecaafd3 Merge branch 'kpmcore-manager'
Introduces a "partitioning service" into libcalamares,
shuffles a bunch of things into it, tries to help out
with settling the system between partitioning actions.
2020-02-13 13:41:53 +01:00
Adriaan de Groot
59ddda6225 Merge branch 'wrangle-boost' 2020-02-12 12:44:09 +01:00
Adriaan de Groot
a11280b427 [libcalamares] Expand tests for printable entropy 2020-02-12 12:22:02 +01:00
Adriaan de Groot
090716ba4f [libcalamares] Warnings-- in Entropy
- reading a file yields a qint64
 - need to mash the unsigned data from twister to signed char data.
2020-02-12 12:15:13 +01:00
Adriaan de Groot
7efed8226c [libcalamares] Warnings--, update copyright 2020-02-12 12:10:58 +01:00
Adriaan de Groot
8181808bec [libcalamares] Fix build
- drop now-obsolete boost-warnings.h
 - add missing namespace alias to GlobalStorage.h (removed accidentally
   in previous commit)
2020-02-12 11:25:10 +01:00
Adriaan de Groot
96580e5c40 [libcalamares] Convenience header for Boost and its warnings 2020-02-12 10:28:48 +01:00
Adriaan de Groot
6432b7f42a [libcalamares] Hit Boost warnings with a hammer
- Tons of warnings from Clang 9 in Boost::Python code, so
   turn of most of those warnings in the Boost-support code.
2020-02-11 16:46:44 +01:00
Adriaan de Groot
240fe2a564 [libcalamares] Add convenience createTargetParentDirs() 2020-02-07 16:09:02 +01:00
Adriaan de Groot
6ede9f2c7c [libcalamares] Test QFileInfo::dir() for completeness 2020-02-07 16:08:38 +01:00
Adriaan de Groot
e65969d587 [libcalamares] Re-do createTargetDirs()
- Drop the basedirs idea, replace return with just bool
 - Use QDir::mkpath, with some extra validation
 - Test it a bit
2020-02-07 15:51:46 +01:00
Adriaan de Groot
8b8ecf7b7b [libcalamars] Improve test init and cleanup
- Test createTargetFile and removeTargetFile
 - Clean up afterwards
 - Ensure /tmp is the RMP for each test
2020-02-07 15:23:02 +01:00
Adriaan de Groot
b502d78984 [libcalamares] Fix warning message
- "create" was when this function was used elsewhere
2020-02-07 13:58:44 +01:00
Adriaan de Groot
394eee3954 [libcalamares] Test more targetPath() scenario's 2020-02-07 13:57:14 +01:00
Adriaan de Groot
8d23e665ea [libcalamares] Fix targetPath() tests
- there is less simplification done than you might think
2020-02-07 13:53:49 +01:00
Adriaan de Groot
daa5b804b3 [libcalamares] Split paths-tests into own test executable
- Since these tests all want a system object, and a GS
   with a sensible setup, give them one with its own initTestCase().

This could have been done with one executable, running tests from
multiple classes, but there's not much overall benefit there.
2020-02-07 13:49:06 +01:00
Adriaan de Groot
31878dd43b [libcalamares] Avoid double / between root and path in targetPath() 2020-02-07 13:29:35 +01:00
Adriaan de Groot
15bca702c1 [libcalamares] Add tests for path functions (part 1) 2020-02-07 11:51:13 +01:00
Adriaan de Groot
95936549e2 [libcalamares] Add a createTargetBasedirs()
- Used to ensure that the directories leading up to a given path
   exist. Implementation is incomplete and broken for now.
 - While here, avoid removing an empty pathname in removeTargetFile()
   (the empty pathname indicates a broken configuration).
2020-02-07 11:30:37 +01:00
Adriaan de Groot
bf882cec1d [machineid] Migrate removeFile() to libcalamares
- Becomes removeTargetFile()
2020-02-07 11:16:01 +01:00
Adriaan de Groot
9ef04192db [libcalamares] Simplify returns in targetPath() 2020-02-07 11:03:40 +01:00
Adriaan de Groot
4b3f7eb209 [calamares] Local translations can be a separate setting
- Don't stick this in Settings, though, it becomes overly complicated.
2020-02-05 17:48:39 +01:00
Adriaan de Groot
d956c79291 [libcalamares] Load translations from more places
- To support translation testing, without needing to recompile
   Calamares, load files from the local directory when debugging,
   or from /usr/share/calamares/lang/ in general.
 - This allows updating translations and testing them with just
   lrelease (a translation build tool) installed, without rebuilding
   Calamares.
 - This allows distro's to ship updated or modified translations without
   rebuilding Calamares.
2020-01-30 19:06:33 +01:00
Adriaan de Groot
e56948cefa [libcalamares] Fix tests (cell is the lower unicode byte) 2020-01-29 16:41:17 +01:00