wlanutilities/wlanwizard/tsrc/ut/main.cpp
changeset 62 b47b808de481
parent 56 de27cc8389dd
--- a/wlanutilities/wlanwizard/tsrc/ut/main.cpp	Fri Sep 17 08:35:49 2010 +0300
+++ b/wlanutilities/wlanwizard/tsrc/ut/main.cpp	Mon Oct 04 02:07:04 2010 +0300
@@ -28,53 +28,101 @@
 #include "testwlanwizardmanual.h"
 #include "testwlanwizardwps.h"
 
+static bool match(int argc, char *argv[], const QString &tc);
+
 // ======== LOCAL FUNCTIONS ========
 int main(int argc, char *argv[])
 {
-    qDebug("TestWlanWizard main start");
     HbApplication app(argc, argv);
     int res = 0;
     char *pass[3];
     pass[0] = argv[0];
     pass[1] = "-o";
     
-    // log folder: \epoc32\winscw\c\data
+    // log folder: 
+    // - emulator: \epoc32\winscw\c\data
+    // - device:   c:\data
     
-    app.setApplicationName("TestWlanWizardUtilities");
-    pass[2] = "c:\\data\\TestWlanWizardUtilities.txt";
-    TestWlanWizard *tcUtilities = new TestWlanWizard();
-    res |= QTest::qExec(tcUtilities, 3, pass);
-    delete tcUtilities;
-    tcUtilities = NULL;
-
-    app.setApplicationName("TestWlanWizardConnect");
-    pass[2] = "c:\\data\\TestWlanWizardConnect.txt";
-    TestWlanWizardConnect *tcConnect = new TestWlanWizardConnect();
-    res |= QTest::qExec(tcConnect, 3, pass);
-    delete tcConnect;
-    tcConnect = NULL;
+    // By default all test cases are executed.
+    // Use following to limit the testcases as your needs:
+    // t_wlanwizard -t <testcases>
+    //     testcases    utils connect manual eap wps
+    // e.g. t_wlanwizard -t connect wps 
+    // runs only "connect" and "wps" test cases
+    
+    if (match(argc, argv, "utils")) {
+        app.setApplicationName("TestWlanWizardUtilities");
+        pass[2] = "c:\\data\\TestWlanWizardUtilities.txt";
+        TestWlanWizard *tcUtilities = new TestWlanWizard();
+        res |= QTest::qExec(tcUtilities, 3, pass);
+        delete tcUtilities;
+        tcUtilities = NULL;
+    }
     
-    app.setApplicationName("TestWlanWizardManual");
-    pass[2] = "c:\\data\\TestWlanWizardManual.txt";
-    TestWlanWizardManual *tcManual = new TestWlanWizardManual();
-    res |= QTest::qExec(tcManual, 3, pass);
-    delete tcManual;
-    tcManual = NULL;
+    if (match(argc, argv, "connect")) {
+        app.setApplicationName("TestWlanWizardConnect");
+        pass[2] = "c:\\data\\TestWlanWizardConnect.txt";
+        TestWlanWizardConnect *tcConnect = new TestWlanWizardConnect();
+        res |= QTest::qExec(tcConnect, 3, pass);
+        delete tcConnect;
+        tcConnect = NULL;
+    }
+    
+    if (match(argc, argv, "manual")) {
+        app.setApplicationName("TestWlanWizardManual");
+        pass[2] = "c:\\data\\TestWlanWizardManual.txt";
+        TestWlanWizardManual *tcManual = new TestWlanWizardManual();
+        res |= QTest::qExec(tcManual, 3, pass);
+        delete tcManual;
+        tcManual = NULL;
+    }
+    
+    if (match(argc, argv, "eap")) {
+        app.setApplicationName("TestWlanWizardEap");
+        pass[2] = "c:\\data\\TestWlanWizardEap.txt";
+        TestWlanWizardEap *tcEap = new TestWlanWizardEap();
+        res |= QTest::qExec(tcEap, 3, pass);
+        delete tcEap;
+        tcEap = NULL;
+    }
 
-    app.setApplicationName("TestWlanWizardEap");
-    pass[2] = "c:\\data\\TestWlanWizardEap.txt";
-    TestWlanWizardEap *tcEap = new TestWlanWizardEap();
-    res |= QTest::qExec(tcEap, 3, pass);
-    delete tcEap;
-    tcEap = NULL;
-
-    app.setApplicationName("TestWlanWizardWps");
-    pass[2] = "c:\\data\\TestWlanWizardWps.txt";
-    TestWlanWizardWps *tcWps = new TestWlanWizardWps();
-    res |= QTest::qExec(tcWps, 3, pass);
-    delete tcWps;
-    tcWps = NULL;
+    if (match(argc, argv, "wps")) {
+        app.setApplicationName("TestWlanWizardWps");
+        pass[2] = "c:\\data\\TestWlanWizardWps.txt";
+        TestWlanWizardWps *tcWps = new TestWlanWizardWps();
+        res |= QTest::qExec(tcWps, 3, pass);
+        delete tcWps;
+        tcWps = NULL;
+    }
     
-    qDebug("TestWlanWizard main exit");
     return res;
 }
+
+bool match(int argc, char *argv[], const QString &tc)
+{
+    bool testArgument = false;
+    bool testCase = false;
+    bool ret = true;
+    
+    int i = argc;
+    while( --i > 0) {
+        if (QString(argv[i]) == QString("-t")) {
+            testArgument = true;
+            break;
+        }
+    }
+    
+    i = argc;
+    while( --i > 0) {
+        if (QString(argv[i]) == tc) {
+            testCase = true;
+            break;
+        }
+    }
+    
+    if (testArgument && !testCase) {
+        ret = false;
+    }
+    
+    return ret;
+}