mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-08 06:15:02 +00:00
commit
c81e4adfd7
23
tests/clar.c
23
tests/clar.c
@ -65,7 +65,12 @@
|
||||
# ifndef PRIxZ
|
||||
# define PRIxZ "Ix"
|
||||
# endif
|
||||
|
||||
# ifdef _MSC_VER
|
||||
typedef struct stat STAT_T;
|
||||
# else
|
||||
typedef struct _stat STAT_T;
|
||||
# endif
|
||||
#else
|
||||
# include <sys/wait.h> /* waitpid(2) */
|
||||
# include <unistd.h>
|
||||
@ -468,6 +473,24 @@ void clar__assert_equal(
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(!strcmp("%.*s", fmt)) {
|
||||
const char *s1 = va_arg(args, const char *);
|
||||
const char *s2 = va_arg(args, const char *);
|
||||
size_t len = va_arg(args, size_t);
|
||||
is_equal = (!s1 || !s2) ? (s1 == s2) : !strncmp(s1, s2, len);
|
||||
|
||||
if (!is_equal) {
|
||||
if (s1 && s2) {
|
||||
size_t pos;
|
||||
for (pos = 0; s1[pos] == s2[pos] && pos < len; ++pos)
|
||||
/* find differing byte offset */;
|
||||
p_snprintf(buf, sizeof(buf), "'%.*s' != '%.*s' (at byte %d)",
|
||||
len, s1, len, s2, pos);
|
||||
} else {
|
||||
p_snprintf(buf, sizeof(buf), "'%.*s' != '%.*s'", len, s1, len, s2);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!strcmp("%"PRIuZ, fmt) || !strcmp("%"PRIxZ, fmt)) {
|
||||
size_t sz1 = va_arg(args, size_t), sz2 = va_arg(args, size_t);
|
||||
is_equal = (sz1 == sz2);
|
||||
|
@ -60,6 +60,9 @@ void cl_fixture_cleanup(const char *fixture_name);
|
||||
#define cl_assert_equal_s(s1,s2) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2, 1, "%s", (s1), (s2))
|
||||
#define cl_assert_equal_s_(s1,s2,note) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%s", (s1), (s2))
|
||||
|
||||
#define cl_assert_equal_strn(s1,s2,len) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2, 1, "%.*s", (s1), (s2), (size_t)(len))
|
||||
#define cl_assert_equal_strn_(s1,s2,len,note) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%.*s", (s1), (s2), (size_t)(len))
|
||||
|
||||
#define cl_assert_equal_i(i1,i2) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2, 1, "%d", (int)(i1), (int)(i2))
|
||||
#define cl_assert_equal_i_(i1,i2,note) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2 " (" #note ")", 1, "%d", (i1), (i2))
|
||||
#define cl_assert_equal_i_fmt(i1,i2,fmt) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2, 1, (fmt), (int)(i1), (int)(i2))
|
||||
|
Loading…
Reference in New Issue
Block a user