void test_rp_session_cleanup(rp_ctx_t *ctx, rp_session_t *session) { if (NULL != session) { free((void*)session->user_credentials); rp_session_stop(ctx, session); } }
/** * Test RP processing of an invalid messages. */ static void rp_msg_neg_test(void **state) { int rc = 0; rp_session_t *session = NULL; Sr__Msg *msg = NULL; rp_ctx_t *rp_ctx = *state; assert_non_null(rp_ctx); ac_ucred_t credentials = { 0 }; credentials.e_uid = getuid(); credentials.e_gid = getgid(); /* generate some request */ rc = sr_gpb_req_alloc(SR__OPERATION__GET_ITEM, 123456, &msg); assert_int_equal(rc, SR_ERR_OK); assert_non_null(msg); /* process the message with NULL session */ rc = rp_msg_process(rp_ctx, NULL, msg); assert_int_equal(rc, SR_ERR_OK); /* create a session */ rc = rp_session_start(rp_ctx, 123456, &credentials, SR_DS_STARTUP, false, &session); assert_int_equal(rc, SR_ERR_OK); assert_non_null(session); /* RP does not implement session start request */ rc = sr_gpb_req_alloc(SR__OPERATION__SESSION_START, 123456, &msg); assert_int_equal(rc, SR_ERR_OK); assert_non_null(msg); /* process the message */ rc = rp_msg_process(rp_ctx, session, msg); assert_int_equal(rc, SR_ERR_OK); /* RP does not implement session start response */ rc = sr_gpb_resp_alloc(SR__OPERATION__SESSION_START, 123456, &msg); assert_int_equal(rc, SR_ERR_OK); assert_non_null(msg); /* process the message */ rc = rp_msg_process(rp_ctx, session, msg); assert_int_equal(rc, SR_ERR_OK); /* stop the session */ rc = rp_session_stop(rp_ctx, session); assert_int_equal(rc, SR_ERR_OK); }
/* * Test creating 100 RP sessions. */ static void rp_session_test(void **state) { int rc = 0, i = 0; rp_session_t *session = NULL; ac_ucred_t credentials = { 0 }; credentials.e_uid = getuid(); credentials.e_gid = getgid(); rp_ctx_t *rp_ctx = *state; assert_non_null(rp_ctx); for (i = 0; i < 100; i++) { /* create a session */ rc = rp_session_start(rp_ctx, 123456, &credentials, SR_DS_STARTUP, false, &session); assert_int_equal(rc, SR_ERR_OK); assert_non_null(session); /* stop the session */ rc = rp_session_stop(rp_ctx, session); assert_int_equal(rc, SR_ERR_OK); } }