void PrlNetworkShapingTest::AddNetworkClassesConfig() { SdkHandleWrap hClassesList; SdkHandleWrap hJob, hResult; SdkHandleWrap hClass0; SdkHandleWrap hClass1; SdkHandleWrap hClass2; // preserve original list of classes CHECK_ASYNC_OP_FAILED(PrlSrv_GetNetworkClassesList(m_hServer, 0), 0); hJob.reset(PrlSrv_GetNetworkClassesList(m_hServer, 0)); CHECK_JOB_RET_CODE(hJob); CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, m_hClassesListOrig.GetHandlePtr())); CreateNetworkClass(hClass0, 0); CreateNetworkClass(hClass1, 1); CreateNetworkClass(hClass2, 2); CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hClassesList.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass0)); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass1)); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hClassesList, hClass2)); CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkClassesList(m_hServer, hClassesList, 0), 0); // check validity of result CHECK_ASYNC_OP_FAILED(PrlSrv_GetNetworkClassesList(m_hServer, 0), 0); hJob.reset(PrlSrv_GetNetworkClassesList(m_hServer, 0)); CHECK_JOB_RET_CODE(hJob); CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hClassesList.GetHandlePtr())); PRL_UINT32 nItemsCount = 0; CHECK_RET_CODE_EXP(PrlHndlList_GetItemsCount(hClassesList, &nItemsCount)) QVERIFY(nItemsCount == 3); SdkHandleWrap hClass; CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 0, hClass.GetHandlePtr())); CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS); COMPARE_NETWORK_CLASSES(hClass, hClass0); CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 1, hClass.GetHandlePtr())); CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS); COMPARE_NETWORK_CLASSES(hClass, hClass1); CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hClassesList, 2, hClass.GetHandlePtr())); CHECK_HANDLE_TYPE(hClass, PHT_NETWORK_CLASS); COMPARE_NETWORK_CLASSES(hClass, hClass2); }
void PrlApiTest::testLoginOnNonServerHandle() { PrlHandleBase *pHandle = new PrlHandleServerJob(PrlHandleServerPtr(0), Uuid::createUuid(), PJOC_UNKNOWN); m_Handle.reset(pHandle->GetHandle()); CHECK_ASYNC_OP_FAILED(PrlSrv_Login(m_Handle, TestConfig::getRemoteHostName(), TestConfig::getUserLogin(), TestConfig::getUserPassword(), NULL, 0, 0, PSL_HIGH_SECURITY), PRL_ERR_INVALID_ARG); }
void PrlNetworkShapingTest::RestoreNetworkClassesConfig() { if (m_hClassesListOrig == PRL_INVALID_HANDLE) return; CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkClassesList(m_hServer, m_hClassesListOrig, 0), 0); m_hClassesListOrig.reset(); }
void PrlNetworkShapingTest::testUpdateNetworkShapingConfig() { SdkHandleWrap hJob, hResult, hShaping, hShapingOrig ; SdkHandleWrap hShapingList, hShapingListOrig, hBandList; SdkHandleWrap hEntry0; SdkHandleWrap hEntry1; QString sDev = "eth0"; testLoginLocal(); AddNetworkClassesConfig(); hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0)); CHECK_JOB_RET_CODE(hJob); CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShaping.GetHandlePtr())); hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0)); CHECK_JOB_RET_CODE(hJob); CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShapingOrig.GetHandlePtr())); PRL_BOOL bEnabled = PRL_FALSE; CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_IsEnabled(hShaping, &bEnabled)); // BANDWIDTH CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hBandList.GetHandlePtr())); PrlNet::EthAdaptersList ethList; PrlNet::makeBindableAdapterList( ethList, true ); for (PrlNet::EthAdaptersList::Iterator it = ethList.begin(); it != ethList.end(); ++it ) { SdkHandleWrap hEntry; if (!it->_systemName.startsWith("eth")) continue; sDev = it->_systemName; CHECK_RET_CODE_EXP(PrlNetworkShapingBandwidthEntry_Create( QSTR2UTF8(it->_systemName), 100000, hEntry.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hBandList, hEntry)); } CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetNetworkDeviceBandwidthList(hShaping, hBandList)) // TOTALRATE CreateNetworkShapingEntry(hEntry0, 1, sDev); CreateNetworkShapingEntry(hEntry1, 2, sDev); CHECK_RET_CODE_EXP(PrlApi_CreateHandlesList(hShapingList.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hShapingList, hEntry0)); CHECK_RET_CODE_EXP(PrlHndlList_AddItem(hShapingList, hEntry1)); // check setter CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetNetworkShapingList(hShaping, hShapingList)); bEnabled = !bEnabled; CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_SetEnabled(hShaping, bEnabled)); CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkShapingConfig(m_hServer, hShaping, 0), 0); // verify result with getter hJob.reset(PrlSrv_GetNetworkShapingConfig(m_hServer, 0)); CHECK_JOB_RET_CODE(hJob); CHECK_RET_CODE_EXP(PrlJob_GetResult(hJob, hResult.GetHandlePtr())); CHECK_RET_CODE_EXP(PrlResult_GetParam(hResult, hShaping.GetHandlePtr())); PRL_BOOL bNewEnabled = PRL_FALSE; CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_IsEnabled(hShaping, &bNewEnabled)); QVERIFY(bNewEnabled == bEnabled); CHECK_RET_CODE_EXP(PrlNetworkShapingConfig_GetNetworkShapingList(hShaping, hShapingList.GetHandlePtr())); CHECK_HANDLE_TYPE(hShapingList, PHT_HANDLES_LIST); PRL_UINT32 nItemsCount = 0; CHECK_RET_CODE_EXP(PrlHndlList_GetItemsCount(hShapingList, &nItemsCount)) QVERIFY(nItemsCount == 2); SdkHandleWrap hEntry; CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hShapingList, 0, hEntry.GetHandlePtr())); CHECK_HANDLE_TYPE(hEntry, PHT_NETWORK_SHAPING); COMPARE_SHAPING_ENTRIES(hEntry, hEntry0); CHECK_RET_CODE_EXP(PrlHndlList_GetItem(hShapingList, 1, hEntry.GetHandlePtr())); CHECK_HANDLE_TYPE(hEntry, PHT_NETWORK_SHAPING); COMPARE_SHAPING_ENTRIES(hEntry, hEntry1); // restore original values CHECK_ASYNC_OP_FAILED(PrlSrv_UpdateNetworkShapingConfig(m_hServer, hShapingOrig, 0), 0); }
void PrlApiTest::testLogoffOnNonServerHandle() { PrlHandleBase *pHandle = new PrlHandleServerJob(PrlHandleServerPtr(0), Uuid::createUuid(), PJOC_UNKNOWN); m_Handle.reset(pHandle->GetHandle()); CHECK_ASYNC_OP_FAILED(PrlSrv_Logoff(m_Handle), PRL_ERR_INVALID_ARG); }