int Insert(SaHpiSessionIdT session, SaHpiResourceIdT resource, int *returnvalue, SaHpiBoolT * restore) { SaErrorT status; if ((*returnvalue == SAF_TEST_UNKNOWN) || (*restore != SAHPI_FALSE)) { status = saHpiHotSwapActionRequest(session, resource, SAHPI_HS_ACTION_INSERTION); if (*restore == SAHPI_FALSE) { if (status != SA_OK) { e_print(saHpiHotSwapActionRequest, SA_OK, status); *returnvalue = SAF_TEST_UNRESOLVED; } } // After placed in the Insertion Pending mode, cancel the policy // We are only testing from the extraction pending state. status = saHpiHotSwapPolicyCancel(session, resource); if (*restore == SAHPI_FALSE) { if (!((status == SA_OK) || (status == SA_ERR_HPI_INVALID_REQUEST))) { e_print(saHpiHotSwapPolicyCancel, SA_OK || SA_ERR_HPI_INVALID_REQUEST, status); *returnvalue = SAF_TEST_UNRESOLVED; } } } return (*returnvalue); }
int Extract(SaHpiSessionIdT session, SaHpiResourceIdT resource, int *returnvalue, SaHpiBoolT * restore) { SaErrorT status; if ((*returnvalue == SAF_TEST_UNKNOWN) || (*restore != SAHPI_FALSE)) { status = saHpiHotSwapActionRequest(session, resource, SAHPI_HS_ACTION_EXTRACTION); if (*restore == SAHPI_FALSE) { if (status != SA_OK) { e_print(saHpiHotSwapActionRequest, SA_OK, status); *returnvalue = SAF_TEST_UNRESOLVED; } } status = saHpiHotSwapPolicyCancel(session, resource); if (*restore == SAHPI_FALSE) { if (!((status == SA_OK) || (status == SA_ERR_HPI_INVALID_REQUEST))) { e_print(saHpiHotSwapPolicyCancel, SA_OK || SA_ERR_HPI_INVALID_REQUEST, status); *returnvalue = SAF_TEST_UNRESOLVED; } } } return (*returnvalue); }
int main(int argc, char **argv) { int testfail = 0; SaErrorT err, expected_err; SaHpiHsIndicatorStateT hs_ind_state = SAHPI_HS_INDICATOR_OFF; SaHpiHsStateT hs_state = SAHPI_HS_STATE_INACTIVE; SaHpiHsActionT act = 0; SaHpiResourceIdT id = 0; SaHpiRptEntryT rptentry; SaHpiSessionIdT sessionid; SaHpiTimeoutT timeout = SAHPI_TIMEOUT_IMMEDIATE; /***************************************** * Find a resource with hotswap capability *****************************************/ err = tsetup(&sessionid); if (err != SA_OK) { printf("Error! Cannot open session\n"); printf(" File=%s, Line=%d\n", __FILE__, __LINE__); return -1; } err = tfind_resource(&sessionid, SAHPI_CAPABILITY_FRU, SAHPI_FIRST_ENTRY, &rptentry, SAHPI_TRUE); if (err != SA_OK) { dbg("Cannot find a hotswap resource\n"); dbg(" File=%s, Line=%d\n", __FILE__, __LINE__); err = tcleanup(&sessionid); return SA_OK; } id = rptentry.ResourceId; /****************************** * Test: Bad parameter checking ******************************/ expected_err = SA_ERR_HPI_INVALID_PARAMS; err = saHpiAutoInsertTimeoutGet(sessionid, NULL); checkstatus(err, expected_err, testfail); err = saHpiAutoInsertTimeoutSet(sessionid, -5); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutGet(sessionid, id, NULL); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutSet(sessionid, id, -5); checkstatus(err, expected_err, testfail); err = saHpiHotSwapStateGet(sessionid, id, NULL); checkstatus(err, expected_err, testfail); err = saHpiHotSwapActionRequest(sessionid, id, -1); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateGet(sessionid, id, NULL); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateSet(sessionid, id, -1); checkstatus(err, expected_err, testfail); /******************************* * Test: Invalid session checking *******************************/ expected_err = SA_ERR_HPI_INVALID_SESSION; err = saHpiHotSwapPolicyCancel(-1, id); checkstatus(err, expected_err, testfail); err = saHpiResourceActiveSet(-1, id); checkstatus(err, expected_err, testfail); err = saHpiResourceInactiveSet(-1, id); checkstatus(err, expected_err, testfail); err = saHpiAutoInsertTimeoutGet(-1, &timeout); checkstatus(err, expected_err, testfail); err = saHpiAutoInsertTimeoutSet(-1, timeout); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutGet(-1, id, &timeout); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutSet(-1, id, timeout); checkstatus(err, expected_err, testfail); err = saHpiHotSwapStateGet(-1, id, &hs_state); checkstatus(err, expected_err, testfail); err = saHpiHotSwapActionRequest(-1, id, act); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateGet(-1, id, &hs_ind_state); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateSet(-1, id, hs_ind_state); checkstatus(err, expected_err, testfail); /**************************** * Test: Invalid RID checking ****************************/ expected_err = SA_ERR_HPI_INVALID_RESOURCE; err = saHpiHotSwapPolicyCancel(sessionid, -1); checkstatus(err, expected_err, testfail); err = saHpiResourceActiveSet(sessionid, -1); checkstatus(err, expected_err, testfail); err = saHpiResourceInactiveSet(sessionid, -1); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutGet(sessionid, -1, &timeout); checkstatus(err, expected_err, testfail); err = saHpiAutoExtractTimeoutSet(sessionid, -1, timeout); checkstatus(err, expected_err, testfail); err = saHpiHotSwapStateGet(sessionid, -1, &hs_state); checkstatus(err, expected_err, testfail); err = saHpiHotSwapActionRequest(sessionid, -1, act); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateGet(sessionid, -1, &hs_ind_state); checkstatus(err, expected_err, testfail); err = saHpiHotSwapIndicatorStateSet(sessionid, -1, hs_ind_state); checkstatus(err, expected_err, testfail); /************************* * Cleanup after all tests *************************/ err = tcleanup(&sessionid); return testfail; }