diff -r f5050f1da672 -r 04becd199f91 javatools/tckrunner/tsrc/src/tckrunner.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javatools/tckrunner/tsrc/src/tckrunner.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,399 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: ?Description +* +*/ + +#include +#include "TestHarness.h" +#include "commsmessage.h" +#include "commsclientendpoint.h" +#include "logger.h" + +#include "testserver.h" + +using namespace java::comms; +using namespace std; +using java::util::Uid; + +const int TIMEOUT = 10; + +TEST_GROUP(TckRunner) +{ + TestServer server; + TEST_SETUP() + { + server.start(); + } + + TEST_TEARDOWN() + { + server.stop(); + } +}; + +/** + * Test normal TCK run + * 1: install operation + * 2: install result + * 3: uninstall operation + * 4: launch request check + * 5: uninstall result + */ +TEST(TckRunner, ok_case) +{ + // 1: install operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string url; + message >> oper >> url; + CHECK(rc == 0); + CHECK(oper == OPERATION_INSTALL); + CHECK(url.compare("unittest:\\\\tckrunner_tester") == 0); + } + // 2: install result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << 0 << 3 << "uid1" << "uid2" << "uid3"; + server.getJavaInstaller().send(msg); + } + // 3: uninstall operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string uid; + message >> oper >> uid; + CHECK(rc == 0); + CHECK(oper == OPERATION_UNINSTALL); + CHECK(uid.compare("uid1") == 0); + } + // 4: launch request check + { + CHECK(server.mLaunchReqs.size() == 3); + CHECK(server.mLaunchReqs.front().compare("uid1") == 0); + server.mLaunchReqs.pop(); + CHECK(server.mLaunchReqs.front().compare("uid2") == 0); + server.mLaunchReqs.pop(); + CHECK(server.mLaunchReqs.front().compare("uid3") == 0); + server.mLaunchReqs.pop(); + } + // 5: uninstall result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_UNINSTALL << 0; + server.getJavaInstaller().send(msg); + } +} + +/** + * Installation fails + * 1: install operation + * 2: install result nok + * 3: check no launch requests + */ +TEST(TckRunner, installfail) +{ + int i = 0; + do + { + // 1: install operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string url; + message >> oper >> url; + CHECK(rc == 0); + CHECK(oper == OPERATION_INSTALL); + CHECK(url.compare("unittest:\\\\tckrunner_tester") == 0); + } + // 2: install result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << -1 << 3 << "uid1" << "uid2" << "uid3"; + server.getJavaInstaller().send(msg); + } + sleep(1); + // 3: check no launch requests + { + CHECK(server.mLaunchReqs.size() == 0); + } + } + while (i++ < 3); +} + + +/** + * Application launch fails + * 1: install operation + * 2: install result + * 3: uninstall operation + * 4: launch request check + * 5: uninstall result + */ +TEST(TckRunner, launchfail) +{ + // 1: install operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string url; + message >> oper >> url; + CHECK(rc == 0); + CHECK(oper == OPERATION_INSTALL); + CHECK(url.compare("unittest:\\\\tckrunner_tester") == 0); + } + // 2: install result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << 0 << 3 << "fail" << "fail" << "fail"; + server.getJavaInstaller().send(msg); + } + // 3: uninstall operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string uid; + message >> oper >> uid; + CHECK(rc == 0); + CHECK(oper == OPERATION_UNINSTALL); + CHECK(uid.compare("fail") == 0); + } + // 4: launch request check + { + CHECK(server.mLaunchReqs.size() == 3); + CHECK(server.mLaunchReqs.front().compare("fail") == 0); + server.mLaunchReqs.pop(); + CHECK(server.mLaunchReqs.front().compare("fail") == 0); + server.mLaunchReqs.pop(); + CHECK(server.mLaunchReqs.front().compare("fail") == 0); + server.mLaunchReqs.pop(); + } + // 5: uninstall result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_UNINSTALL << 0; + server.getJavaInstaller().send(msg); + } +} + +/** + * Uninstallation fails + * 1: install operation + * 2: install result + * 3: uninstall operation + * 4: launch request check + * 5: uninstall result nok + */ +TEST(TckRunner, uninstallfail) +{ + // 1: install operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string url; + message >> oper >> url; + CHECK(rc == 0); + CHECK(oper == OPERATION_INSTALL); + CHECK(url.compare("unittest:\\\\tckrunner_tester") == 0); + } + // 2: install result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << 0 << 1 << "uid1"; + server.getJavaInstaller().send(msg); + } + // 3: uninstall operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string uid; + message >> oper >> uid; + CHECK(rc == 0); + CHECK(oper == OPERATION_UNINSTALL); + CHECK(uid.compare("uid1") == 0); + } + // 4: launch request check + { + CHECK(server.mLaunchReqs.size() == 1); + CHECK(server.mLaunchReqs.front().compare("uid1") == 0); + server.mLaunchReqs.pop(); + } + // 5: uninstall result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_UNINSTALL << -1; + server.getJavaInstaller().send(msg); + } +} + + +/** + * Retry count exceeded + * 1: install operation + * 2: install result nok + */ +TEST(TckRunner, retrycount) +{ + int rc = 0; + int i = 0; + + int MAX_RETRY_COUNT = 100; //needs to be bigger than in actual limit + do + { + // 1: install operation + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + if (rc == 0) + { + int oper; + string url; + message >> oper >> url; + CHECK(oper == OPERATION_INSTALL || oper == OPERATION_EXIT); + // 2: install result + msg.reset(); + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << -1 << 0; + server.getJavaInstaller().send(msg); + } + } + while (rc == 0 && i++ < MAX_RETRY_COUNT); + + CHECK(i < MAX_RETRY_COUNT); +} + + +/** + * Stability test + * 1: install operation + * 2: install result + * 3: uninstall operation + * 4: uninstall result + * 5: launch request check + */ +TEST(TckRunner, stabilitytest) +{ + int TCK_RUN_LIMIT = 1000; + int i = 0; + do + { + + // 1: install operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string url; + message >> oper >> url; + CHECK(rc == 0); + CHECK(oper == OPERATION_INSTALL); + CHECK(url.compare("unittest:\\\\tckrunner_tester") == 0); + } + // 2: install result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_INSTALL << 0 << 1 << "uid1"; + server.getJavaInstaller().send(msg); + } + // 3: uninstall operation + { + CommsMessage msg; + msg.setMessageId(MSG_ID_GET_NEXT_OPERATION); + + CommsMessage message; + int rc2 = server.getJavaInstaller().sendReceive(msg, message, TIMEOUT); + + int oper; + string uid; + message >> oper >> uid; + CHECK(rc2 == 0); + CHECK(oper == OPERATION_UNINSTALL); + CHECK(uid.compare("uid1") == 0); + } + + // 4: uninstall result + { + CommsMessage msg; + msg.setMessageId(MSG_ID_OPERATION_RESULT); + msg << OPERATION_UNINSTALL << 0; + server.getJavaInstaller().send(msg); + } + } + while (++i < TCK_RUN_LIMIT); + + // 5: launch request check + { + ELOG1(ETckRunner, "server.mLaunchReqs.size()=%d", server.mLaunchReqs.size()); + CHECK(server.mLaunchReqs.size() == TCK_RUN_LIMIT); + while (!server.mLaunchReqs.empty()) + { + server.mLaunchReqs.pop(); + } + } +} + + + +