Skip to content
Snippets Groups Projects
Commit 065097b8 authored by Nick Mathewson's avatar Nick Mathewson :game_die:
Browse files

tinytest tt_{mem,str}_op now handle NULLs better

Now a NULL argument to either makes it fail, not crash.

Fies bug 9004; bugfix on 0.2.2.4-alpha.
parent a50690e6
No related branches found
No related tags found
No related merge requests found
o Minor bugfixes (testing):
- Improve the tinytest implementation of string operation tests
so that comparisons NULL strings no longer crash the tests;
they now just fail, normally. Fixes bug 9004; bugfix on
0.2.2.4-alpha.
......@@ -144,6 +144,10 @@
tt_assert_test_fmt_type(a,b,str_test,type,test,type,fmt, \
{print_=value_;},{},die_on_fail)
#define tt_assert_test_type_opt(a,b,str_test,type,test,fmt,die_on_fail) \
tt_assert_test_fmt_type(a,b,str_test,type,test,type,fmt, \
{print_=value_?value_:"<NULL>";},{},die_on_fail)
/* Helper: assert that a op b, when cast to type. Format the values with
* printf format fmt on failure. */
#define tt_assert_op_type(a,op,b,type,fmt) \
......@@ -163,8 +167,9 @@
(val1_ op val2_),"%p",TT_EXIT_TEST_FUNCTION)
#define tt_str_op(a,op,b) \
tt_assert_test_type(a,b,#a" "#op" "#b,const char *, \
(strcmp(val1_,val2_) op 0),"<%s>",TT_EXIT_TEST_FUNCTION)
tt_assert_test_type_opt(a,b,#a" "#op" "#b,const char *, \
(val1_ && val2_ && strcmp(val1_,val2_) op 0),"<%s>", \
TT_EXIT_TEST_FUNCTION)
#define tt_want_int_op(a,op,b) \
tt_assert_test_type(a,b,#a" "#op" "#b,long,(val1_ op val2_),"%ld",(void)0)
......
......@@ -38,12 +38,17 @@
#define test_mem_op(expr1, op, expr2, len) \
tt_assert_test_fmt_type(expr1,expr2,#expr1" "#op" "#expr2, \
const char *, \
(memcmp(val1_, val2_, len) op 0), \
(val1_ && val2_ && memcmp(val1_, val2_, len) op 0), \
char *, "%s", \
{ size_t printlen = (len)*2+1; \
print_ = tor_malloc(printlen); \
base16_encode(print_, printlen, value_, \
(len)); }, \
if (value_) { \
print_ = tor_malloc(printlen); \
base16_encode(print_, printlen, value_, \
(len)); \
} else { \
print_ = tor_strdup("null"); \
} \
}, \
{ tor_free(print_); }, \
TT_EXIT_TEST_FUNCTION \
);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment