Greenbone Vulnerability Management Libraries 22.32.0
gmp_tests.c File Reference
#include "gmp.c"
#include <cgreen/cgreen.h>
#include <cgreen/mocks.h>
Include dependency graph for gmp_tests.c:

Go to the source code of this file.

Functions

int __wrap_gvm_server_sendf (gnutls_session_t *session, const char *fmt,...)
int __wrap_gvm_server_sendf_xml (gnutls_session_t *session, const char *fmt,...)
int __wrap_gvm_server_sendf_xml_quiet (gnutls_session_t *session, const char *fmt,...)
int __wrap_read_entity (gnutls_session_t *session, entity_t *entity)
int __wrap_try_read_entity (gnutls_session_t *session, int timeout, entity_t *entity)
int __wrap_gvm_connection_sendf (gvm_connection_t *connection, const char *fmt,...)
int __wrap_gvm_connection_sendf_xml_quiet (gvm_connection_t *connection, const char *fmt,...)
int __wrap_read_entity_c (gvm_connection_t *connection, entity_t *entity)
int __wrap_try_read_entity_c (gvm_connection_t *connection, int timeout, entity_t *entity)
 Describe (gmp)
 BeforeEach (gmp)
 AfterEach (gmp)
static entity_t create_mock_entity (const char *name, const char *text)
static void add_mock_attribute (entity_t entity, const char *name, const char *value)
 Ensure (gmp, gmp_task_status_returns_correct_string_for_valid_response)
 Ensure (gmp, gmp_task_status_returns_null_when_no_task)
 Ensure (gmp, gmp_task_status_returns_null_when_no_status)
 Ensure (gmp, gmp_read_create_response_returns_uuid_on_success)
 Ensure (gmp, gmp_read_create_response_succeeds_without_uuid_parameter)
 Ensure (gmp, gmp_read_create_response_returns_error_when_no_status)
 Ensure (gmp, gmp_read_create_response_returns_error_on_read_failure)
 Ensure (gmp, gmp_check_response_succeeds_with_valid_response)
 Ensure (gmp, gmp_check_response_returns_gmp_error_code)
 Ensure (gmp, gmp_check_response_returns_error_on_read_failure)
 Ensure (gmp, gmp_check_response_returns_error_when_no_status)
 Ensure (gmp, gmp_ping_succeeds_with_valid_response)
 Ensure (gmp, gmp_ping_returns_error_on_send_failure)
 Ensure (gmp, gmp_ping_returns_error_on_read_failure)
 Ensure (gmp, gmp_ping_returns_error_with_invalid_status)
int main (int argc, char **argv)

Function Documentation

◆ __wrap_gvm_connection_sendf()

int __wrap_gvm_connection_sendf ( gvm_connection_t * connection,
const char * fmt,
... )

Definition at line 71 of file gmp_tests.c.

72{
73 return (int) mock (connection, fmt);
74}

◆ __wrap_gvm_connection_sendf_xml_quiet()

int __wrap_gvm_connection_sendf_xml_quiet ( gvm_connection_t * connection,
const char * fmt,
... )

Definition at line 80 of file gmp_tests.c.

82{
83 return (int) mock (connection, fmt);
84}

◆ __wrap_gvm_server_sendf()

int __wrap_gvm_server_sendf ( gnutls_session_t * session,
const char * fmt,
... )

Definition at line 16 of file gmp_tests.c.

17{
18 return (int) mock (session, fmt);
19}

Referenced by Ensure(), Ensure(), Ensure(), and Ensure().

Here is the caller graph for this function:

◆ __wrap_gvm_server_sendf_xml()

int __wrap_gvm_server_sendf_xml ( gnutls_session_t * session,
const char * fmt,
... )

Definition at line 24 of file gmp_tests.c.

25{
26 return (int) mock (session, fmt);
27}

◆ __wrap_gvm_server_sendf_xml_quiet()

int __wrap_gvm_server_sendf_xml_quiet ( gnutls_session_t * session,
const char * fmt,
... )

Definition at line 33 of file gmp_tests.c.

35{
36 return (int) mock (session, fmt);
37}

◆ __wrap_read_entity()

int __wrap_read_entity ( gnutls_session_t * session,
entity_t * entity )

Definition at line 42 of file gmp_tests.c.

43{
44 int result = (int) mock (session, entity);
45 if (result == 0 && entity != NULL)
46 {
47 *entity = (entity_t) mock ();
48 }
49 return result;
50}
struct entity_s * entity_t
Definition xmlutils.h:58

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

Here is the caller graph for this function:

◆ __wrap_read_entity_c()

int __wrap_read_entity_c ( gvm_connection_t * connection,
entity_t * entity )

Definition at line 89 of file gmp_tests.c.

90{
91 int result = (int) mock (connection, entity);
92 if (result == 0 && entity != NULL)
93 {
94 *entity = (entity_t) mock ();
95 }
96 return result;
97}

◆ __wrap_try_read_entity()

int __wrap_try_read_entity ( gnutls_session_t * session,
int timeout,
entity_t * entity )

Definition at line 56 of file gmp_tests.c.

58{
59 int result = (int) mock (session, timeout, entity);
60 if (result == 0 && entity != NULL)
61 {
62 *entity = (entity_t) mock ();
63 }
64 return result;
65}

Referenced by Ensure(), Ensure(), and Ensure().

Here is the caller graph for this function:

◆ __wrap_try_read_entity_c()

int __wrap_try_read_entity_c ( gvm_connection_t * connection,
int timeout,
entity_t * entity )

Definition at line 103 of file gmp_tests.c.

105{
106 int result = (int) mock (connection, timeout, entity);
107 if (result == 0 && entity != NULL)
108 {
109 *entity = (entity_t) mock ();
110 }
111 return result;
112}

◆ add_mock_attribute()

void add_mock_attribute ( entity_t entity,
const char * name,
const char * value )
static

Definition at line 137 of file gmp_tests.c.

138{
139 g_hash_table_insert (entity->attributes, g_strdup (name), g_strdup (value));
140}
GHashTable * attributes
Attributes.
Definition xmlutils.h:55

References entity_s::attributes.

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

Here is the caller graph for this function:

◆ AfterEach()

AfterEach ( gmp )

Definition at line 119 of file gmp_tests.c.

120{
121}

◆ BeforeEach()

BeforeEach ( gmp )

Definition at line 115 of file gmp_tests.c.

116{
117}

◆ create_mock_entity()

entity_t create_mock_entity ( const char * name,
const char * text )
static

Definition at line 125 of file gmp_tests.c.

126{
127 entity_t entity = g_malloc0 (sizeof (struct entity_s));
128 entity->name = g_strdup (name);
129 entity->text = g_strdup (text);
130 entity->attributes =
131 g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
132 return entity;
133}
XML element.
Definition xmlutils.h:52
char * text
Text.
Definition xmlutils.h:54
char * name
Name.
Definition xmlutils.h:53

References entity_s::attributes, entity_s::name, and entity_s::text.

Referenced by Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), Ensure(), and Ensure().

Here is the caller graph for this function:

◆ Describe()

Describe ( gmp )

◆ Ensure() [1/15]

Ensure ( gmp ,
gmp_check_response_returns_error_on_read_failure  )

Definition at line 281 of file gmp_tests.c.

282{
283 expect (__wrap_read_entity, will_return (-1));
284
285 entity_t entity = NULL;
286 int result = gmp_check_response (NULL, &entity);
287
288 assert_that (result, is_equal_to (-1));
289 assert_that (entity, is_null);
290}
static int gmp_check_response(gnutls_session_t *session, entity_t *entity)
Read response and convert status of response to a return value.
Definition gmp.c:70
int __wrap_read_entity(gnutls_session_t *session, entity_t *entity)
Definition gmp_tests.c:42

References __wrap_read_entity(), and gmp_check_response().

Here is the call graph for this function:

◆ Ensure() [2/15]

Ensure ( gmp ,
gmp_check_response_returns_error_when_no_status  )

Definition at line 292 of file gmp_tests.c.

293{
294 entity_t mock_entity = create_mock_entity ("response", "");
295
296 expect (__wrap_read_entity, will_return (0));
297 expect (__wrap_read_entity, will_return (mock_entity));
298
299 entity_t entity = NULL;
300 int result = gmp_check_response (NULL, &entity);
301
302 assert_that (result, is_equal_to (-1));
303 assert_that (entity, is_null);
304}
static entity_t create_mock_entity(const char *name, const char *text)
Definition gmp_tests.c:125

References __wrap_read_entity(), create_mock_entity(), and gmp_check_response().

Here is the call graph for this function:

◆ Ensure() [3/15]

Ensure ( gmp ,
gmp_check_response_returns_gmp_error_code  )

Definition at line 266 of file gmp_tests.c.

267{
268 entity_t mock_entity = create_mock_entity ("response", "");
269 add_mock_attribute (mock_entity, "status", "400");
270
271 expect (__wrap_read_entity, will_return (0));
272 expect (__wrap_read_entity, will_return (mock_entity));
273
274 entity_t entity = NULL;
275 int result = gmp_check_response (NULL, &entity);
276
277 assert_that (result, is_equal_to (400));
278 assert_that (entity, is_null);
279}
static void add_mock_attribute(entity_t entity, const char *name, const char *value)
Definition gmp_tests.c:137

References __wrap_read_entity(), add_mock_attribute(), create_mock_entity(), and gmp_check_response().

Here is the call graph for this function:

◆ Ensure() [4/15]

Ensure ( gmp ,
gmp_check_response_succeeds_with_valid_response  )

Definition at line 249 of file gmp_tests.c.

250{
251 entity_t mock_entity = create_mock_entity ("response", "");
252 add_mock_attribute (mock_entity, "status", "200");
253
254 expect (__wrap_read_entity, will_return (0));
255 expect (__wrap_read_entity, will_return (mock_entity));
256
257 entity_t entity = NULL;
258 int result = gmp_check_response (NULL, &entity);
259
260 assert_that (result, is_equal_to (0));
261 assert_that (entity, is_not_null);
262
263 free_entity (mock_entity);
264}
void free_entity(entity_t entity)
Free an entity, recursively.
Definition xmlutils.c:115

References __wrap_read_entity(), add_mock_attribute(), create_mock_entity(), free_entity(), and gmp_check_response().

Here is the call graph for this function:

◆ Ensure() [5/15]

Ensure ( gmp ,
gmp_ping_returns_error_on_read_failure  )

Definition at line 332 of file gmp_tests.c.

333{
334 expect (__wrap_gvm_server_sendf, will_return (0));
335 expect (__wrap_try_read_entity, will_return (-1));
336
337 int result = gmp_ping (NULL, 0);
338
339 assert_that (result, is_equal_to (-1));
340}
int gmp_ping(gnutls_session_t *session, int timeout)
"Ping" the manager.
Definition gmp.c:190
int __wrap_gvm_server_sendf(gnutls_session_t *session, const char *fmt,...)
Definition gmp_tests.c:16
int __wrap_try_read_entity(gnutls_session_t *session, int timeout, entity_t *entity)
Definition gmp_tests.c:56

References __wrap_gvm_server_sendf(), __wrap_try_read_entity(), and gmp_ping().

Here is the call graph for this function:

◆ Ensure() [6/15]

Ensure ( gmp ,
gmp_ping_returns_error_on_send_failure  )

Definition at line 323 of file gmp_tests.c.

324{
325 expect (__wrap_gvm_server_sendf, will_return (-1));
326
327 int result = gmp_ping (NULL, 0);
328
329 assert_that (result, is_equal_to (-1));
330}

References __wrap_gvm_server_sendf(), and gmp_ping().

Here is the call graph for this function:

◆ Ensure() [7/15]

Ensure ( gmp ,
gmp_ping_returns_error_with_invalid_status  )

Definition at line 342 of file gmp_tests.c.

343{
344 expect (__wrap_gvm_server_sendf, will_return (0));
345
346 entity_t mock_entity = create_mock_entity ("get_version_response", "");
347 add_mock_attribute (mock_entity, "status", "500");
348
349 expect (__wrap_try_read_entity, will_return (0));
350 expect (__wrap_try_read_entity, will_return (mock_entity));
351
352 int result = gmp_ping (NULL, 0);
353
354 assert_that (result, is_equal_to (-1));
355}

