enum TVerdict CTestMemZeroLength::doTestStepL() { INFO_PRINTF1(_L("Test Zero Length Dials")); RTelServer server; TInt ret = server.Connect(); TESTCHECK(ret, KErrNone); ret=server.LoadPhoneModule(DSTD_MODULE_NAME); TESTCHECK(ret, KErrNone); RPhone phone; ret = phone.Open(server,DSTD_PHONE_NAME); TESTCHECK(ret, KErrNone); RLine line; ret = line.Open(phone,DSTD_LINE_NAME); TESTCHECK(ret, KErrNone); RCall call; TName name; ret = call.OpenNewCall(line,name); TESTCHECK(ret, KErrNone); RCall::TTelNumberC number(_L("")); TPtrC8 callParams(_L8("")); ret=call.Dial(number); TESTCHECK(ret, KErrArgument); ret=call.Dial(callParams,number); TESTCHECK(ret, KErrArgument); TRequestStatus status; call.Dial(status,number); User::WaitForRequest(status); TESTCHECK(status.Int(), KErrArgument); call.Dial(status,callParams,number); User::WaitForRequest(status); TESTCHECK(status.Int(), KErrArgument); call.Close(); line.Close(); INFO_PRINTF1(_L("Passed illegal Cancel Test")); INFO_PRINTF1(_L("Test an illegal Cancel")); // This shouldn't panic phone.NotifyModemDetectedCancel(); phone.Close(); ServerClose(server); INFO_PRINTF1(_L("Passed illegal Cancel Test")); return TestStepResult(); }
Value XmlRpcSystemMethods::SystemMulticall( const Request::Parameters& parameters) const { const Value dummyId; Value::Array result; for (auto& call : parameters.at(0).AsArray()) { try { if (call[xml::METHOD_NAME_TAG].AsString() == SYSTEM_MULTICALL) { throw InternalErrorFault("Recursive system.multicall forbidden"); } auto& array = call[xml::PARAMS_TAG].AsArray(); Request::Parameters callParams(array.begin(), array.end()); auto retval = myDispatcher.Invoke( call[xml::METHOD_NAME_TAG].AsString(), callParams, dummyId); retval.ThrowIfFault(); Value::Array a; a.emplace_back(std::move(retval.GetResult())); result.push_back(std::move(a)); } catch (const Fault& ex) { Value::Struct fault; fault[xml::FAULT_CODE_NAME] = ex.GetCode(); fault[xml::FAULT_STRING_NAME] = ex.GetString(); result.push_back(std::move(fault)); } catch (const std::exception& ex) { Value::Struct fault; fault[xml::FAULT_CODE_NAME] = 0; fault[xml::FAULT_STRING_NAME] = ex.what(); result.push_back(std::move(fault)); } catch (...) { Value::Struct fault; fault[xml::FAULT_CODE_NAME] = 0; fault[xml::FAULT_STRING_NAME] = "Unknown error"; result.push_back(std::move(fault)); } } return std::move(result); }