tests/unittests/uri_parse: generate more sophisticated error message
This commit is contained in:
parent
413153704a
commit
004126a5e9
@ -24,22 +24,31 @@
|
|||||||
{ .uri = u, .scheme = s, .userinfo = us, .host = h, .port = po, \
|
{ .uri = u, .scheme = s, .userinfo = us, .host = h, .port = po, \
|
||||||
.path = pa, .query = q, .expected = e}
|
.path = pa, .query = q, .expected = e}
|
||||||
|
|
||||||
#define VEC_CHECK(comp, i) \
|
#define VEC_CHECK(comp, i, vec_msg) \
|
||||||
do { \
|
do { \
|
||||||
if (ures.comp == NULL) { \
|
if (ures.comp == NULL) { \
|
||||||
TEST_ASSERT(validate_uris[i].comp[0] == '\0'); \
|
TEST_ASSERT(validate_uris[i].comp[0] == '\0'); \
|
||||||
} \
|
} \
|
||||||
else { \
|
else { \
|
||||||
TEST_ASSERT_EQUAL_INT(strlen(validate_uris[i].comp), \
|
TEST_ASSERT_EQUAL_INT(strlen(validate_uris[i].comp), \
|
||||||
ures.comp##_len); \
|
ures.comp##_len); \
|
||||||
TEST_ASSERT_MESSAGE(0 == \
|
vec_msg[0] = '\0'; \
|
||||||
strncmp(ures.comp, \
|
stdimpl_strcat(vec_msg, "Unexpected " # comp " member \""); \
|
||||||
validate_uris[i].comp, \
|
stdimpl_strcat(vec_msg, validate_uris[i].comp); \
|
||||||
strlen(validate_uris[i].comp)), \
|
stdimpl_strcat(vec_msg, "\" for \""); \
|
||||||
"Unexpected " # comp " member"); \
|
stdimpl_strcat(vec_msg, validate_uris[i].uri); \
|
||||||
} \
|
stdimpl_strcat(vec_msg, "\""); \
|
||||||
|
TEST_ASSERT_MESSAGE(0 == \
|
||||||
|
strncmp(ures.comp, \
|
||||||
|
validate_uris[i].comp, \
|
||||||
|
strlen(validate_uris[i].comp)), \
|
||||||
|
vec_msg); \
|
||||||
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define VEC_MSG_LEN (sizeof("Unexpected userinfo member \"\" for \"\"") + \
|
||||||
|
64U + 8U)
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char uri[64];
|
char uri[64];
|
||||||
char scheme[8];
|
char scheme[8];
|
||||||
@ -275,6 +284,8 @@ static const validate_t validate_uris[26] = {
|
|||||||
0),
|
0),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static char _failure_msg[VEC_MSG_LEN];
|
||||||
|
|
||||||
static void test_uri_parser__validate(void)
|
static void test_uri_parser__validate(void)
|
||||||
{
|
{
|
||||||
uri_parser_result_t ures;
|
uri_parser_result_t ures;
|
||||||
@ -282,12 +293,12 @@ static void test_uri_parser__validate(void)
|
|||||||
int res = uri_parser_process_string(&ures, validate_uris[i].uri);
|
int res = uri_parser_process_string(&ures, validate_uris[i].uri);
|
||||||
TEST_ASSERT_EQUAL_INT(validate_uris[i].expected, res);
|
TEST_ASSERT_EQUAL_INT(validate_uris[i].expected, res);
|
||||||
if (res == 0) {
|
if (res == 0) {
|
||||||
VEC_CHECK(scheme, i);
|
VEC_CHECK(scheme, i, _failure_msg);
|
||||||
VEC_CHECK(userinfo, i);
|
VEC_CHECK(userinfo, i, _failure_msg);
|
||||||
VEC_CHECK(host, i);
|
VEC_CHECK(host, i, _failure_msg);
|
||||||
VEC_CHECK(port, i);
|
VEC_CHECK(port, i, _failure_msg);
|
||||||
VEC_CHECK(path, i);
|
VEC_CHECK(path, i, _failure_msg);
|
||||||
VEC_CHECK(query, i);
|
VEC_CHECK(query, i, _failure_msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user