On Sat, Jun 19, 2021 at 1:56 AM Alan Maguire alan.maguire@oracle.com wrote:
It will support strncmp()-style string comparisons.
Suggested-by: Andrii Nakryiko andrii.nakryiko@gmail.com Signed-off-by: Alan Maguire alan.maguire@oracle.com
tools/testing/selftests/bpf/test_progs.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)
diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selftests/bpf/test_progs.h index 8ef7f33..d2944da 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -221,6 +221,18 @@ struct test_env { ___ok; \ })
+#define ASSERT_STRNEQ(actual, expected, len, name) ({ \
static int duration = 0; \
const char *___act = actual; \
const char *___exp = expected; \
size_t ___len = len; \
bool ___ok = strncmp(___act, ___exp, ___len) == 0; \
CHECK(!___ok, (name), \
"unexpected %s: actual '%s' != expected '%s'\n", \
(name), ___act, ___exp); \
it would be nice to only emit what we are actually comparing - first n characters of each string. Luckily, printf is cool enough to support this:
printf("actual '%.*s' != expected '%.*s'\n", ___len, ___act, ___len, ___exp);
___ok; \
+})
#define ASSERT_OK(res, name) ({ \ static int duration = 0; \ long long ___res = (res); \ -- 1.8.3.1