do { \
_fl_ss << #haystack << " contains " << #needle; \
ar.mExpression = _fl_ss.
str(); \
if (!_fl_result) { \
_fl_ess << "\"" << _fl_haystack << "\" does not contain \"" << _fl_needle << "\""; \
ar.mExpanded = _fl_ess.
str(); \
fl::test::TestContext::instance().reportAssert(ar); \
return; \
} \
fl::test::TestContext::instance().reportAssert(ar); \
} while (0)
string str() const FL_NOEXCEPT
static constexpr fl::size npos
1235#define FL_REQUIRE_STR_CONTAINS(haystack, needle) \
1236 do { \
1237 fl::string _fl_haystack(haystack); \
1238 fl::string _fl_needle(needle); \
1239 bool _fl_result = (_fl_haystack.find(_fl_needle) != fl::string::npos); \
1240 fl::test::AssertResult ar(_fl_result); \
1241 ar.mLocation = fl::test::SourceLocation(__FILE__, __LINE__); \
1242 fl::sstream _fl_ss; \
1243 _fl_ss << #haystack << " contains " << #needle; \
1244 ar.mExpression = _fl_ss.str(); \
1245 if (!_fl_result) { \
1246 fl::sstream _fl_ess; \
1247 _fl_ess << "\"" << _fl_haystack << "\" does not contain \"" << _fl_needle << "\""; \
1248 ar.mExpanded = _fl_ess.str(); \
1249 fl::test::TestContext::instance().reportAssert(ar); \
1250 return; \
1251 } \
1252 fl::test::TestContext::instance().reportAssert(ar); \
1253 } while (0)