References __wrap_gvm_server_sendf(), __wrap_try_read_entity(), add_mock_attribute(), create_mock_entity(), and gmp_ping().

Here is the call graph for this function:

◆ Ensure() [8/15]

Ensure ( gmp ,
gmp_ping_succeeds_with_valid_response  )

Definition at line 308 of file gmp_tests.c.

309{
310 expect (__wrap_gvm_server_sendf, will_return (0));
311
312 entity_t mock_entity = create_mock_entity ("get_version_response", "");
313 add_mock_attribute (mock_entity, "status", "200");
314
315 expect (__wrap_try_read_entity, will_return (0));
316 expect (__wrap_try_read_entity, will_return (mock_entity));
317
318 int result = gmp_ping (NULL, 0);
319
320 assert_that (result, is_equal_to (0));
321}

References __wrap_gvm_server_sendf(), __wrap_try_read_entity(), add_mock_attribute(), create_mock_entity(), and gmp_ping().

Here is the call graph for this function:

◆ Ensure() [9/15]

Ensure ( gmp ,
gmp_read_create_response_returns_error_on_read_failure  )

Definition at line 236 of file gmp_tests.c.

237{
238 expect (__wrap_read_entity, will_return (-1));
239
240 gchar *uuid = NULL;
241 int result = gmp_read_create_response (NULL, &uuid);
242
243 assert_that (result, is_equal_to (-1));
244 assert_that (uuid, is_null);
245}
int gmp_read_create_response(gnutls_session_t *session, gchar **uuid)
Read response status and resource UUID.
Definition gmp.c:888

References __wrap_read_entity(), and gmp_read_create_response().

Here is the call graph for this function:

◆ Ensure() [10/15]

Ensure ( gmp ,
gmp_read_create_response_returns_error_when_no_status  )

Definition at line 222 of file gmp_tests.c.

223{
224 entity_t mock_entity = create_mock_entity ("create_response", "");
225
226 expect (__wrap_read_entity, will_return (0));
227 expect (__wrap_read_entity, will_return (mock_entity));
228
229 gchar *uuid = NULL;
230 int result = gmp_read_create_response (NULL, &uuid);
231
232 assert_that (result, is_equal_to (-1));
233 assert_that (uuid, is_null);
234}

References __wrap_read_entity(), create_mock_entity(), and gmp_read_create_response().

Here is the call graph for this function:

◆ Ensure() [11/15]

Ensure ( gmp ,
gmp_read_create_response_returns_uuid_on_success  )

Definition at line 186 of file gmp_tests.c.

187{
188 entity_t mock_entity = create_mock_entity ("create_response", "");
189 add_mock_attribute (mock_entity, "status", "201");
190 add_mock_attribute (mock_entity, "id",
191 "12345678-1234-1234-1234-123456789012");
192
193 expect (__wrap_read_entity, will_return (0));
194 expect (__wrap_read_entity, will_return (mock_entity));
195
196 gchar *uuid = NULL;
197 int result = gmp_read_create_response (NULL, &uuid);
198
199 assert_that (result, is_equal_to (201));
200 assert_that (uuid, is_not_null);
201 assert_that (uuid,
202 is_equal_to_string ("12345678-1234-1234-1234-123456789012"));
203
204 g_free (uuid);
205}

References __wrap_read_entity(), add_mock_attribute(), create_mock_entity(), and gmp_read_create_response().

Here is the call graph for this function:

◆ Ensure() [12/15]

Ensure ( gmp ,
gmp_read_create_response_succeeds_without_uuid_parameter  )

Definition at line 207 of file gmp_tests.c.

208{
209 entity_t mock_entity = create_mock_entity ("create_response", "");
210 add_mock_attribute (mock_entity, "status", "201");
211 add_mock_attribute (mock_entity, "id",
212 "12345678-1234-1234-1234-123456789012");
213
214 expect (__wrap_read_entity, will_return (0));
215 expect (__wrap_read_entity, will_return (mock_entity));
216
217 int result = gmp_read_create_response (NULL, NULL);
218
219 assert_that (result, is_equal_to (201));
220}

