[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 2537153 26/28: Fix test_path_validation() for
|
From: |
Greg Chicares |
|
Subject: |
[lmi-commits] [lmi] master 2537153 26/28: Fix test_path_validation() for compilers without char8_t support |
|
Date: |
Wed, 12 May 2021 18:14:46 -0400 (EDT) |
branch: master
commit 25371530e45d0ec36cc9959e3a67620e4b34bba9
Author: Vadim Zeitlin <vadim@tt-solutions.com>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Fix test_path_validation() for compilers without char8_t support
This makes the test pass with clang-11 and, more generally, makes it
more robust by not relying on having the part of the string following
the first NUL character in the exception error message, as this message
is constructed using std::runtime_error::what() returning "const char*"
and so is always terminated by the first NUL in it.
Note that previously the test still passed with the compilers that do
support char8_t because of the compensating buglet in fs::path, whose
u8string_as_string() also truncated the string at the first NUL, and did
it before constructing std::runtime_error(), thus ensuring that the
string passed to it didn't contain any NULs any longer and so, while the
part of the path after the first NUL was still lost (even if this was
difficult to see with a path containing only NULs, as was previously
used in the test, which is the reason for adding non-NUL characters to
it too now), the rest of the string could be recovered later.
---
path_utility_test.cpp | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/path_utility_test.cpp b/path_utility_test.cpp
index 4f4adc6..acfedcf 100644
--- a/path_utility_test.cpp
+++ b/path_utility_test.cpp
@@ -418,11 +418,17 @@ void test_path_validation()
// next two tests are senseless.
// Neither posix nor msw allows NUL in paths.
- std::string nulls = {'\0', '\0'};
+ std::string with_nulls = {'x', '\0', 'y', '\0', 'z'};
+
+ // Note that we can't test for the full error message here because it is
+ // truncated at the first NUL, due to using std::runtime_error::what(),
+ // which returns "char*" string terminated by the first NUL occurring in
+ // it, when constructing this message, so just check that it starts with
+ // the expected part.
LMI_TEST_THROW
- (validate_filepath(nulls, context)
+ (validate_filepath(with_nulls, context)
,std::runtime_error
- ,"Unit test file '' not found."
+ ,lmi_test::what_regex("^Unit test file 'x")
);
// Posix doesn't forbid these characters, though msw does.
- [lmi-commits] [lmi] master updated (f62151a -> 0ed65f7), Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 9c3addb 04/28: Combine "libtool" and "environment variables" steps, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 2b7bd98 01/28: Don't run CI builds when some irrelevant files change, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master f597cba 03/28: Run CI jobs in Debian Sid container, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 8e237e4 16/28: Change the keys used for caching files, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master afebc70 10/28: Use boost_regex.hpp wrapper in configure test too, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 2537153 26/28: Fix test_path_validation() for compilers without char8_t support,
Greg Chicares <=
- [lmi-commits] [lmi] master 0ed65f7 28/28: Restore (commented out) a test that failed spectacularly, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 2808a1b 13/28: Use consistent flags for Boost.Regex build in the CI job, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 521017e 05/28: Show environment and compiler information in the CI output, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master e94f977 15/28: Run CI job steps as non-root container user, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 2213a23 22/28: Disable clang deprecated declarations warnings in uBLAS headers, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 7e32f37 02/28: Don't build Boost.Filesystem library in the CI builds any more, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 0713a8f 14/28: Don't put NORMAL_UID in the environment unnecessarily, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master aa750df 12/28: Work around global_settings_test failure in autotools builds, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 0d89ef3 07/28: Install sudo without using sudo, Greg Chicares, 2021/05/12
- [lmi-commits] [lmi] master 2814dec 11/28: Check for comparison operator defaulting in configure C++ test, Greg Chicares, 2021/05/12