Commit Graph

236 Commits

Author SHA1 Message Date
Martchus 940593429a Allow ArgumentParserTests to pass when working dir present within testfiles dir 2020-06-16 01:03:39 +02:00
Martchus 52722be407 Add test helper execHelperAppInSearchPath() 2020-06-10 18:42:50 +02:00
Martchus 26b0d2d97c Avoid some test classes to show up in the documentation 2020-05-01 13:47:06 +02:00
Martchus 43550b6d55 Add AdvancedIniFile for better preserving certain aspects like comments 2020-05-01 13:47:06 +02:00
Martchus 32780ed6a6 Support formatting ISO timestamps via DateTime::toString() with option to omit defaults
Omitting components are also allowed when parsing ISO timestamps so it makes sense to
have something similar in the other direction as well.

Note that the idea comes from ID3v2.4.0 which stores timestamps in a subset of ISO 8601
similarily to what this library supports and it allows to omit default components as
well.
2020-04-26 21:38:02 +02:00
Martchus c834f8923d Allow omitting month and day when parsing ISO date
This leaves only the year as mandatory component (other components
can already be omitted).
2020-04-24 22:15:49 +02:00
Martchus 73470d0b65 Fix DateTime::fromDateAndTime() for the day 0001-01-01 2020-04-24 21:55:45 +02:00
Martchus 3fe1ea64cf Improve documentation of some test utilities 2020-04-13 23:35:22 +02:00
Martchus 06e29dd751 test utils: Use /proc/self/exe to find srcdirref, at least where supported
So it also works if e.g. chdir() is called before instantiating
the TestApplication.
2020-04-11 22:12:49 +02:00
Martchus 9fe7053869 Print "Executing test" via cppunit.h
Otherwise it is a bit annoying if one just wants to instantiate
a TestApplication for looking up test files.
2020-04-11 21:50:55 +02:00
Martchus e1313c77a0 Add test for fileName() without parent directories 2020-04-11 21:44:07 +02:00
Martchus a7564b8dde Add TESTUTILS_ASSERT_LIKE_FLAGS to pass regex flags 2020-03-02 18:24:06 +01:00
Martchus 8744cf95ef Ensure no copy is made when using argsToString()
It seems that std::make_tuple() is using __decay_and_strip so
the arguments get copied. Using the std::tuple c'tor directly
instead.

When using the %-operator it is already taken care that strings
are stored as pointers and not by value.
2020-02-18 19:29:23 +01:00
Martchus c7c5352325 Use a universal reference to implement dereferenceMaybe() 2020-02-18 19:20:24 +01:00
Martchus 561f298567 Fix string builder tests for Windows 2020-02-14 17:14:06 +01:00
Martchus 1154ed4d1c Improve exception messages of NativeFileStream
So one gets e.g. "open failed: Permission denied" instead of
just "open failed: iostream error".
2020-02-14 17:13:05 +01:00
Martchus 7204bc6f06 Support using string builder with types convertible to target string type
So e.g. std::filesystem::path can be used to build an std::string.
2020-02-13 17:05:46 +01:00
Martchus a5283535cc Support nested tuples in string builder
This is useful to concatenate previously constructed sub
strings passed around as tuples.
2020-01-26 19:02:22 +01:00
Martchus 0cdf2c3492 Use const where possible in code dealing with profiling data 2020-01-12 21:02:43 +01:00
Martchus 1bdc088b54 Close workingCopy in workingCopyPathAs() for correct error handling 2019-12-15 19:01:04 +01:00
Martchus 07ae1588fa Add writeFile()
Due to the required `file.close()` at then end this is easy
to get wrong. So let's add a helper.
2019-12-15 19:00:15 +01:00
Martchus b8a60a0cd4 Support string builder operator '%' for std::string_view 2019-11-28 23:05:55 +01:00
Martchus 8e3aa84780 Support std::string_view in stringbuilder.h 2019-11-28 22:34:10 +01:00
Martchus 085ec2feca Improve DateTime
* Improve documentation about time zone handling
* Add DateTime::toTimeStamp()
* Add experimental DateTime::fromChronoTimePoint()
  and DateTime::fromChronoTimePointGmt()
2019-11-17 22:30:51 +01:00
Martchus 4e3393ee72 Apply clang-format 2019-10-30 23:02:30 +01:00
Martchus a383d7dac5 Use CPPUNIT_ASSERT_EQUAL in IoTests::testBinaryReader() 2019-10-30 20:34:34 +01:00
Martchus 1177381521 Add CppUtilities::endsWith() 2019-10-30 20:34:16 +01:00
Martchus 9a95db3773 Add BinaryReader::readRemainingBytes() 2019-10-30 20:29:26 +01:00
Martchus 2cdde81077 Fix startsWith() if strings are equal 2019-10-27 17:59:26 +01:00
Martchus a841d764d5 Use override in test fixtures 2019-10-13 18:27:41 +02:00
Martchus ecdebebab8 Exclude private structs from documentation 2019-09-04 18:51:17 +02:00
Martchus b693c72eb1 Fix old namespaces being mentioned in the documentation 2019-09-04 18:45:28 +02:00
Martchus 5bed21c9d2 Improve NativeFileStream
* Expose native file descriptor/handle to be able to
  use native APIs like POSIX sendfile()
* Fix using Boost.Iostreams under Windows
    * Make it compile
    * Workaround issue with append flag
2019-08-13 00:28:25 +02:00
Martchus 389a0ef4da Apply clang-format 2019-07-26 22:01:25 +02:00
Martchus 780ba7bc18 Show description in --help 2019-07-22 18:17:39 +02:00
Martchus 1be20da35a Make use of std::filesystem optional
It is not available under Android yet and only used for
Bash completion. So make it optional to support Android by
disabling that part of the Bash completion which is not
useful under Android anyways.
2019-07-02 18:40:25 +02:00
Martchus e71d54d93f Make run the default arg of TestApplication 2019-06-17 21:04:13 +02:00
Martchus 66bb3e5253 Rename TestApplication::m_instance to TestApplication::s_instance 2019-06-17 21:03:37 +02:00
Martchus 7249751d30 Apply clang-format and cmake-format 2019-06-16 16:54:26 +02:00
Martchus fc9e1ff703 Add version header to libraries 2019-06-16 15:33:10 +02:00
Martchus 428a67d68b Improve test application for cppunit
* Allow to list available tests
* Fail the test if at least one explicitely specified unit
  is not available
2019-06-14 18:07:45 +02:00
Martchus b48b2f5c06 Have everything in one top-level namespace 2019-06-10 21:56:46 +02:00
Martchus 4c1b733290 Rework ArgumentParser::parseArgs()
* Remove "ext()" and "orExit()" versions
* Exit by default (might be intrusive but it is the most
  common use)
* Rename Failure to ParseError
2019-06-10 16:03:27 +02:00
Martchus c701fc25ee Remove directoryEntries() 2019-06-05 23:50:38 +02:00
Martchus 83b7658b04 Add test for Bash completion of directory names 2019-06-05 23:49:53 +02:00
Martchus f95e16bc80 Remove readMultibyteTerminatedString*() functions 2019-06-04 19:10:52 +02:00
Martchus 9a66824739 Add read-only accessors to TestApplication 2019-05-15 15:52:06 +02:00
Martchus c904014794 Make math functions templates and move to misc 2019-05-13 22:42:17 +02:00
Martchus f16703ffc0 Remove workingCopyPathMode() 2019-05-11 19:02:32 +02:00
Martchus f0c6035609 Simplify dealing with multiple testfile paths 2019-05-11 18:47:14 +02:00