References __wrap_read_entity(), add_mock_attribute(), create_mock_entity(), and gmp_read_create_response().

Here is the call graph for this function:

◆ Ensure() [13/15]

Ensure ( gmp ,
gmp_task_status_returns_correct_string_for_valid_response  )

Definition at line 144 of file gmp_tests.c.

145{
146 entity_t response = create_mock_entity ("get_tasks_response", "");
147 entity_t task = create_mock_entity ("task", "");
148 response->entities = g_slist_append (NULL, task);
149 entity_t status = create_mock_entity ("status", "Running");
150 task->entities = g_slist_append (NULL, status);
151
152 const char *result = gmp_task_status (response);
153
154 assert_that (result, is_not_null);
155 assert_that (result, is_equal_to_string ("Running"));
156
157 free_entity (response);
158}
const char * gmp_task_status(entity_t response)
Get the task status from a GMP GET_TASKS response.
Definition gmp.c:48
entities_t entities
Children.
Definition xmlutils.h:56

References create_mock_entity(), entity_s::entities, free_entity(), and gmp_task_status().

Here is the call graph for this function:

◆ Ensure() [14/15]

Ensure ( gmp ,
gmp_task_status_returns_null_when_no_status  )

Definition at line 171 of file gmp_tests.c.

172{
173 entity_t response = create_mock_entity ("get_tasks_response", "");
174 entity_t task = create_mock_entity ("task", "");
175 response->entities = g_slist_append (NULL, task);
176
177 const char *result = gmp_task_status (response);
178
179 assert_that (result, is_null);
180
181 free_entity (response);
182}

References create_mock_entity(), entity_s::entities, free_entity(), and gmp_task_status().

Here is the call graph for this function:

◆ Ensure() [15/15]

Ensure ( gmp ,
gmp_task_status_returns_null_when_no_task  )

Definition at line 160 of file gmp_tests.c.

161{
162 entity_t response = create_mock_entity ("get_tasks_response", "");
163
164 const char *result = gmp_task_status (response);
165
166 assert_that (result, is_null);
167
168 free_entity (response);
169}

References create_mock_entity(), free_entity(), and gmp_task_status().

Here is the call graph for this function:

◆ main()

int main ( int argc,
char ** argv )

Definition at line 360 of file gmp_tests.c.

361{
362 int ret;
363 TestSuite *suite;
364
365 suite = create_test_suite ();
366
367 add_test_with_context (
368 suite, gmp, gmp_task_status_returns_correct_string_for_valid_response);
369 add_test_with_context (suite, gmp, gmp_task_status_returns_null_when_no_task);
370 add_test_with_context (suite, gmp,
371 gmp_task_status_returns_null_when_no_status);
372
373 add_test_with_context (suite, gmp,
374 gmp_read_create_response_returns_uuid_on_success);
375 add_test_with_context (
376 suite, gmp, gmp_read_create_response_succeeds_without_uuid_parameter);
377 add_test_with_context (suite, gmp,
378 gmp_read_create_response_returns_error_when_no_status);
379 add_test_with_context (
380 suite, gmp, gmp_read_create_response_returns_error_on_read_failure);
381
382 add_test_with_context (suite, gmp,
383 gmp_check_response_succeeds_with_valid_response);
384 add_test_with_context (suite, gmp, gmp_check_response_returns_gmp_error_code);
385 add_test_with_context (suite, gmp,
386 gmp_check_response_returns_error_on_read_failure);
387 add_test_with_context (suite, gmp,
388 gmp_check_response_returns_error_when_no_status);
389
390 add_test_with_context (suite, gmp, gmp_ping_succeeds_with_valid_response);
391 add_test_with_context (suite, gmp, gmp_ping_returns_error_on_send_failure);
392 add_test_with_context (suite, gmp, gmp_ping_returns_error_on_read_failure);
393 add_test_with_context (suite, gmp,
394 gmp_ping_returns_error_with_invalid_status);
395
396 if (argc > 1)
397 ret = run_single_test (suite, argv[1], create_text_reporter ());
398 else
399 ret = run_test_suite (suite, create_text_reporter ());
400
401 destroy_test_suite (suite);
402
403 return ret;
404}