Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 00bfc448 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "base: avoid evaluating macro argument multiple times."

parents 7b1dbeda 81e316b3
Loading
Loading
Loading
Loading
+24 −20
Original line number Diff line number Diff line
@@ -55,28 +55,32 @@ class CapturedStdout : public CapturedStdFd {

#define ASSERT_MATCH(str, pattern)                                           \
  do {                                                                       \
    if (!std::regex_search((str), std::regex((pattern)))) {                    \
      FAIL() << "regex mismatch: expected " << (pattern) << " in:\n" << (str); \
    auto __s = (str);                                                        \
    if (!std::regex_search(__s, std::regex((pattern)))) {                    \
      FAIL() << "regex mismatch: expected " << (pattern) << " in:\n" << __s; \
    }                                                                        \
  } while (0)

#define ASSERT_NOT_MATCH(str, pattern)                                                   \
  do {                                                                                   \
    if (std::regex_search((str), std::regex((pattern)))) {                                 \
      FAIL() << "regex mismatch: expected to not find " << (pattern) << " in:\n" << (str); \
    auto __s = (str);                                                                    \
    if (std::regex_search(__s, std::regex((pattern)))) {                                 \
      FAIL() << "regex mismatch: expected to not find " << (pattern) << " in:\n" << __s; \
    }                                                                                    \
  } while (0)

#define EXPECT_MATCH(str, pattern)                                                  \
  do {                                                                              \
    if (!std::regex_search((str), std::regex((pattern)))) {                           \
      ADD_FAILURE() << "regex mismatch: expected " << (pattern) << " in:\n" << (str); \
    auto __s = (str);                                                               \
    if (!std::regex_search(__s, std::regex((pattern)))) {                           \
      ADD_FAILURE() << "regex mismatch: expected " << (pattern) << " in:\n" << __s; \
    }                                                                               \
  } while (0)

#define EXPECT_NOT_MATCH(str, pattern)                                                          \
  do {                                                                                          \
    if (std::regex_search((str), std::regex((pattern)))) {                                        \
      ADD_FAILURE() << "regex mismatch: expected to not find " << (pattern) << " in:\n" << (str); \
    auto __s = (str);                                                                           \
    if (std::regex_search(__s, std::regex((pattern)))) {                                        \
      ADD_FAILURE() << "regex mismatch: expected to not find " << (pattern) << " in:\n" << __s; \
    }                                                                                           \
  } while (0)