diff options
author | Kurt Zenker <kz@openoffice.org> | 2003-11-18 15:12:39 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2003-11-18 15:12:39 +0000 |
commit | d7ab0c146359bf6e54b4eea88cd724d82f34f490 (patch) | |
tree | 4d1bbfe9fefeeb842fee2ed2fcdfd00c9e8a5c89 /qadevOOo/runner/base | |
parent | 134f3be0e38b082b249e9b0b664a2d6696f219f6 (diff) |
INTEGRATION: CWS qadev13 (1.5.2); FILE MERGED
2003/11/17 09:47:07 sg 1.5.2.2: #113007#CHG: fixed bug in database output
2003/10/22 15:45:05 sw 1.5.2.1: #112770#
Diffstat (limited to 'qadevOOo/runner/base')
-rw-r--r-- | qadevOOo/runner/base/java_fat.java | 373 |
1 files changed, 248 insertions, 125 deletions
diff --git a/qadevOOo/runner/base/java_fat.java b/qadevOOo/runner/base/java_fat.java index 613f875582f1..9432f023e444 100644 --- a/qadevOOo/runner/base/java_fat.java +++ b/qadevOOo/runner/base/java_fat.java @@ -2,9 +2,9 @@ * * $RCSfile: java_fat.java,v $ * - * $Revision: 1.5 $ + * $Revision: 1.6 $ * - * last change:$Date: 2003-10-06 12:37:22 $ + * last change:$Date: 2003-11-18 16:12:39 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -58,47 +58,51 @@ * * ************************************************************************/ - package base; - -import java.io.PrintWriter; - -import lib.TestParameters; -import lib.TestCase; -import lib.Status; -import lib.MultiMethodTest; -import lib.TestEnvironment; -import stats.OutProducerFactory; -import util.DynamicClassLoader; - -import com.sun.star.lang.XMultiServiceFactory; -import com.sun.star.lang.XMultiComponentFactory; -import com.sun.star.connection.XConnector; -import com.sun.star.connection.XConnection; +import base.TestBase; import com.sun.star.bridge.XUnoUrlResolver; +import com.sun.star.connection.XConnection; +import com.sun.star.connection.XConnector; +import com.sun.star.lang.XMultiComponentFactory; +import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XComponentContext; import com.sun.star.uno.XInterface; import com.sun.star.uno.XNamingService; -import com.sun.star.uno.XComponentContext; -import share.DescEntry; -import share.DescGetter; import helper.APIDescGetter; -import helper.OfficeProvider; import helper.AppProvider; -import base.TestBase; +import helper.OfficeProvider; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.PrintWriter; + +import java.util.Vector; +import lib.MultiMethodTest; +import lib.Status; +import lib.TestCase; +import lib.TestEnvironment; +import lib.TestParameters; + +import share.DescEntry; +import share.DescGetter; import share.LogWriter; + +import stats.OutProducerFactory; import stats.Summarizer; +import util.DynamicClassLoader; + + /** * * this class handles tests written in java and running on a fat Office */ public class java_fat implements TestBase { - public static boolean debug = false; public boolean executeTest(lib.TestParameters param) { @@ -106,45 +110,58 @@ public class java_fat implements TestBase { DescGetter dg = new APIDescGetter(); String job = (String) param.get("TestJob"); + String ExclusionFile = (String) param.get("ExclusionList"); + Vector exclusions = null; boolean retValue = true; debug = param.getBool("DebugIsActive"); + if (ExclusionFile != null) { + exclusions = getExclusionList(ExclusionFile,debug); + } //get Job-Descriptions - System.out.print("Getting Descriptions for Job: "+job+" from "); + System.out.print("Getting Descriptions for Job: " + job + " from "); + DescEntry[] entries = dg.getDescriptionFor(job, - (String) param.get("DescriptionPath"),debug); + (String) param.get( + "DescriptionPath"), + debug); - if (entries == null ) { + if (entries == null) { System.out.println("Couldn't get Description for Job"); + return false; } - String officeProviderName = (String)param.get("OfficeProvider"); - AppProvider office = (AppProvider)dcl.getInstance(officeProviderName); - if ( office == null ) { + String officeProviderName = (String) param.get("OfficeProvider"); + AppProvider office = (AppProvider) dcl.getInstance(officeProviderName); + + if (office == null) { System.out.println("ERROR: Wrong parameter 'OfficeProvider', " + " it cannot be instantiated."); System.exit(-1); } - for (int l=0;l<entries.length;l++) { - - if (entries[l] == null ) { + for (int l = 0; l < entries.length; l++) { + if (entries[l] == null) { continue; } if (entries[l].hasErrorMsg) { System.out.println(entries[l].ErrorMsg); + continue; } - XMultiServiceFactory msf = (XMultiServiceFactory) - office.getManager(param); + XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager( + param); + if (msf == null) { retValue = false; + continue; } - param.put("ServiceFactory",msf); + + param.put("ServiceFactory", msf); DescEntry entry = entries[l]; @@ -154,230 +171,336 @@ public class java_fat implements TestBase { TestCase tCase = null; try { - tCase = (TestCase) - dcl.getInstance("mod._"+entry.entryName); + tCase = (TestCase) dcl.getInstance("mod._" + + entry.entryName); } catch (java.lang.IllegalArgumentException ie) { - entry.ErrorMsg=ie.getMessage(); - entry.hasErrorMsg=true; + entry.ErrorMsg = ie.getMessage(); + entry.hasErrorMsg = true; } catch (java.lang.NoClassDefFoundError ie) { - entry.ErrorMsg=ie.getMessage(); - entry.hasErrorMsg=true; + entry.ErrorMsg = ie.getMessage(); + entry.hasErrorMsg = true; } if (tCase == null) { - sumIt.summarizeDown(entry,entry.ErrorMsg); - LogWriter sumObj = (LogWriter) dcl.getInstance( - (String)param.get("OutProducer")); + sumIt.summarizeDown(entry, entry.ErrorMsg); + + LogWriter sumObj = OutProducerFactory.createOutProducer(param); entry.UserDefinedParams = param; - sumObj.initialize(entry,true); + sumObj.initialize(entry, true); sumObj.summary(entry); + continue; } - System.out.println("Creating: "+tCase.getObjectName()); + System.out.println("Creating: " + tCase.getObjectName()); + LogWriter log = (LogWriter) dcl.getInstance( - (String)param.get("LogWriter")); - log.initialize(entry,true); + (String) param.get("LogWriter")); + log.initialize(entry, true); entry.UserDefinedParams = param; + TestEnvironment tEnv = null; + try { tCase.setLogWriter((PrintWriter) log); tCase.initializeTestCase(param); tEnv = tCase.getTestEnvironment(param); } catch (Exception e) { - System.out.println("Exception while creating "+tCase.getObjectName()); - System.out.println("Message "+e.getMessage()); + System.out.println("Exception while creating " + + tCase.getObjectName()); + System.out.println("Message " + e.getMessage()); tEnv = null; } catch (java.lang.UnsatisfiedLinkError e) { - System.out.println("Exception while creating "+tCase.getObjectName()); - System.out.println("Message "+e.getMessage()); + System.out.println("Exception while creating " + + tCase.getObjectName()); + System.out.println("Message " + e.getMessage()); tEnv = null; } catch (java.lang.NoClassDefFoundError e) { - System.out.println("Exception while creating "+tCase.getObjectName()); - System.out.println("Message "+e.getMessage()); + System.out.println("Exception while creating " + + tCase.getObjectName()); + System.out.println("Message " + e.getMessage()); tEnv = null; } if (tEnv == null) { - sumIt.summarizeDown(entry,"Couldn't create "+tCase.getObjectName()); - LogWriter sumObj = (LogWriter) dcl.getInstance( - (String)param.get("OutProducer")); + sumIt.summarizeDown(entry, + "Couldn't create " + + tCase.getObjectName()); + + LogWriter sumObj = OutProducerFactory.createOutProducer(param); entry.UserDefinedParams = param; - sumObj.initialize(entry,true); + sumObj.initialize(entry, true); sumObj.summary(entry); + continue; } - System.out.println(tCase.getObjectName()+" recreated "); - for (int j=0;j<entry.SubEntryCount;j++) { + + System.out.println(tCase.getObjectName() + " recreated "); + + for (int j = 0; j < entry.SubEntryCount; j++) { if (!entry.SubEntries[j].isToTest) { - Summarizer.summarizeDown(entry.SubEntries[j],"not part of the job"); + Summarizer.summarizeDown(entry.SubEntries[j], + "not part of the job"); + continue; } - System.out.println("running: "+entry.SubEntries[j].entryName); + + if (( exclusions != null ) && (exclusions.contains(entry.SubEntries[j].longName))) { + Summarizer.summarizeDown(entry.SubEntries[j], + "known issue"); + + continue; + } + + System.out.println("running: " + + entry.SubEntries[j].entryName); + LogWriter ifclog = (LogWriter) dcl.getInstance( - (String)param.get("LogWriter")); + (String) param.get("LogWriter")); - ifclog.initialize(entry.SubEntries[j],true); + ifclog.initialize(entry.SubEntries[j], true); entry.SubEntries[j].UserDefinedParams = param; entry.SubEntries[j].Logger = ifclog; - if (tEnv == null || tEnv.isDisposed()) { - helper.ProcessHandler ph = - (helper.ProcessHandler) param.get("AppProvider"); + if ((tEnv == null) || tEnv.isDisposed()) { + helper.ProcessHandler ph = (helper.ProcessHandler) param.get( + "AppProvider"); + if (ph != null) { office.closeExistingOffice(param, true); -// ph.kill(); shortWait(5000); } - tEnv = getEnv(entry,param); + + tEnv = getEnv(entry, param); } MultiMethodTest ifc = null; lib.TestResult res = null; + try { ifc = (MultiMethodTest) dcl.getInstance( - entry.SubEntries[j].entryName); - res = ifc.run(entry.SubEntries[j],tEnv,param); + entry.SubEntries[j].entryName); + res = ifc.run(entry.SubEntries[j], tEnv, param); } catch (IllegalArgumentException iae) { - System.out.println("Couldn't load class "+entry.SubEntries[j].entryName); - System.out.println("**** "+iae.getMessage()+" ****"); - Summarizer.summarizeDown(entry.SubEntries[j],iae.getMessage()); + System.out.println("Couldn't load class " + + entry.SubEntries[j].entryName); + System.out.println("**** " + iae.getMessage() + " ****"); + Summarizer.summarizeDown(entry.SubEntries[j], + iae.getMessage()); } catch (java.lang.NoClassDefFoundError iae) { - System.out.println("Couldn't load class "+entry.SubEntries[j].entryName); - System.out.println("**** "+iae.getMessage()+" ****"); - Summarizer.summarizeDown(entry.SubEntries[j],iae.getMessage()); + System.out.println("Couldn't load class " + + entry.SubEntries[j].entryName); + System.out.println("**** " + iae.getMessage() + " ****"); + Summarizer.summarizeDown(entry.SubEntries[j], + iae.getMessage()); } catch (java.lang.RuntimeException e) { - helper.ProcessHandler ph = - (helper.ProcessHandler) param.get("AppProvider"); + helper.ProcessHandler ph = (helper.ProcessHandler) param.get( + "AppProvider"); + if (ph != null) { office.closeExistingOffice(param, true); - -// ph.kill(); shortWait(5000); } - tEnv = getEnv(entry,param); + + tEnv = getEnv(entry, param); ifc = (MultiMethodTest) dcl.getInstance( - entry.SubEntries[j].entryName); + entry.SubEntries[j].entryName); + if ((tEnv != null) && (ifc != null)) { - res = ifc.run(entry.SubEntries[j],tEnv,param); - } else res = null; + res = ifc.run(entry.SubEntries[j], tEnv, param); + } else { + res = null; + } } + if (res != null) { - for (int k=0;k<entry.SubEntries[j].SubEntryCount;k++) { - if (res.hasMethod(entry.SubEntries[j].SubEntries[k].entryName)) { - entry.SubEntries[j].SubEntries[k].State= - res.getStatusFor(entry.SubEntries[j].SubEntries[k].entryName).toString(); + for (int k = 0; k < entry.SubEntries[j].SubEntryCount; k++) { + if (res.hasMethod( + entry.SubEntries[j].SubEntries[k].entryName)) { + entry.SubEntries[j].SubEntries[k].State = res.getStatusFor( + entry.SubEntries[j].SubEntries[k].entryName) + .toString(); } } } + sumIt.summarizeUp(entry.SubEntries[j]); LogWriter sumIfc = (LogWriter) dcl.getInstance( - (String)param.get("OutProducer")); + (String) param.get("OutProducer")); entry.SubEntries[j].UserDefinedParams = param; - sumIfc.initialize(entry.SubEntries[j],true); + sumIfc.initialize(entry.SubEntries[j], true); sumIfc.summary(entry.SubEntries[j]); } + try { tCase.cleanupTestCase(param); } catch (Exception e) { System.out.println("couldn't cleanup"); - } catch (java.lang.NoClassDefFoundError e){ + } catch (java.lang.NoClassDefFoundError e) { System.out.println("couldn't cleanup"); } + sumIt.summarizeUp(entry); + LogWriter sumObj = OutProducerFactory.createOutProducer(param); - sumObj.initialize(entry,true); + sumObj.initialize(entry, true); sumObj.summary(entry); } + if (entries.length > 1) { System.out.println(); + int counter = 0; - System.out.println("Failures that appeared during scenario execution:"); - for (int i=0;i<entries.length;i++) { - if (! entries[i].State.endsWith("OK")) { - System.out.println("\t "+entries[i].longName); + System.out.println( + "Failures that appeared during scenario execution:"); + + for (int i = 0; i < entries.length; i++) { + if (!entries[i].State.endsWith("OK")) { + System.out.println("\t " + entries[i].longName); counter++; } } - System.out.println(counter +" of "+entries.length + " tests failed" ); + + System.out.println(counter + " of " + entries.length + + " tests failed"); } - helper.ProcessHandler ph = - (helper.ProcessHandler) param.get("AppProvider"); + + helper.ProcessHandler ph = (helper.ProcessHandler) param.get( + "AppProvider"); + if (ph != null) { office.closeExistingOffice(param, true); -// ph.kill(); shortWait(5000); } + return retValue; } protected TestEnvironment getEnv(DescEntry entry, TestParameters param) { DynamicClassLoader dcl = new DynamicClassLoader(); - String officeProviderName = (String)param.get("OfficeProvider"); - AppProvider office = (AppProvider)dcl.getInstance(officeProviderName); - if ( office == null ) { + String officeProviderName = (String) param.get("OfficeProvider"); + AppProvider office = (AppProvider) dcl.getInstance(officeProviderName); + + if (office == null) { System.out.println("ERROR: Wrong parameter 'OfficeProvider', " + " it cannot be instantiated."); System.exit(-1); } - XMultiServiceFactory msf = (XMultiServiceFactory) - office.getManager(param); - if (msf == null) return null; - param.put("ServiceFactory",msf); + + XMultiServiceFactory msf = (XMultiServiceFactory) office.getManager( + param); + + if (msf == null) { + return null; + } + + param.put("ServiceFactory", msf); TestCase tCase = null; try { - tCase = (TestCase) - dcl.getInstance("mod._"+entry.entryName); + tCase = (TestCase) dcl.getInstance("mod._" + entry.entryName); } catch (java.lang.IllegalArgumentException ie) { - entry.ErrorMsg=ie.getMessage(); - entry.hasErrorMsg=true; + entry.ErrorMsg = ie.getMessage(); + entry.hasErrorMsg = true; } catch (java.lang.NoClassDefFoundError ie) { - entry.ErrorMsg=ie.getMessage(); - entry.hasErrorMsg=true; + entry.ErrorMsg = ie.getMessage(); + entry.hasErrorMsg = true; } - System.out.println("Creating: "+tCase.getObjectName()); + System.out.println("Creating: " + tCase.getObjectName()); + LogWriter log = (LogWriter) dcl.getInstance( - (String)param.get("LogWriter")); - log.initialize(entry,true); + (String) param.get("LogWriter")); + log.initialize(entry, true); entry.UserDefinedParams = param; tCase.setLogWriter((PrintWriter) log); + TestEnvironment tEnv = null; + try { tCase.initializeTestCase(param); tEnv = tCase.getTestEnvironment(param); } catch (com.sun.star.lang.DisposedException de) { System.out.println("Office disposed"); - helper.ProcessHandler ph = - (helper.ProcessHandler) param.get("AppProvider"); + + helper.ProcessHandler ph = (helper.ProcessHandler) param.get( + "AppProvider"); + if (ph != null) { office.closeExistingOffice(param, true); -// ph.kill(); shortWait(5000); } } catch (lib.StatusException e) { System.out.println(e.getMessage()); - helper.ProcessHandler ph = - (helper.ProcessHandler) param.get("AppProvider"); + + helper.ProcessHandler ph = (helper.ProcessHandler) param.get( + "AppProvider"); + if (ph != null) { office.closeExistingOffice(param, true); -// ph.kill(); shortWait(5000); } + entry.ErrorMsg = e.getMessage(); entry.hasErrorMsg = true; } + return tEnv; } protected void shortWait(int millis) { try { Thread.sleep(millis); - } catch (java.lang.InterruptedException ie) {} + } catch (java.lang.InterruptedException ie) { + } + } + + protected Vector getExclusionList(String url, boolean debug) { + Vector entryList = new Vector(); + String line = "#"; + BufferedReader exclusion = null; + + try { + exclusion = new BufferedReader(new FileReader(url)); + } catch (java.io.FileNotFoundException fnfe) { + if (debug) { + System.out.println("Couldn't find file " + url); + } + + return entryList; + } + + while (line != null) { + try { + if (!line.startsWith("#")) { + entryList.add(line); + } + + line = exclusion.readLine(); + } catch (java.io.IOException ioe) { + if (debug) { + System.out.println( + "Exception while reading exclusion list"); + } + + return entryList; + } + } + + try { + exclusion.close(); + } catch (java.io.IOException ioe) { + if (debug) { + System.out.println("Couldn't close file " + url); + } + + return entryList; + } + + return entryList; } } |