AutoTesterMultipublic class AutoTesterMulti extends AutoTesterBase implements AutoTesterInterfaceFetches a list of URLs pointing to test suites to install, then,
for each specified test suite in parallel, installs/updates the suite,
runs the first MIDlet in the suite in a loop specified number of iterations
or until the new version of the suite is not found, then removes the suite.
The MIDlet uses these application properties as arguments:
- arg-0: URL for html page with links to test suites. This html page
looks like this:
Suite1
Suite2
- arg-1: Used to override the default domain used when installing
an unsigned suite. The default is maximum to allow the runtime API tests
be performed automatically without tester interaction. The domain name
may be followed by a colon and a list of permissions that must be allowed
even if they are not listed in the MIDlet-Permissions attribute in the
application descriptor file. Instead of the list a keyword "all" can be
specified indicating that all permissions must be allowed, for example:
operator:all.
- arg-2: Integer number, specifying how many iterations to run
the suite. If argument is not given or less then zero, then suite
will be run until the new version of the suite is not found.
If arg-0 is not given then a form will be used to query the tester for
the arguments. |
Fields Summary |
---|
Vector | installListInfo about suites to install |
Constructors Summary |
---|
public AutoTesterMulti()Create and initialize a new auto tester MIDlet.
super();
if (url != null) {
startBackgroundTester();
} else if (restoreSession()) {
// continuation of a previous session
startBackgroundTester();
} else {
/**
* No URL has been provided, ask the user.
*
* commandAction will subsequently call startBackgroundTester.
*/
getUrl();
}
|
Methods Summary |
---|
private void | fetchInstallList(java.lang.String url)Go to given URL, fetch and parse html page with links
to tests suites. If there was error while fetching
or parsing, display an alert.
StreamConnection conn = null;
InputStreamReader in = null;
String errorMessage;
try {
conn = (StreamConnection)Connector.open(url, Connector.READ);
in = new InputStreamReader(conn.openInputStream());
try {
installList = SuiteDownloadInfo.getDownloadInfoFromPage(in);
if (installList.size() > 0) {
return;
}
errorMessage = Resource.getString(
ResourceConstants.AMS_DISC_APP_CHECK_URL_MSG);
} catch (IllegalArgumentException ex) {
errorMessage = Resource.getString(
ResourceConstants.AMS_DISC_APP_URL_FORMAT_MSG);
} catch (Exception ex) {
errorMessage = ex.getMessage();
}
} catch (Exception ex) {
errorMessage = Resource.getString(
ResourceConstants.AMS_DISC_APP_CONN_FAILED_MSG);
} finally {
try {
conn.close();
in.close();
} catch (Exception e) {
if (Logging.REPORT_LEVEL <= Logging.WARNING) {
Logging.report(Logging.WARNING, LogChannels.LC_AMS,
"close threw an Exception");
}
}
}
Alert a = new Alert(Resource.getString(ResourceConstants.ERROR),
errorMessage, null, AlertType.ERROR);
a.setTimeout(Alert.FOREVER);
display.setCurrent(a);
| public void | installAndPerformTests(MIDletSuiteStorage inp_storage, Installer inp_installer, java.lang.String inp_url)Get list of test suites, for each suite start a thread
that performs testing, wait until all threads have finished.
fetchInstallList(url);
int totalSuites = installList.size();
if (totalSuites > 0) {
Thread[] threads = new Thread[totalSuites];
// create threads
for (int i = 0; i < totalSuites; i++) {
SuiteDownloadInfo suite =
(SuiteDownloadInfo)installList.elementAt(i);
threads[i] = new Thread(new AutoTesterRunner(
suite.url, inp_storage, inp_installer));
}
// start threads
for (int i = 0; i < totalSuites; i++) {
threads[i].start();
}
// wait for threads to finish
for (int i = 0; i < totalSuites; i++) {
try {
threads[i].join();
} catch (Exception ex) {
// just ignore
}
}
notifyDestroyed();
return;
}
| public boolean | restoreSession()Restore the data from the last session, since this version of the
autotester does not have sessions it just returns false.
return false;
| public void | run()Run the installer.
installAndPerformTests(midletSuiteStorage, installer, url);
|
|