diff options
Diffstat (limited to 'qadevOOo/runner/base/basic_fat.java')
-rw-r--r-- | qadevOOo/runner/base/basic_fat.java | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/qadevOOo/runner/base/basic_fat.java b/qadevOOo/runner/base/basic_fat.java new file mode 100644 index 000000000000..37f3198286d0 --- /dev/null +++ b/qadevOOo/runner/base/basic_fat.java @@ -0,0 +1,214 @@ +/************************************************************************* + * + * $RCSfile: basic_fat.java,v $ + * + * $Revision: 1.1 $ + * + * last change:$Date: 2003-01-27 16:27:22 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +package base; + +import base.TestBase; +import lib.TestParameters; +import lib.TestCase; +import lib.TestEnvironment; +import lib.DynamicClassLoader; +import share.DescEntry; +import share.DescGetter; +import share.LogWriter; +import helper.APIDescGetter; +import helper.OfficeProvider; +import helper.ProcessHandler; +import stats.Summarizer; +import basicrunner.BasicTestCase; +import basicrunner.BasicIfcTest; + +import java.io.PrintWriter; + +import com.sun.star.lang.XMultiServiceFactory; + +/** + * The testbase for executing basic tests. + * @see lib.TestBase + */ +public class basic_fat implements TestBase{ + + /** + * Execute a test. + * @param param The test parameters. + * @param return True, if the test was executed. + */ + public boolean executeTest(TestParameters param) { + DescGetter dg = new APIDescGetter(); + String job = (String) param.get("TestJob"); + + //get Job-Descriptions + System.out.print("Getting Descriptions for Job: "+job+" from "); + DescEntry[] entries = dg.getDescriptionFor(job, + (String) param.get("DescriptionPath"),true); + + if (entries == null ) { + System.out.println("Couldn't get Description for Job"); + return false; + } + + String conStr = (String) param.get("ConnectionString"); + System.out.print("> Connecting the Office "); + System.out.println("With "+conStr); + + for (int l=0;l<entries.length;l++) { + if (entries[l].hasErrorMsg) { + System.out.println(entries[l].ErrorMsg); + continue; + } + + OfficeProvider office = new OfficeProvider(); + XMultiServiceFactory msf = (XMultiServiceFactory) + office.getManager(param); + if (msf == null) return false; + + param.put("ServiceFactory",msf); + + DescEntry entry = entries[l]; + + //get some helper classes + Summarizer sumIt = new Summarizer(); + DynamicClassLoader dcl = new DynamicClassLoader(); + + TestCase tCase = null; + + tCase = (TestCase) + new BasicTestCase(entry); + + if (tCase == null) { + sumIt.summarizeDown(entry,entry.ErrorMsg); + LogWriter sumObj = (LogWriter) dcl.getInstance( + (String)param.get("OutProducer")); + sumObj.initialize(entry,true); + sumObj.summary(entry); + return true; + } + + System.out.println("Creating: "+tCase.getObjectName()); + LogWriter log = (LogWriter) dcl.getInstance( + (String)param.get("LogWriter")); + log.initialize(entry,true); + entry.UserDefinedParams = param; + tCase.setLogWriter((PrintWriter) log); + tCase.initializeTestCase(param); + TestEnvironment tEnv = tCase.getTestEnvironment(param); + + System.out.println("created "+tCase.getObjectName()); + for (int j=0;j<entry.SubEntryCount;j++) { + if (!entry.SubEntries[j].isToTest) { + Summarizer.summarizeDown(entry.SubEntries[j],"not part of the job"); + continue; + } + System.out.println("running: "+entry.SubEntries[j].entryName); + LogWriter ifclog = (LogWriter) dcl.getInstance( + (String)param.get("LogWriter")); + ifclog.initialize(entry.SubEntries[j],true); + entry.SubEntries[j].UserDefinedParams = param; + entry.SubEntries[j].Logger = ifclog; + + if (tEnv.isDisposed()) { + tEnv = tCase.getTestEnvironment(param); + System.out.println("created "+tCase.getObjectName()); + } + BasicIfcTest ifc = null; + lib.TestResult res = null; + ifc = new BasicIfcTest(entry.SubEntries[j].longName); + res = ifc.run(entry.SubEntries[j],tEnv,param); + + sumIt.summarizeUp(entry.SubEntries[j]); + LogWriter sumIfc = (LogWriter) dcl.getInstance( + (String)param.get("OutProducer")); + + sumIfc.initialize(entry.SubEntries[j],true); + sumIfc.summary(entry.SubEntries[j]); + } + try { + tCase.cleanupTestCase(param); + } catch (Exception e) { + log.println("TestCase already gone"); + } + sumIt.summarizeUp(entry); + LogWriter sumObj = (LogWriter) dcl.getInstance( + (String)param.get("OutProducer")); + 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); + counter++; + } + } + System.out.println(counter +" of "+entries.length + " tests failed" ); + } + + helper.ProcessHandler ph = + (helper.ProcessHandler) param.get("AppProvider"); + + if (ph != null) ph.kill(); + return true; + } +} |