diff options
author | Kurt Zenker <kz@openoffice.org> | 2006-02-03 16:13:59 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2006-02-03 16:13:59 +0000 |
commit | 746ad49cfae3690469dd5b1ff0368255a29c2238 (patch) | |
tree | 3d83b0b158effb0dc2b279e7244e59431a24700d /cli_ure/qa | |
parent | 27a59b1ffca8a993cb1be7bc17a0a18f71c5ca85 (diff) |
INTEGRATION: CWS jl30 (1.1.2); FILE ADDED
2006/01/27 15:20:34 jl 1.1.2.1: #61051# new versions offor assemblies and qa/versions test
Diffstat (limited to 'cli_ure/qa')
-rw-r--r-- | cli_ure/qa/versioning/runtests.cs | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/cli_ure/qa/versioning/runtests.cs b/cli_ure/qa/versioning/runtests.cs new file mode 100644 index 000000000000..21212fc9b087 --- /dev/null +++ b/cli_ure/qa/versioning/runtests.cs @@ -0,0 +1,95 @@ + +using System; +using System.Reflection; +using System.IO; + +// __________ implementation ____________________________________ + +/** Create and modify a spreadsheet document. + */ +namespace cliversion +{ +public class RunTests +{ + + public static int Main(String[] args) + { +// System.Diagnostics.Debugger.Launch(); + //get the path to the directory + string sLocation = Assembly.GetExecutingAssembly().Location; + sLocation = sLocation.Substring(0, sLocation.LastIndexOf('\\')); + // Create a reference to the current directory. + DirectoryInfo di = new DirectoryInfo(sLocation); + // Create an array representing the files in the current directory. + FileInfo[] fi = di.GetFiles(); + + //For every found dll try to figure out if it contains a + //cliversion.Version class + foreach (FileInfo fiTemp in fi) + { + if (fiTemp.Extension != ".dll") + continue; + + Assembly ass = null; + Object objVersion = null; + try + { + string sName = fiTemp.Name.Substring(0, fiTemp.Name.LastIndexOf(".dll")); + ass = Assembly.Load(sName); + } + catch (BadImageFormatException) + { + continue; + } + catch (Exception e) + { + Console.WriteLine("#Unexpected Exception"); + Console.WriteLine(e.Message); + return -1; + } + + //Assembly is loaded, instantiate cliversion.Version + try + { + //This runs the test + objVersion = ass.CreateInstance("cliversion.Version"); + if (objVersion == null) + continue; + Console.WriteLine("#Tested successfully " + fiTemp.Name); + //Starting the office the second time may fail without this pause + System.Threading.Thread.Sleep(2000); + } + catch (Exception e) + { + TargetInvocationException te = e as TargetInvocationException; + if (te != null) + { + FileNotFoundException fe = e.InnerException as FileNotFoundException; + if (fe != null) + { + Console.WriteLine(fiTemp.Name + " did not find " + fe.FileName + + ". Maybe the " + fe.FileName + " is not installed or does not match the referenced version." + + "Original message: " + fe.Message + "\n\n FusionLog: \n" + fe.FusionLog ); + return -1; + } + FileLoadException fl = e.InnerException as FileLoadException; + if (fl != null) + { + Console.WriteLine(fiTemp.Name + " could not load " + fl.FileName + + ". Maybe the version of " + fl.FileName + " does not match the referenced version. " + + "Original message: " + fl.Message + "\n\n FusionLog: \n" + fl.FusionLog ); + return -1; + } + } + Console.WriteLine("#Unexpected Exception"); + Console.WriteLine(e.Message); + return -1; + } + } + //For some unknown reason this program hangs sometimes when started from java. This is + //a workaround that makes the problem disappear. + System.Threading.Thread.Sleep(1000); + return 0; + } +} +} |