Update ooo320-m1
[ooovba.git] / testautomation / framework / tools / includes / javatools.inc
blob84dd8326423a4c09123f86129848f6c4d669f8f6
1 'encoding UTF-8  Do not remove or change this line!
2 '**************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '* 
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: javatools.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 12:19:06 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/******************************************************************************
34 '*  owner : joerg.Skottke@Sun.Com
36 '*  short description : Tools to ease working with files including Java
38 '\******************************************************************************
40 function hBatchLoadJavaFiles( aFileList() , cIdent as string )
42     '///<h3>Load and close a list of files with recovery on error</h3>
43     '///<u>Input</u>: A list containing files to load<br>
44     '///<u>Returns</u>: No returnvalue
45     '///<ul>
46     
47     const CFN = "hBatchLoadJavaFiles::"
48     
49     dim iSourceFiles as integer
50         iSourceFiles = listcount( aFileList() )
51         
52     dim iCurrentFile as integer
53     dim cCurrentFile as string 
54     dim brc as boolean 
55     
56     '///+<li>Loop through the list, starting at index 2</li>
57     for iCurrentFile = 2 to iSourceFiles
58     
59         cCurrentFile = aFileList( iCurrentFile )
60     
61         printlog( "" )
62         printlog( "Processing file: "  & cCurrentFile )
63     
64         '///+<li>Load a file, verify</li>
65         brc = hFileOpen( aFileList( iCurrentFile ) )
66         if ( not brc ) then
67             warnlog( "Error while loading: " & cCurrentFile ) 
68         endif
69         
70         '///+<li>close the file, verify</li>
71         brc = hDestroyDocument()
72         if ( not brc ) then
73             warnlog( "Error while closing: " & cCurrentFile ) 
74         endif
75         
76         '///+<li>There should be one document left: The first doc</li>
77         if ( getDocumentCount() = 1 ) then
78             brc = hIdentifyWriterDoc( cIdent , false )
79             if ( not brc ) then
80                  warnlog( "Document <" & cIdent & "> is missing, restarting" )
81                  call ExitRestartTheOffice()
82             endif
83             
84         elseif ( getDocumentCount() <> 1 ) then
85             warnlog( "The number of open documents is incorrect, restarting" )
86             call ExitRestartTheOffice()
87             
88         endif
89         
90         '///+<li>Check for hs_err_pidXXXX.log files (Java Exceptions)</li>
91         brc = hFindCopyRemoveJavaLogs( aFileList( 1 ) )
92         if ( not brc ) then
93             warnlog( "Java Exceptions were created." )
94             printlog( "Find the files in your local OOo-work directory." )
95         endif
96         
97     next iCurrentFile
98     '///</ul>
99     
100 end function
102 '*******************************************************************************
104 function hFindCopyRemoveJavaLogs( cSourcePath as string ) as boolean
106     '///<h3>Search/move hs_err_pidXXXX.log files within a directory recursively</h3>
107     '///<u>Input</u>: Start directory<br>
108     '///<u>Returns</u>: TRUE if no errors were found
109     '///<ul>
110     
111     ' Reason 1: The files are createn in the CVS tree and must be removed
112     ' Reason 2: The files have to be analyzed so the bugs can be fixed
113     ' Reason 3: The files must be moved away after each error so they can be
114     '           assigned to the correct documents
115     
116     const CFN = "hFindCopyRemoveJavaLogs::"
118     dim aSourceFiles( 1000 ) as string
119     dim iSourceFiles as integer
120     dim aTargetPath as string
121         aTargetPath = hGetWorkPath()
122         
123     dim iCurrentFile as integer
124     dim brc as boolean
125         brc = true
126         
127     dim iSPLen as integer ' length of the source-path string + "/" + next letter
128         iSPLen = len( cSourcePath ) + 2
130     '///+<li>Look for leftover hs_err_pidXXXX.log files</li>
131     iSourceFiles = GetAllFileList( cSourcePath, "hs_err*.log", aSourceFiles() )    
132     if ( iSourceFiles > 1 ) then
133     
134         '///+<li>Print the list to the log</li>
135         hListPrint( aSourceFiles(), "New hs_err_pidXXXX.log files exist" )
136         brc = false
137         
138         '///+<li>Copy the hs_err...log files to the local work directory</li>
139         for iCurrentFile = 2 to listcount( aSourceFiles() )
140         
141             ' Create the name of the file we want to copy the hs_err...log to 
142             aTargetPath = aTargetPath & mid( aSourceFiles( iCurrentFile ) , iSPLen )
143             FileCopy( aSourceFiles( iCurrentFile ) , aTargetPath )
144             
145             '///+<li>Delete the original log file(s)</li>
146             hDeleteFile( aSourceFiles( iCurrentFile ) ) 
147             
148         next iCurrentFile
149         
150     else
151         Printlog( CFN & "No hs_err_pidXXXX.log file(s) found. Good."        
152     endif
153     '///</ul>
154     
155     hFindCopyRemoveJavaLogs() = brc 
156     
157 end function