--- /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 <unistd.h>
+#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();
+ }
+ }
+}
+
+
+
+