diff --git a/test/litest.c b/test/litest.c index 130120f5..d94a2eaf 100644 --- a/test/litest.c +++ b/test/litest.c @@ -4889,6 +4889,31 @@ _litest_assert_strv_substring(char **strv, } } +void +_litest_assert_strv_no_substring(char **strv, + char *substring, + const char *file, + const char *func, + int line) +{ + if (!strv) + return; + + size_t index; + bool found = strv_find_substring(strv, substring, &index); + if (found) { + _autofree_ char *strv_str = strv_join(strv, "', '"); + _litest_abort_msg( + file, + line, + func, + "Unexpected substring '%s' present at index %zd in strv: ['%s']", + substring, + index, + strv_str); + } +} + void litest_push_event_frame(struct litest_device *dev) { diff --git a/test/litest.h b/test/litest.h index fdde0907..f70226d6 100644 --- a/test/litest.h +++ b/test/litest.h @@ -408,6 +408,16 @@ _litest_assert_strv_substring(char **strv, #define litest_assert_strv_substring(strv_, substring_) \ _litest_assert_strv_substring(strv_, substring_, __FILE__, __func__, __LINE__) +void +_litest_assert_strv_no_substring(char **strv, + char *substring, + const char *file, + const char *func, + int line); + +#define litest_assert_strv_no_substring(strv_, substring_) \ + _litest_assert_strv_no_substring(strv_, substring_, __FILE__, __func__, __LINE__) + void litest_backtrace(const char *func);