void ChatTests::init() { /* User #1. */ SessionManager *sessionManager = SessionManager::getInstance(); QSignalSpy spy(sessionManager, SIGNAL(loginCompleted(QSharedPointer<Session>, bool, QString))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSharedPointer<const LoginUser> u(new LoginUser(TEMP_SESSION_USER3, WORKING_DIR "public.pem", WORKING_DIR "private.pem")); sessionManager->login(SERVER_URL, CA_CERT, u, "password"); waitForResult(spy); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QVERIFY2(arguments.at(1) == true, arguments.at(2).toString().toStdString().c_str()); session = arguments.at(0).value<QSharedPointer<Session> >(); QSignalSpy spy2(session.data(), SIGNAL(initChatCompleted(QSharedPointer<Chat>, bool, QString))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); session->initChat(); waitForResult(spy2); QCOMPARE(spy2.count(), 1); QList<QVariant> arguments2 = spy2.takeFirst(); QVERIFY2(arguments2.at(1) == true, arguments2.at(2).toString().toStdString().c_str()); chat = arguments2.at(0).value<QSharedPointer<Chat> >(); /* User #2. */ QSignalSpy spy3(sessionManager, SIGNAL(loginCompleted(QSharedPointer<Session>, bool, QString))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); QSharedPointer<const LoginUser> u2(new LoginUser(TEMP_SESSION_USER2, WORKING_DIR "public.pem", WORKING_DIR "private.pem")); sessionManager->login(SERVER_URL, CA_CERT, u2, "password"); waitForResult(spy3); QCOMPARE(spy3.count(), 1); QList<QVariant> arguments3 = spy3.takeFirst(); QVERIFY2(arguments3.at(1) == true, arguments3.at(2).toString().toStdString().c_str()); session2 = arguments3.at(0).value<QSharedPointer<Session> >(); }
void ChatTests::testInvite() { QVERIFY(chat); QSignalSpy spy2(chat.data(), SIGNAL(inviteCompleted(bool, QString))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); QSignalSpy spy3(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); QSignalSpy spy4(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>))); QVERIFY(spy4.isValid()); QVERIFY(spy4.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER2, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy2); QCOMPARE(spy2.count(), 1); QList<QVariant> arguments2 = spy2.takeFirst(); QVERIFY2(arguments2.at(0) == true, arguments2.at(1).toString().toStdString().c_str()); waitForResult(spy3); QCOMPARE(spy3.count(), 1); QList<QVariant> arguments3 = spy3.takeFirst(); QSharedPointer<Chat> chat2 = arguments3.at(0).value<QSharedPointer<Chat> >(); waitForResult(spy4); QCOMPARE(spy4.count(), 1); QList<QVariant> arguments4 = spy4.takeFirst(); QSharedPointer<const User> u2 = arguments4.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u2->getName(), QString(TEMP_SESSION_USER2)); QList<QSharedPointer<const User> > chat1Usr = chat->getUserList(); QList<QSharedPointer<const User> > chat2Usr = chat2->getUserList(); QCOMPARE(chat1Usr.size(), 2); QCOMPARE(chat2Usr.size(), 2); QCOMPARE(chat1Usr[0]->getName(), QString(TEMP_SESSION_USER2)); QCOMPARE(chat1Usr[1]->getName(), QString(TEMP_SESSION_USER3)); QCOMPARE(chat2Usr[0]->getName(), QString(TEMP_SESSION_USER2)); QCOMPARE(chat2Usr[1]->getName(), QString(TEMP_SESSION_USER3)); }
void RemoteCounter::requestNewBatch(store::ClientHandle& handle) { uint64_t nextCounter; while (true) { auto getFuture = handle.get(*mCounterTable, mCounterId); std::shared_ptr<store::ModificationResponse> counterFuture; if (getFuture->waitForResult()) { auto tuple = getFuture->get(); nextCounter = static_cast<uint64_t>(mCounterTable->field<int64_t>(gCounterFieldName, tuple->data())); counterFuture = handle.update(*mCounterTable, mCounterId, tuple->version(), createCounterTuple(nextCounter + RESERVED_BATCH)); } else if (getFuture->error() == store::error::not_found) { nextCounter = 0x0u; counterFuture = handle.insert(*mCounterTable, mCounterId, 0x0u, createCounterTuple(RESERVED_BATCH)); } else { throw std::system_error(getFuture->error()); } if (counterFuture->waitForResult()) { break; } else if (counterFuture->error() != store::error::not_in_snapshot) { throw std::system_error(counterFuture->error()); } } if (mCounter == mReserved) { mCounter = nextCounter; mReserved = nextCounter + RESERVED_BATCH; } else { mNextCounter = nextCounter; } mFreshKeys.notify_all(); }
uint64_t RemoteCounter::remoteValue(store::ClientHandle& handle) const { auto getFuture = handle.get(*mCounterTable, mCounterId); if (!getFuture->waitForResult() && getFuture->error() == store::error::not_found) { return 0x0u; } auto tuple = getFuture->get(); return static_cast<uint64_t>(mCounterTable->field<int64_t>(gCounterFieldName, tuple->data())); }
void ChatTests::testRetrieveLog() { testTransmitMessage(); QSignalSpy spy3(chat.data(), SIGNAL(leaveChatCompleted(bool, QString))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); chat->leaveChat(); waitForResult(spy3); QSignalSpy spy(session.data(), SIGNAL(retrieveLoglistCompleted(const QList<QPair<QDateTime, QString> >, bool, QString))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); session->retrieveLoglist(); waitForResult(spy); QList<QVariant> arguments = spy.takeFirst(); QVERIFY2(arguments.at(1) == true, arguments.at(2).toString().toStdString().c_str()); QList<QPair<QDateTime, QString> > logs = arguments.at(0).value< QList<QPair<QDateTime, QString> > >(); QVERIFY(logs.size() > 0); QSignalSpy spy2(session.data(), SIGNAL(retrieveLogCompleted(const QList<ChatlogEntry>, bool, QString))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); session->retrieveLog(logs[logs.size()-1]); waitForResult(spy2); QList<QVariant> arguments2 = spy2.takeFirst(); QVERIFY2(arguments2.at(1) == true, arguments2.at(2).toString().toStdString().c_str()); QList<ChatlogEntry> log = arguments2.at(0).value<QList<ChatlogEntry> >(); QVERIFY(log.size() == 2); QCOMPARE(log[0].getMessage(), QString("Cupcakes!!!")); QCOMPARE(log[1].getMessage(), QString("Khaaan!!!")); }
void ultraSonic_update(void) { error = 0; isMeasurementFinished = 0; timers_timer1Reset(); startMeasurement(SENSOR0_TRIG_BIT); waitForResult();//!!! if(error) distances[0] = INFINITE_DISTANCE; }
void ChatTests::cleanup() { /* User #1. */ QVERIFY(session); QSignalSpy spy(session.data(), SIGNAL(logoutCompleted(bool, QString))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); session->logout(); waitForResult(spy); /* User #2. */ QVERIFY(session2); QSignalSpy spy2(session2.data(), SIGNAL(logoutCompleted(bool, QString))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); session2->logout(); waitForResult(spy2); }
static void registerUser(const QString &user) { SessionManager *sessionManager = SessionManager::getInstance(); QSignalSpy spy(sessionManager, SIGNAL(registerCompleted(bool, const QString &))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSharedPointer<const User> u(new User(user, WORKING_DIR "public.pem")); sessionManager->registerUser(SERVER_URL, CA_CERT, u, "password"); waitForResult(spy); QCOMPARE(spy.count(), 1); /* Don't check results - we don't delete this user, so it will fail. */ }
void ChatTests::testInviteSelf() { QVERIFY(chat); QSignalSpy spy(chat.data(), SIGNAL(inviteCompleted(bool, QString))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER3, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QVERIFY2(arguments.at(0) == false, arguments.at(1).toString().toStdString().c_str()); }
void ChatTests::testInviteNotLoggedIn() { QVERIFY(chat); QSignalSpy spy(chat.data(), SIGNAL(inviteCompleted(bool, QString))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSharedPointer<const User> u(new User(getUsername("registeredbutneverlogsin"), WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QVERIFY2(arguments.at(0) == false, arguments.at(1).toString().toStdString().c_str()); }
void ChatTests::testEchoMessage() { QVERIFY(chat); QSignalSpy spy(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QString msg = "send this back to me!"; chat->send(msg); waitForResult(spy); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QVERIFY(arguments.at(1) == msg); }
S32 LLVFSThread::readImmediate(LLVFS* vfs, const LLUUID &file_id, const LLAssetType::EType file_type, U8* buffer, S32 offset, S32 numbytes) { handle_t handle = generateHandle(); Request* req = new Request(handle, PRIORITY_IMMEDIATE, 0, FILE_READ, vfs, file_id, file_type, buffer, offset, numbytes); S32 res = addRequest(req) ? 1 : 0; if (res == 0) { LL_ERRS() << "LLVFSThread::read called after LLVFSThread::cleanupClass()" << LL_ENDL; req->deleteRequest(); } else { llverify(waitForResult(handle, false) == true); res = req->getBytesRead(); completeRequest(handle); } return res; }
void ChatTests::testTransmitMessage() { QVERIFY(chat); QSignalSpy spy(session2.data(), SIGNAL(invitationReceived(QSharedPointer<Chat>))); QVERIFY(spy.isValid()); QVERIFY(spy.isEmpty()); QSignalSpy spy2(chat.data(), SIGNAL(userJoined(QSharedPointer<const User>))); QVERIFY(spy2.isValid()); QVERIFY(spy2.isEmpty()); QSharedPointer<const User> u(new User(TEMP_SESSION_USER2, WORKING_DIR "public.pem")); chat->invite(u); waitForResult(spy); QList<QVariant> arguments = spy.takeFirst(); QSharedPointer<Chat> chat2 = arguments.at(0).value<QSharedPointer<Chat> >(); waitForResult(spy2); QSignalSpy spy3(chat2.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy3.isValid()); QVERIFY(spy3.isEmpty()); QSignalSpy spy4(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy4.isValid()); QVERIFY(spy4.isEmpty()); QSignalSpy spy5(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy5.isValid()); QVERIFY(spy5.isEmpty()); chat2->send("Cupcakes!!!"); waitForResult(spy3); QList<QVariant> arguments2 = spy3.takeFirst(); QVERIFY(arguments2.at(0) == true); waitForResult(spy4); QList<QVariant> arguments3 = spy4.takeFirst(); QCOMPARE(arguments3.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u2 = arguments3.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u2->getName(), u->getName()); waitForResult(spy5); QList<QVariant> arguments4 = spy5.takeFirst(); QCOMPARE(arguments4.at(1).toString(), QString("Cupcakes!!!")); QSharedPointer<const User> u3 = arguments4.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u3->getName(), u->getName()); QSignalSpy spy6(chat.data(), SIGNAL(sendCompleted(bool, const QString &))); QVERIFY(spy6.isValid()); QVERIFY(spy6.isEmpty()); QSignalSpy spy7(chat2.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy7.isValid()); QVERIFY(spy7.isEmpty()); QSignalSpy spy8(chat.data(), SIGNAL(messageReceived(QSharedPointer<const User>, const QString &))); QVERIFY(spy8.isValid()); QVERIFY(spy8.isEmpty()); chat->send("Khaaan!!!"); waitForResult(spy6); QList<QVariant> arguments5 = spy6.takeFirst(); QVERIFY(arguments5.at(0) == true); waitForResult(spy7); QList<QVariant> arguments6 = spy7.takeFirst(); QCOMPARE(arguments6.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u4 = arguments6.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u4->getName(), QString(TEMP_SESSION_USER3)); waitForResult(spy8); QList<QVariant> arguments7 = spy8.takeFirst(); QCOMPARE(arguments7.at(1).toString(), QString("Khaaan!!!")); QSharedPointer<const User> u5 = arguments7.at(0).value<QSharedPointer<const User> >(); QCOMPARE(u5->getName(), QString(TEMP_SESSION_USER3)); }