Coverage: add some code misuse test cases

pull/593/head
Brad House 1 year ago
parent 72deb01bca
commit bcd80b5313
  1. 2
      src/lib/ares__htable.h
  2. 89
      test/ares-test-internal.cc

@ -45,7 +45,7 @@
* @{
*/
struct ares__htable_t;
struct ares__htable;
/*! Opaque data type for generic hash table implementation */
typedef struct ares__htable ares__htable_t;

@ -37,6 +37,7 @@ extern "C" {
#include "ares_data.h"
#include "ares_strsplit.h"
#include "ares_private.h"
#include "ares__htable.h"
#include "bitncmp.h"
#ifdef HAVE_ARPA_INET_H
@ -477,6 +478,94 @@ TEST_F(LibraryTest, CatDomain) {
EXPECT_STREQ("foo.example.net.", s);
ares_free(s);
}
TEST_F(LibraryTest, BufMisuse) {
EXPECT_EQ(NULL, ares__buf_create_const(NULL, 0));
ares__buf_reclaim(NULL);
EXPECT_NE(ARES_SUCCESS, ares__buf_append(NULL, NULL, 0));
size_t len = 10;
EXPECT_EQ(NULL, ares__buf_append_start(NULL, &len));
EXPECT_EQ(NULL, ares__buf_append_start(NULL, NULL));
ares__buf_append_finish(NULL, 0);
EXPECT_EQ(NULL, ares__buf_finish_bin(NULL, NULL));
EXPECT_EQ(NULL, ares__buf_finish_str(NULL, NULL));
ares__buf_tag(NULL);
EXPECT_NE(ARES_SUCCESS, ares__buf_tag_rollback(NULL));
EXPECT_NE(ARES_SUCCESS, ares__buf_tag_clear(NULL));
EXPECT_EQ(NULL, ares__buf_tag_fetch(NULL, NULL));
EXPECT_EQ(0, ares__buf_tag_length(NULL));
EXPECT_NE(ARES_SUCCESS, ares__buf_tag_fetch_bytes(NULL, NULL, NULL));
EXPECT_NE(ARES_SUCCESS, ares__buf_tag_fetch_string(NULL, NULL, 0));
EXPECT_NE(ARES_SUCCESS, ares__buf_fetch_bytes_dup(NULL, 0, NULL));
EXPECT_NE(ARES_SUCCESS, ares__buf_fetch_str_dup(NULL, 0, NULL));
EXPECT_EQ(0, ares__buf_consume_whitespace(NULL, ARES_FALSE));
EXPECT_EQ(0, ares__buf_consume_nonwhitespace(NULL));
EXPECT_EQ(0, ares__buf_consume_line(NULL, ARES_FALSE));
EXPECT_NE(ARES_SUCCESS, ares__buf_begins_with(NULL, NULL, 0));
EXPECT_EQ(0, ares__buf_get_position(NULL));
EXPECT_NE(ARES_SUCCESS, ares__buf_set_position(NULL, 0));
EXPECT_NE(ARES_SUCCESS, ares__buf_parse_dns_name(NULL, NULL, ARES_FALSE));
EXPECT_NE(ARES_SUCCESS, ares__buf_parse_dns_binstr(NULL, 0, NULL, NULL, ARES_FALSE));
}
TEST_F(LibraryTest, HtableMisuse) {
EXPECT_EQ(NULL, ares__htable_create(NULL, NULL, NULL, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_insert(NULL, NULL));
EXPECT_EQ(NULL, ares__htable_get(NULL, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_remove(NULL, NULL));
EXPECT_EQ(0, ares__htable_num_keys(NULL));
}
TEST_F(LibraryTest, HtableAsvpMisuse) {
EXPECT_EQ(ARES_FALSE, ares__htable_asvp_insert(NULL, ARES_SOCKET_BAD, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_asvp_get(NULL, ARES_SOCKET_BAD, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_asvp_remove(NULL, ARES_SOCKET_BAD));
EXPECT_EQ(0, ares__htable_asvp_num_keys(NULL));
}
TEST_F(LibraryTest, HtableStrvpMisuse) {
EXPECT_EQ(ARES_FALSE, ares__htable_strvp_insert(NULL, NULL, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_strvp_get(NULL, NULL, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_strvp_remove(NULL, NULL));
EXPECT_EQ(0, ares__htable_strvp_num_keys(NULL));
}
TEST_F(LibraryTest, HtableSzvpMisuse) {
EXPECT_EQ(ARES_FALSE, ares__htable_szvp_insert(NULL, 0, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_szvp_get(NULL, 0, NULL));
EXPECT_EQ(ARES_FALSE, ares__htable_szvp_remove(NULL, 0));
EXPECT_EQ(0, ares__htable_szvp_num_keys(NULL));
}
TEST_F(LibraryTest, LlistMisuse) {
ares__llist_replace_destructor(NULL, NULL);
EXPECT_EQ(NULL, ares__llist_insert_before(NULL, NULL));
EXPECT_EQ(NULL, ares__llist_insert_after(NULL, NULL));
EXPECT_EQ(NULL, ares__llist_node_last(NULL));
EXPECT_EQ(NULL, ares__llist_node_next(NULL));
EXPECT_EQ(NULL, ares__llist_node_prev(NULL));
EXPECT_EQ(0, ares__llist_len(NULL));
EXPECT_EQ(NULL, ares__llist_node_parent(NULL));
EXPECT_EQ(NULL, ares__llist_node_claim(NULL));
ares__llist_node_replace(NULL, NULL);
}
TEST_F(LibraryTest, SlistMisuse) {
EXPECT_EQ(NULL, ares__slist_create(NULL, NULL, NULL));
ares__slist_replace_destructor(NULL, NULL);
EXPECT_EQ(NULL, ares__slist_insert(NULL, NULL));
EXPECT_EQ(NULL, ares__slist_node_find(NULL, NULL));
EXPECT_EQ(NULL, ares__slist_node_first(NULL));
EXPECT_EQ(NULL, ares__slist_node_last(NULL));
EXPECT_EQ(NULL, ares__slist_node_next(NULL));
EXPECT_EQ(NULL, ares__slist_node_prev(NULL));
EXPECT_EQ(NULL, ares__slist_node_val(NULL));
EXPECT_EQ(0, ares__slist_len(NULL));
EXPECT_EQ(NULL, ares__slist_node_parent(NULL));
EXPECT_EQ(NULL, ares__slist_first_val(NULL));
EXPECT_EQ(NULL, ares__slist_last_val(NULL));
EXPECT_EQ(NULL, ares__slist_node_claim(NULL));
}
#endif
#ifdef CARES_EXPOSE_STATICS

Loading…
Cancel
Save