- Reason: unordered processing, the subscription request is processed after the change role request - Actions: wait for subscription request to process successfully, apply fixing to the follow test cases: 9 5, 11 5, 11 6, 14 5, 14 6. --- src/mds/apitest/mdstipc.h | 1 + src/mds/apitest/mdstipc_api.c | 28 ++++++++++++++++++++-- src/mds/apitest/mdstipc_conf.c | 43 ++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/src/mds/apitest/mdstipc.h b/src/mds/apitest/mdstipc.h index 2b9fcf2fd..b84c303e6 100644 --- a/src/mds/apitest/mdstipc.h +++ b/src/mds/apitest/mdstipc.h @@ -206,6 +206,7 @@ uint32_t destroy_pwe_on_vdest(MDS_HDL); uint32_t tet_create_task(NCS_OS_CB, NCSCONTEXT*); uint32_t tet_release_task(void *task_handle); +uint32_t wait_adest_sel_obj(MDS_SVC_ID, int64_t); int is_adest_sel_obj_found(int); int is_sel_obj_found(int); int is_vdest_sel_obj_found(int, int); diff --git a/src/mds/apitest/mdstipc_api.c b/src/mds/apitest/mdstipc_api.c index 6ce3b7103..581ea53f3 100644 --- a/src/mds/apitest/mdstipc_api.c +++ b/src/mds/apitest/mdstipc_api.c @@ -5136,6 +5136,10 @@ void tet_send_response_tp_5() printf("\nFail\n"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, NCSMDS_SVC_ID_EXTERNAL_MIN, SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { @@ -5223,6 +5227,10 @@ void tet_send_response_tp_6() printf("\nFail\n"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, NCSMDS_SVC_ID_EXTERNAL_MIN, SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { @@ -6891,9 +6899,13 @@ void tet_send_response_ack_tp_5() printf("\nFail\n"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, - NCSMDS_SVC_ID_EXTERNAL_MIN, - SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { + NCSMDS_SVC_ID_EXTERNAL_MIN, + SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { printf("\nFail\n"); FAIL = 1; } @@ -6975,6 +6987,10 @@ void tet_send_response_ack_tp_6() printf("\nFail\n"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, NCSMDS_SVC_ID_EXTERNAL_MIN, SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { @@ -9224,6 +9240,10 @@ void tet_direct_send_all_tp_5() printf("\nFail"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, NCSMDS_SVC_ID_EXTERNAL_MIN, SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { @@ -9473,6 +9493,10 @@ void tet_direct_send_all_tp_6() printf("\nFail"); FAIL = 1; } + if (wait_adest_sel_obj(NCSMDS_SVC_ID_EXTERNAL_MIN, 10)) { + printf("\nFail\n"); + FAIL = 1; + } if (mds_service_retrieve(gl_tet_adest.mds_pwe1_hdl, NCSMDS_SVC_ID_EXTERNAL_MIN, SA_DISPATCH_ALL) != NCSCC_RC_SUCCESS) { diff --git a/src/mds/apitest/mdstipc_conf.c b/src/mds/apitest/mdstipc_conf.c index cd2f80791..e7cdaa1b8 100644 --- a/src/mds/apitest/mdstipc_conf.c +++ b/src/mds/apitest/mdstipc_conf.c @@ -1624,6 +1624,49 @@ int is_adest_sel_obj_found(int si) } return 0; } + +uint32_t wait_adest_sel_obj(MDS_SVC_ID svc_id, int64_t timeout /* in seconds */) +{ + int FAIL = 0; + int svc_idx = -1; + struct pollfd sel; + unsigned int count; + + for (int i = 0; i < gl_tet_adest.svc_count; i++) { + if (gl_tet_adest.svc[i].svc_id == svc_id) { + svc_idx = i; + break; + } + } + if (svc_idx < 0) { + printf("\nNot found the service id %u\n", svc_id); + FAIL = 1; + } else { + /* Polling the sel_obj */ + sel.fd = + m_GET_FD_FROM_SEL_OBJ(gl_tet_adest.svc[svc_idx].sel_obj); + sel.events = POLLIN; + count = osaf_poll(&sel, 1, timeout * 1000); + switch (count) { + case -1: + printf("Poll failed - %s", strerror(errno)); + FAIL = 1; + break; + case 0: + printf("\nTIMED OUT\n"); + FAIL = 1; + break; + case 1: + if ((sel.revents & POLLIN) == 0) { + printf("\nEvent type mismatch\n"); + FAIL = 1; + } + break; + } + } + return FAIL; +} + uint32_t tet_create_task(NCS_OS_CB task_startup, NCSCONTEXT *t_handle) { char taskname[] = "MDS_Tipc test"; -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel