Ejemplo n.º 1
0
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> >();
}
Ejemplo n.º 2
0
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));
}
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
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()));
}
Ejemplo n.º 5
0
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!!!"));
}
Ejemplo n.º 6
0
void ultraSonic_update(void)
{	
	error = 0;
	isMeasurementFinished = 0;

	timers_timer1Reset();

	startMeasurement(SENSOR0_TRIG_BIT);

	waitForResult();//!!!

	if(error)
		distances[0] = INFINITE_DISTANCE;
}
Ejemplo n.º 7
0
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);
}
Ejemplo n.º 8
0
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. */
}
Ejemplo n.º 9
0
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());
}
Ejemplo n.º 10
0
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());
}
Ejemplo n.º 11
0
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);
}
Ejemplo n.º 12
0
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;
}
Ejemplo n.º 13
0
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));
}