/* xbt_str.cpp - various helping functions to deal with strings */
-/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
template <typename F> void test_parse_error(F function, const std::string& name, const char* str)
{
INFO(name);
- REQUIRE_THROWS_MATCHES(function(str, "Parse error"), xbt_ex,
- Catch::Matchers::Predicate<xbt_ex>([](xbt_ex const& e) { return e.category == arg_error; },
- "category arg_error"));
+ REQUIRE_THROWS_AS(function(str, "Parse error"), std::invalid_argument);
}
template <typename F, typename T> void test_parse_ok(F function, const std::string& name, const char* str, T value)
{
INFO(name);
- T variable = static_cast<T>(-9999);
+ T variable;
REQUIRE_NOTHROW(variable = function(str, "Parse error"));
REQUIRE(variable == value); /* Fail to parse str */
}
TEST_CASE("xbt::str: String Handling", "xbt_str")
{
-
SECTION("Test the function xbt_str_split_quoted")
{
test_split_quoted("Empty", "", {});
test_split_quoted("Useless backslashes", "\\t\\o\\t\\o \\t\\u\\t\\u", {"toto", "tutu"});
test_split_quoted("Protected space", "toto\\ tutu", {"toto tutu"});
test_split_quoted("Several spaces", "toto tutu", {"toto", "tutu"});
- test_split_quoted("LTriming", " toto tatu", {"toto", "tatu"});
- test_split_quoted("Triming", " toto tutu ", {"toto", "tutu"});
+ test_split_quoted("LTrimming", " toto tatu", {"toto", "tatu"});
+ test_split_quoted("Trimming", " toto tutu ", {"toto", "tutu"});
test_split_quoted("Single quotes", "'toto tutu' tata", {"toto tutu", "tata"});
test_split_quoted("Double quotes", "\"toto tutu\" tata", {"toto tutu", "tata"});
test_split_quoted("Mixed quotes", "\"toto' 'tutu\" tata", {"toto' 'tutu", "tata"});