clang compiler warning: fixes for tests to be compiled using clang
Review Request #4555 - Created March 29, 2015 and submitted
Diederik de Groot | |
13 | |
ASTERISK-24917 | |
Reviewers | |
---|---|
asterisk-dev | |
Asterisk |
clang's static analyzer will throw quite a number warnings / errors during compilation, some of which can be very helpfull in finding corner-case bugs. fixes for tests to be compiled using clang
executing the tests one-by-one works fine (completes to end) (skipping /main/stdtime) -> test show results failed: =================== /main/message/ ====== FAIL test_message_queue_handler_nom /main/message/ 31036ms [test_message.c:int handler_wait_for_message(struct ast_test *):244]: Test timed out while waiting for handler to get message Not sure if this is actually a fail or just a timeout. WIP =================== /main/strings/ ====== FAIL escape_semicolons /main/strings/ 1ms [Mar 29 20:13:43] ERROR[2521]: utils.c:493 char *ast_escape_semicolons(const char *, char *, int): FRACK!, Failed assertion string != NULL && outbuf != NULL (0) -> explainable by the change made to the source. ast_alloca(0) is not being executed -> test2 = NULL: need to resolv the open question how to handle ast_alloca(0) before making any further changes. (With revision 5 of this code, this test now passes without a problem, had to fix both the test and the function being tested though) =================== /main/stdtime ====== "test execute all" fails, caused by the /main/stdtime/ test. START /main/stdtime/ - timezone_watch [test_time.c:enum ast_test_result_state test_timezone_watch(struct ast_test_info *, enum ast_test_command, struct ast_test *):84]: Executing deletion test... j62747*CLI> CLI becomes unresponsive / no further command completion for example. Guess this will need a little further investigation. Maybe the source changes made to main/stdtime/ where not completely correct. Seems to be caused by inotify_daemon, at least there is where the segfault happens. WIP
<?xml version="1.0" encoding="UTF-8"?>
<testsuite errors="0" time="181.742" tests="444" n
<properties>
<property name="version" value="SV
<testsuite errors="0" time="181.742" tests="444" n
<properties>
<property name="version" value="SV
/branches/13/tests/test_acl.c | |||
---|---|---|---|
Diff Revision 3 | Diff Revision 9 | ||
![]() |
|||
![]() |
![]() struct acl {
|
||
120 |
*/
|
120 |
*/
|
121 | 121 | ||
122 |
#define TACL_A AST_SENSE_ALLOW
|
122 |
#define TACL_A AST_SENSE_ALLOW
|
123 |
#define TACL_D AST_SENSE_DENY
|
123 |
#define TACL_D AST_SENSE_DENY
|
124 | 124 | ||
125 |
static int build_ha(const struct acl *acl, size_t len, struct ast_ha **ha, const char *acl_name, int *err, struct ast_test *test, enum ast_test_result_state res); |
125 |
static int build_ha(const struct acl *acl, size_t len, struct ast_ha **ha, const char *acl_name, int *err, struct ast_test *test, enum ast_test_result_state *res) |
126 |
static int build_ha(const struct acl *acl, size_t len, struct ast_ha **ha, const char *acl_name, int *err, struct ast_test *test, enum ast_test_result_state res) { |
126 |
{
|
127 |
size_t i; |
127 |
size_t i; |
128 | 128 | ||
129 |
for (i = 0; i < len; ++i) { |
129 |
for (i = 0; i < len; ++i) { |
130 |
if (!(*ha = ast_append_ha(acl[i].access, acl[i].host, *ha, err))) { |
130 |
if (!(*ha = ast_append_ha(acl[i].access, acl[i].host, *ha, err))) { |
131 |
ast_test_status_update(test, "Failed to add rule %s with access %s to %s\n", |
131 |
ast_test_status_update(test, "Failed to add rule %s with access %s to %s\n", |
132 |
acl[i].host, acl[i].access, acl_name); |
132 |
acl[i].host, acl[i].access, acl_name); |
133 |
res = AST_TEST_FAIL; |
133 |
*res = AST_TEST_FAIL; |
134 |
return -1; |
134 |
return -1; |
135 |
} |
135 |
} |
136 |
} |
136 |
} |
137 | 137 | ||
138 |
return 0; |
138 |
return 0; |
![]() |
![]() |
||
![]() |
![]() AST_TEST_DEFINE(acl)
|
||
262 |
ast_test_status_update(test, "Failed to create deny_all ACL\n"); |
262 |
ast_test_status_update(test, "Failed to create deny_all ACL\n"); |
263 |
res = AST_TEST_FAIL; |
263 |
res = AST_TEST_FAIL; |
264 |
goto acl_cleanup; |
264 |
goto acl_cleanup; |
265 |
} |
265 |
} |
266 | 266 | ||
267 |
if (build_ha(acl1, ARRAY_LEN(acl1), &ha1, "ha1", &err, test, res) != 0) { |
267 |
if (build_ha(acl1, ARRAY_LEN(acl1), &ha1, "ha1", &err, test, &res) != 0) { |
268 |
goto acl_cleanup; |
268 |
goto acl_cleanup; |
269 |
} |
269 |
} |
270 | 270 | ||
271 |
if (build_ha(acl2, ARRAY_LEN(acl2), &ha2, "ha2", &err, test, res) != 0) { |
271 |
if (build_ha(acl2, ARRAY_LEN(acl2), &ha2, "ha2", &err, test, &res) != 0) { |
272 |
goto acl_cleanup; |
272 |
goto acl_cleanup; |
273 |
} |
273 |
} |
274 | 274 | ||
275 |
if (build_ha(acl3, ARRAY_LEN(acl3), &ha3, "ha3", &err, test, res) != 0) { |
275 |
if (build_ha(acl3, ARRAY_LEN(acl3), &ha3, "ha3", &err, test, &res) != 0) { |
276 |
goto acl_cleanup; |
276 |
goto acl_cleanup; |
277 |
} |
277 |
} |
278 | 278 | ||
279 |
if (build_ha(acl4, ARRAY_LEN(acl4), &ha4, "ha4", &err, test, res) != 0) { |
279 |
if (build_ha(acl4, ARRAY_LEN(acl4), &ha4, "ha4", &err, test, &res) != 0) { |
280 |
goto acl_cleanup; |
280 |
goto acl_cleanup; |
281 |
} |
281 |
} |
282 | 282 | ||
283 |
if (build_ha(acl5, ARRAY_LEN(acl5), &ha5, "ha5", &err, test, res) != 0) { |
283 |
if (build_ha(acl5, ARRAY_LEN(acl5), &ha5, "ha5", &err, test, &res) != 0) { |
284 |
goto acl_cleanup; |
284 |
goto acl_cleanup; |
285 |
} |
285 |
} |
286 | 286 | ||
287 |
if (build_ha(acl6, ARRAY_LEN(acl6), &ha6, "ha6", &err, test, res) != 0) { |
287 |
if (build_ha(acl6, ARRAY_LEN(acl6), &ha6, "ha6", &err, test, &res) != 0) { |
288 |
goto acl_cleanup; |
288 |
goto acl_cleanup; |
289 |
} |
289 |
} |
290 | 290 | ||
291 |
if (build_ha(acl7, ARRAY_LEN(acl7), &ha7, "ha7", &err, test, res) != 0) { |
291 |
if (build_ha(acl7, ARRAY_LEN(acl7), &ha7, "ha7", &err, test, &res) != 0) { |
292 |
goto acl_cleanup; |
292 |
goto acl_cleanup; |
293 |
} |
293 |
} |
294 | 294 | ||
295 |
for (i = 0; i < ARRAY_LEN(acl_tests); ++i) { |
295 |
for (i = 0; i < ARRAY_LEN(acl_tests); ++i) { |
296 |
struct ast_sockaddr addr; |
296 |
struct ast_sockaddr addr; |
![]() |
![]() |
/branches/13/tests/test_linkedlists.c | |
---|---|
Diff Revision 3 | Diff Revision 9 - File Reverted |
/branches/13/tests/test_stringfields.c | |
---|---|
Diff Revision 3 | Diff Revision 9 |
/branches/13/tests/test_strings.c | |
---|---|
Diff Revision 3 | Diff Revision 9 |
Other reviews