diff --git a/include/maat.h b/include/maat.h index dc7e35b..e3dfaa2 100644 --- a/include/maat.h +++ b/include/maat.h @@ -349,6 +349,9 @@ size_t maat_state_get_indirect_hit_group_cnt(struct maat_state *state); int maat_state_get_last_hit_group_ids(struct maat_state *state, long long *group_id_array, size_t array_size); + +size_t maat_state_get_last_hit_group_id_cnt(struct maat_state *state); + #ifdef __cplusplus } #endif diff --git a/src/inc_internal/maat_compile.h b/src/inc_internal/maat_compile.h index 371b4bd..aeec840 100644 --- a/src/inc_internal/maat_compile.h +++ b/src/inc_internal/maat_compile.h @@ -123,6 +123,8 @@ size_t compile_state_get_last_hit_group_id(struct compile_state *compile_state, long long *group_id_arary, size_t array_size); +size_t compile_state_get_last_hit_group_id_cnt(struct compile_state *compile_state); + int compile_state_get_compile_table_id(struct compile_state *compile_state, long long compile_id); diff --git a/src/maat_api.c b/src/maat_api.c index dbc633b..2dad86e 100644 --- a/src/maat_api.c +++ b/src/maat_api.c @@ -2151,4 +2151,13 @@ int maat_state_get_last_hit_group_ids(struct maat_state *state, return compile_state_get_last_hit_group_id(state->compile_state, group_id_array, array_size); +} + +size_t maat_state_get_last_hit_group_id_cnt(struct maat_state *state) +{ + if (NULL == state || NULL == state->compile_state) { + return 0; + } + + return compile_state_get_last_hit_group_id_cnt(state->compile_state); } \ No newline at end of file diff --git a/src/maat_compile.c b/src/maat_compile.c index 1ef59a8..66f6845 100644 --- a/src/maat_compile.c +++ b/src/maat_compile.c @@ -2578,6 +2578,11 @@ size_t compile_state_get_last_hit_group_id(struct compile_state *compile_state, return i; } +size_t compile_state_get_last_hit_group_id_cnt(struct compile_state *compile_state) +{ + return utarray_len(compile_state->last_hit_group_ids); +} + size_t compile_state_get_direct_hit_groups(struct compile_state *compile_state, struct maat_hit_group *group_array, size_t array_size) diff --git a/test/maat_framework_gtest.cpp b/test/maat_framework_gtest.cpp index fa01ec8..3d07fc1 100644 --- a/test/maat_framework_gtest.cpp +++ b/test/maat_framework_gtest.cpp @@ -8877,8 +8877,9 @@ TEST_F(MaatCmdTest, HitGroup) { EXPECT_EQ(hit_groups[0].group_id, group11_id); EXPECT_EQ(hit_groups[0].vtable_id, http_req_table_id); + size_t n_last_hit_group = maat_state_get_last_hit_group_id_cnt(state); long long last_hit_group_ids[128] = {0}; - size_t n_last_hit_group = maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); + maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); EXPECT_EQ(n_last_hit_group, 2); EXPECT_EQ(last_hit_group_ids[0], group1_id); EXPECT_EQ(last_hit_group_ids[1], group11_id); @@ -8922,7 +8923,8 @@ TEST_F(MaatCmdTest, HitGroup) { EXPECT_EQ(hit_groups[0].group_id, group21_id); EXPECT_EQ(hit_groups[0].vtable_id, http_res_table_id); - n_last_hit_group = maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); + n_last_hit_group = maat_state_get_last_hit_group_id_cnt(state); + maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); EXPECT_EQ(n_last_hit_group, 2); EXPECT_EQ(last_hit_group_ids[0], group2_id); EXPECT_EQ(last_hit_group_ids[1], group21_id); @@ -8986,7 +8988,8 @@ TEST_F(MaatCmdTest, HitGroup) { EXPECT_EQ(hit_groups[0].group_id, group1_id); EXPECT_EQ(hit_groups[0].vtable_id, keywords_table_id); //physical table(keywords_table) vtable_id is 0 - n_last_hit_group = maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); + n_last_hit_group = maat_state_get_last_hit_group_id_cnt(state); + maat_state_get_last_hit_group_ids(state, last_hit_group_ids, 128); EXPECT_EQ(n_last_hit_group, 2); EXPECT_EQ(last_hit_group_ids[0], group1_id); EXPECT_EQ(last_hit_group_ids[1], group11_id);