mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-04 19:13:35 +01:00
Problem: incomplete test coverage of mtrie
Solution: add some more test cases
This commit is contained in:
parent
a9712c0bf2
commit
dbbc10e05b
@ -34,6 +34,11 @@ void tearDown ()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int getlen (const zmq::generic_mtrie_t<int>::prefix_t &data)
|
||||||
|
{
|
||||||
|
return strlen (reinterpret_cast<const char *> (data));
|
||||||
|
}
|
||||||
|
|
||||||
void test_create ()
|
void test_create ()
|
||||||
{
|
{
|
||||||
zmq::generic_mtrie_t<int> mtrie;
|
zmq::generic_mtrie_t<int> mtrie;
|
||||||
@ -53,7 +58,7 @@ void test_check_empty_match_nonempty_data ()
|
|||||||
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
mtrie.match (test_name, 3, mtrie_count, &count);
|
mtrie.match (test_name, getlen (test_name), mtrie_count, &count);
|
||||||
TEST_ASSERT_EQUAL_INT (0, count);
|
TEST_ASSERT_EQUAL_INT (0, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,14 +79,54 @@ void test_add_single_entry_match_exact ()
|
|||||||
const zmq::generic_mtrie_t<int>::prefix_t test_name =
|
const zmq::generic_mtrie_t<int>::prefix_t test_name =
|
||||||
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
||||||
|
|
||||||
bool res = mtrie.add (test_name, 3, &pipe);
|
bool res = mtrie.add (test_name, getlen (test_name), &pipe);
|
||||||
TEST_ASSERT_TRUE (res);
|
TEST_ASSERT_TRUE (res);
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
mtrie.match (test_name, 3, mtrie_count, &count);
|
mtrie.match (test_name, getlen (test_name), mtrie_count, &count);
|
||||||
TEST_ASSERT_EQUAL_INT (1, count);
|
TEST_ASSERT_EQUAL_INT (1, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_add_two_entries_with_same_name_match_exact ()
|
||||||
|
{
|
||||||
|
int pipe_1, pipe_2;
|
||||||
|
|
||||||
|
zmq::generic_mtrie_t<int> mtrie;
|
||||||
|
const zmq::generic_mtrie_t<int>::prefix_t test_name =
|
||||||
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
||||||
|
|
||||||
|
bool res = mtrie.add (test_name, getlen (test_name), &pipe_1);
|
||||||
|
TEST_ASSERT_TRUE (res);
|
||||||
|
|
||||||
|
res = mtrie.add (test_name, getlen (test_name), &pipe_2);
|
||||||
|
TEST_ASSERT_FALSE (res);
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
mtrie.match (test_name, getlen (test_name), mtrie_count, &count);
|
||||||
|
TEST_ASSERT_EQUAL_INT (2, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
void test_add_two_entries_match_prefix_and_exact ()
|
||||||
|
{
|
||||||
|
int pipe_1, pipe_2;
|
||||||
|
|
||||||
|
zmq::generic_mtrie_t<int> mtrie;
|
||||||
|
const zmq::generic_mtrie_t<int>::prefix_t test_name_prefix =
|
||||||
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
||||||
|
const zmq::generic_mtrie_t<int>::prefix_t test_name_full =
|
||||||
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foobar");
|
||||||
|
|
||||||
|
bool res = mtrie.add (test_name_prefix, getlen (test_name_prefix), &pipe_1);
|
||||||
|
TEST_ASSERT_TRUE (res);
|
||||||
|
|
||||||
|
res = mtrie.add (test_name_full, getlen (test_name_full), &pipe_2);
|
||||||
|
TEST_ASSERT_TRUE (res);
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
mtrie.match (test_name_full, getlen (test_name_full), mtrie_count, &count);
|
||||||
|
TEST_ASSERT_EQUAL_INT (2, count);
|
||||||
|
}
|
||||||
|
|
||||||
void test_add_rm_single_entry_match_exact ()
|
void test_add_rm_single_entry_match_exact ()
|
||||||
{
|
{
|
||||||
int pipe;
|
int pipe;
|
||||||
@ -89,12 +134,12 @@ void test_add_rm_single_entry_match_exact ()
|
|||||||
const zmq::generic_mtrie_t<int>::prefix_t test_name =
|
const zmq::generic_mtrie_t<int>::prefix_t test_name =
|
||||||
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
reinterpret_cast<zmq::generic_mtrie_t<int>::prefix_t> ("foo");
|
||||||
|
|
||||||
mtrie.add (test_name, 3, &pipe);
|
mtrie.add (test_name, getlen (test_name), &pipe);
|
||||||
bool res = mtrie.rm (test_name, 3, &pipe);
|
bool res = mtrie.rm (test_name, getlen (test_name), &pipe);
|
||||||
TEST_ASSERT_TRUE (res);
|
TEST_ASSERT_TRUE (res);
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
mtrie.match (test_name, 3, mtrie_count, &count);
|
mtrie.match (test_name, getlen (test_name), mtrie_count, &count);
|
||||||
TEST_ASSERT_EQUAL_INT (0, count);
|
TEST_ASSERT_EQUAL_INT (0, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,6 +153,8 @@ int main (void)
|
|||||||
RUN_TEST (test_check_empty_match_empty_data);
|
RUN_TEST (test_check_empty_match_empty_data);
|
||||||
RUN_TEST (test_add_single_entry_match_exact);
|
RUN_TEST (test_add_single_entry_match_exact);
|
||||||
RUN_TEST (test_add_rm_single_entry_match_exact);
|
RUN_TEST (test_add_rm_single_entry_match_exact);
|
||||||
|
RUN_TEST (test_add_two_entries_match_prefix_and_exact);
|
||||||
|
RUN_TEST (test_add_two_entries_with_same_name_match_exact);
|
||||||
|
|
||||||
return UNITY_END ();
|
return UNITY_END ();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user