/** * 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); }
void test_rp_sesssion_create(rp_ctx_t *rp_ctx, sr_datastore_t datastore, rp_session_t **rp_session_p) { rp_session_t *session = NULL; ac_ucred_t *credentials = NULL; int rc = SR_ERR_OK; credentials = calloc(1, sizeof(*credentials)); credentials->r_username = getenv("USER"); credentials->r_uid = getuid(); credentials->r_gid = getgid(); rc = rp_session_start(rp_ctx, 123456, credentials, datastore, SR_SESS_DEFAULT, 0, &session); assert_int_equal(SR_ERR_OK, rc); *rp_session_p = session; }
/* * 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); } }