xref: /trunk/main/jvmaccess/workbench/javainfo/javainfotest.cxx (revision cf6516809c57e1bb0a940545cca99cdad54d4ce2)
1*dff3f235SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*dff3f235SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*dff3f235SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*dff3f235SAndrew Rist  * distributed with this work for additional information
6*dff3f235SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*dff3f235SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*dff3f235SAndrew Rist  * "License"); you may not use this file except in compliance
9*dff3f235SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*dff3f235SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*dff3f235SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*dff3f235SAndrew Rist  * software distributed under the License is distributed on an
15*dff3f235SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*dff3f235SAndrew Rist  * KIND, either express or implied.  See the License for the
17*dff3f235SAndrew Rist  * specific language governing permissions and limitations
18*dff3f235SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*dff3f235SAndrew Rist  *************************************************************/
21*dff3f235SAndrew Rist 
22*dff3f235SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #include "jvmaccess/javainfo.hxx"
25cdf0e10cSrcweir 
26cdf0e10cSrcweir #include "osl/file.hxx"
27cdf0e10cSrcweir #include "osl/thread.h"
28cdf0e10cSrcweir #include "rtl/ustring.hxx"
29cdf0e10cSrcweir 
30cdf0e10cSrcweir #include <stdio.h>
31cdf0e10cSrcweir #include <vector>
32cdf0e10cSrcweir 
33cdf0e10cSrcweir using namespace rtl;
34cdf0e10cSrcweir using namespace std;
35cdf0e10cSrcweir using namespace osl;
36cdf0e10cSrcweir 
37cdf0e10cSrcweir using jvmaccess::JavaInfo;
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #define OUSTR( x )  ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( x ))
40cdf0e10cSrcweir 
41cdf0e10cSrcweir #define JAVA_VERSION "1.4.1_01"
42cdf0e10cSrcweir 
43cdf0e10cSrcweir bool test_constructor1();
44cdf0e10cSrcweir bool test_constructor2();
45cdf0e10cSrcweir bool test_createAllInfo();
46cdf0e10cSrcweir bool test_compareVersions();
47cdf0e10cSrcweir bool test_createAllInfo();
48cdf0e10cSrcweir bool test_createBestInfo();
49cdf0e10cSrcweir bool test_isEqual();
50cdf0e10cSrcweir bool test_getJarFilePath();
51cdf0e10cSrcweir 
52cdf0e10cSrcweir void printInfo(const JavaInfo& info);
53cdf0e10cSrcweir 
main(int argc,char * argv[],char * envp[])54cdf0e10cSrcweir int main( int argc, char * argv[], char * envp[])
55cdf0e10cSrcweir {
56cdf0e10cSrcweir     const int arSize= 20;
57cdf0e10cSrcweir     bool arRet[arSize];
58cdf0e10cSrcweir     int i =0;
59cdf0e10cSrcweir     arRet[i++]= test_createAllInfo();
60cdf0e10cSrcweir     arRet[i++]= test_constructor1();
61cdf0e10cSrcweir     arRet[i++]= test_constructor2();
62cdf0e10cSrcweir 
63cdf0e10cSrcweir     arRet[i++]= test_compareVersions();
64cdf0e10cSrcweir     arRet[i++]= test_createBestInfo();
65cdf0e10cSrcweir     arRet[i++]= test_isEqual();
66cdf0e10cSrcweir     arRet[i++]= test_getJarFilePath();
67cdf0e10cSrcweir     bool error= true;
68cdf0e10cSrcweir     for(int j= 0; j < i; j++)
69cdf0e10cSrcweir         error &= arRet[j];
70cdf0e10cSrcweir 
71cdf0e10cSrcweir     if( error == false)
72cdf0e10cSrcweir         printf("Errors occurred\n");
73cdf0e10cSrcweir     return 0;
74cdf0e10cSrcweir }
75cdf0e10cSrcweir 
test_constructor1()76cdf0e10cSrcweir bool test_constructor1()
77cdf0e10cSrcweir {
78cdf0e10cSrcweir     printf("\ntest JavaInfo::JavaInfo(const OUString& usJavaHome\n" \
79cdf0e10cSrcweir            "!Check output for correctness\n\n");
80cdf0e10cSrcweir     try{
81cdf0e10cSrcweir     JavaInfo info(OUSTR("file:///d:/java/j2sdk1.4.1_01"));
82cdf0e10cSrcweir //    JavaInfo info(OUSTR("file:///local/jl/java/j2sdk1.4.0"));
83cdf0e10cSrcweir //    JavaInfo info(OUSTR("file:///usr/local2/jl/java/j2sdk1.4.0"));
84cdf0e10cSrcweir 
85cdf0e10cSrcweir     printInfo(info);
86cdf0e10cSrcweir     }catch( JavaInfo::InitException& )
87cdf0e10cSrcweir     {
88cdf0e10cSrcweir         return false;
89cdf0e10cSrcweir     }
90cdf0e10cSrcweir 
91cdf0e10cSrcweir     return true;
92cdf0e10cSrcweir }
93cdf0e10cSrcweir 
test_constructor2()94cdf0e10cSrcweir bool test_constructor2()
95cdf0e10cSrcweir {
96cdf0e10cSrcweir     printf("\ntest JavaInfo::JavaInfo(const OUString& usVersion,  int requirements)\n" \
97cdf0e10cSrcweir            "!Check output for correctness\n\n");
98cdf0e10cSrcweir     bool arRet[20];
99cdf0e10cSrcweir     int i= 0;
100cdf0e10cSrcweir 
101cdf0e10cSrcweir     JavaInfo a(OUSTR("file:///d:/java/j2sdk1.4.1_01"));
102cdf0e10cSrcweir //    -----------------------------------------------------
103cdf0e10cSrcweir //    JavaInfo a(OUSTR("file:///usr/local2/jl/java/j2sdk1.4.0"));
104cdf0e10cSrcweir //------------------------------------------------------------
105cdf0e10cSrcweir //    JavaInfo a(OUSTR("file:///local/jl/java/j2sdk1.4.0"));
106cdf0e10cSrcweir     try{
107cdf0e10cSrcweir         JavaInfo info= JavaInfo(OUString(), 0);
108cdf0e10cSrcweir         arRet[i++]= true;
109cdf0e10cSrcweir     }
110cdf0e10cSrcweir     catch( ...) {
111cdf0e10cSrcweir         arRet[i++]= false;
112cdf0e10cSrcweir     }
113cdf0e10cSrcweir     try{
114cdf0e10cSrcweir         // make sure it supports accessibility
115cdf0e10cSrcweir         JavaInfo info= JavaInfo(OUString(), JavaInfo::Accessibility);
116cdf0e10cSrcweir         arRet[i++]= info.supportsAccessibility();
117cdf0e10cSrcweir     }
118cdf0e10cSrcweir     catch( ...) {
119cdf0e10cSrcweir         arRet[i++]= false;
120cdf0e10cSrcweir     }
121cdf0e10cSrcweir 
122cdf0e10cSrcweir     try{
123cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::EqualVersion);
124cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) == 0;
125cdf0e10cSrcweir     }
126cdf0e10cSrcweir     catch( ...) {
127cdf0e10cSrcweir         arRet[i++]= false;
128cdf0e10cSrcweir     }
129cdf0e10cSrcweir     try{
130cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), 0);
131cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) == 0;
132cdf0e10cSrcweir     }
133cdf0e10cSrcweir     catch( ...) {
134cdf0e10cSrcweir         arRet[i++]= false;
135cdf0e10cSrcweir     }
136cdf0e10cSrcweir 
137cdf0e10cSrcweir     try{
138cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::EqualVersion | JavaInfo::GreaterVersion);
139cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) >= 0;
140cdf0e10cSrcweir     }
141cdf0e10cSrcweir     catch( ...) {
142cdf0e10cSrcweir         arRet[i++]= false;
143cdf0e10cSrcweir     }
144cdf0e10cSrcweir     try{
145cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::EqualVersion | JavaInfo::SmallerVersion);
146cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) <= 0;
147cdf0e10cSrcweir     }
148cdf0e10cSrcweir     catch( ...) {
149cdf0e10cSrcweir         arRet[i++]= false;
150cdf0e10cSrcweir     }
151cdf0e10cSrcweir     try{
152cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)),  JavaInfo::SmallerVersion);
153cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) < 0;
154cdf0e10cSrcweir     }
155cdf0e10cSrcweir     catch( ...) {
156cdf0e10cSrcweir         arRet[i++]= false;
157cdf0e10cSrcweir     }
158cdf0e10cSrcweir     try{
159cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::GreaterVersion);
160cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) > 0;
161cdf0e10cSrcweir     }
162cdf0e10cSrcweir     catch( ...) {
163cdf0e10cSrcweir         arRet[i++]= false;
164cdf0e10cSrcweir     }
165cdf0e10cSrcweir 
166cdf0e10cSrcweir     try{
167cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::EqualVersion | JavaInfo::SmallerVersion
168cdf0e10cSrcweir              | JavaInfo::Accessibility);
169cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) <= 0 && info.supportsAccessibility();
170cdf0e10cSrcweir     }
171cdf0e10cSrcweir     catch( ...) {
172cdf0e10cSrcweir         arRet[i++]= false;
173cdf0e10cSrcweir     }
174cdf0e10cSrcweir     try{
175cdf0e10cSrcweir         JavaInfo info(OUString(OUSTR(JAVA_VERSION)), JavaInfo::GreaterVersion | JavaInfo::Accessibility);
176cdf0e10cSrcweir         arRet[i++]= info.compareVersions(a) > 0 && info.supportsAccessibility();
177cdf0e10cSrcweir     }
178cdf0e10cSrcweir     catch( ...) {
179cdf0e10cSrcweir         arRet[i++]= false;
180cdf0e10cSrcweir     }
181cdf0e10cSrcweir 
182cdf0e10cSrcweir 
183cdf0e10cSrcweir     bool err= true;
184cdf0e10cSrcweir     for(int j= 0; j < i; j++)
185cdf0e10cSrcweir         err &= arRet[j];
186cdf0e10cSrcweir     if( err)
187cdf0e10cSrcweir         printf("ok\n");
188cdf0e10cSrcweir     else
189cdf0e10cSrcweir         printf("failed\n");
190cdf0e10cSrcweir     return err;
191cdf0e10cSrcweir 
192cdf0e10cSrcweir }
193cdf0e10cSrcweir 
test_createAllInfo()194cdf0e10cSrcweir bool test_createAllInfo()
195cdf0e10cSrcweir {
196cdf0e10cSrcweir     printf("\ntest JavaInfo::createAllInfo\n" \
197cdf0e10cSrcweir            "! Compare output with values in registry, PATH, JAVA_HOME, LD_LIBRARY_PATH !\n\n");
198cdf0e10cSrcweir     vector<JavaInfo> vec;
199cdf0e10cSrcweir     JavaInfo::createAllInfo(&vec);
200cdf0e10cSrcweir     for(vector<JavaInfo>::size_type i= 0; i < vec.size(); i++)
201cdf0e10cSrcweir         printInfo(vec[i]);
202cdf0e10cSrcweir     return true;
203cdf0e10cSrcweir }
204cdf0e10cSrcweir 
test_compareVersions()205cdf0e10cSrcweir bool test_compareVersions()
206cdf0e10cSrcweir {
207cdf0e10cSrcweir     bool ret= false;
208cdf0e10cSrcweir     printf("\ntest JavaInfo::compareVersions \n" \
209cdf0e10cSrcweir            "! Check output for correctness\n\n");
210cdf0e10cSrcweir 
211cdf0e10cSrcweir 
212cdf0e10cSrcweir     JavaInfo a(OUSTR("file:///C:/Program%20Files/JavaSoft/JRE/1.3.1"));
213cdf0e10cSrcweir     JavaInfo b(OUSTR("file:///C:/Program%20Files/JavaSoft/JRE/1.3.1_04"));
214cdf0e10cSrcweir     JavaInfo c(OUSTR("file:///C:/Program%20Files/Java/j2re1.4.0_03"));
215cdf0e10cSrcweir     JavaInfo d(OUSTR("file:///C:/Program%20Files/Java/j2re1.4.2_04"));
216cdf0e10cSrcweir //     JavaInfo e(OUSTR("file:///d:/java/j2sdk1.4.0_01"));
217cdf0e10cSrcweir //     JavaInfo f(OUSTR("file:///d:/java/j2sdk1.4.0_02"));
218cdf0e10cSrcweir //     JavaInfo g(OUSTR("file:///d:/java/j2sdk1.4.1"));
219cdf0e10cSrcweir //     JavaInfo h(OUSTR("file:///d:/java/j2sdk1.4.1_01"));
220cdf0e10cSrcweir 
221cdf0e10cSrcweir //     JavaInfo a(OUSTR("file:///usr/local2/jl/java/j2re1_3_1_02"));
222cdf0e10cSrcweir //     JavaInfo b(OUSTR("file:///usr/local2/jl/java/j2sdk1.4.0"));
223cdf0e10cSrcweir //     JavaInfo c(OUSTR("file:///usr/local2/jl/java/j2sdk1.4.1"));
224cdf0e10cSrcweir //     JavaInfo d(OUSTR("file:///usr/local2/jl/java/j2re1.4.1_01"));
225cdf0e10cSrcweir 
226cdf0e10cSrcweir //     JavaInfo a(OUSTR("file:///local/jl/java/jre1.3.1"));
227cdf0e10cSrcweir //     JavaInfo b(OUSTR("file:///local/jl/java/jdk1.3.1_04"));
228cdf0e10cSrcweir //     JavaInfo c(OUSTR("file:///local/jl/java/j2sdk1.4.0"));
229cdf0e10cSrcweir //     JavaInfo d(OUSTR("file:///local/jl/java/j2sdk1.4.1"));
230cdf0e10cSrcweir //     JavaInfo e(OUSTR("file:///local/jl/java/j2re1.4.1_01"));
231cdf0e10cSrcweir //     fprintf(stderr,"###ok1");
232cdf0e10cSrcweir 
233cdf0e10cSrcweir     if( (a.compareVersions(a) == 0
234cdf0e10cSrcweir          && a.compareVersions(b) < 0
235cdf0e10cSrcweir          && a.compareVersions(c) < 0
236cdf0e10cSrcweir //         && a.compareVersions(d) < 0
237cdf0e10cSrcweir //         && a.compareVersions(e) < 0
238cdf0e10cSrcweir //         && a.compareVersions(h) < 0
239cdf0e10cSrcweir             )
240cdf0e10cSrcweir         &&
241cdf0e10cSrcweir         (a.compareVersions(a)== 0))
242cdf0e10cSrcweir 
243cdf0e10cSrcweir         ret= true;
244cdf0e10cSrcweir 
245cdf0e10cSrcweir     if(ret &&
246cdf0e10cSrcweir      (b.compareVersions(a) > 0
247cdf0e10cSrcweir          && b.compareVersions(b) == 0
248cdf0e10cSrcweir          && b.compareVersions(c) < 0
249cdf0e10cSrcweir          && b.compareVersions(d) < 0
250cdf0e10cSrcweir //      && b.compareVersions(e) < 0
251cdf0e10cSrcweir //         && b.compareVersions(h) < 0))
252cdf0e10cSrcweir          ))
253cdf0e10cSrcweir         ret= true;
254cdf0e10cSrcweir 
255cdf0e10cSrcweir     if(ret &&
256cdf0e10cSrcweir        (   d.compareVersions(a) > 0
257cdf0e10cSrcweir            && d.compareVersions(b) > 0
258cdf0e10cSrcweir            && d.compareVersions(c) > 0
259cdf0e10cSrcweir            && d.compareVersions(d) == 0
260cdf0e10cSrcweir //           && d.compareVersions(e) < 0
261cdf0e10cSrcweir //        && d.compareVersions(f) < 0
262cdf0e10cSrcweir //        && d.compareVersions(g) < 0
263cdf0e10cSrcweir //        && d.compareVersions(h) < 0))
264cdf0e10cSrcweir            ))
265cdf0e10cSrcweir         ret= true;
266cdf0e10cSrcweir 
267cdf0e10cSrcweir //     if(ret
268cdf0e10cSrcweir //        && e.compareVersions(a) > 0
269cdf0e10cSrcweir //        && e.compareVersions(b) > 0
270cdf0e10cSrcweir //        && e.compareVersions(c) > 0
271cdf0e10cSrcweir //        && e.compareVersions(d) > 0
272cdf0e10cSrcweir //        && e.compareVersions(e) == 0
273cdf0e10cSrcweir //         )
274cdf0e10cSrcweir 
275cdf0e10cSrcweir 
276cdf0e10cSrcweir //     if(ret &&
277cdf0e10cSrcweir //        (f.compareVersions(a) > 0
278cdf0e10cSrcweir //         && f.compareVersions(c) > 0
279cdf0e10cSrcweir //         && f.compareVersions(d) > 0
280cdf0e10cSrcweir //         && f.compareVersions(g) < 0
281cdf0e10cSrcweir //         && f.compareVersions(h) < 0))
282cdf0e10cSrcweir //         ret= true;
283cdf0e10cSrcweir 
284cdf0e10cSrcweir     if( ! ret)
285cdf0e10cSrcweir         printf("failed\n");
286cdf0e10cSrcweir     else
287cdf0e10cSrcweir         printf("ok\n");
288cdf0e10cSrcweir 
289cdf0e10cSrcweir     return ret;
290cdf0e10cSrcweir }
291cdf0e10cSrcweir 
test_createBestInfo()292cdf0e10cSrcweir bool test_createBestInfo()
293cdf0e10cSrcweir {
294cdf0e10cSrcweir     printf("\ntest JavaInfo::createBestInfo\n" \
295cdf0e10cSrcweir            "! Check output for correctness\n\n");
296cdf0e10cSrcweir     JavaInfo info= JavaInfo::createBestInfo(false);
297cdf0e10cSrcweir     printInfo(info);
298cdf0e10cSrcweir     return true;
299cdf0e10cSrcweir }
300cdf0e10cSrcweir 
test_isEqual()301cdf0e10cSrcweir bool test_isEqual()
302cdf0e10cSrcweir {
303cdf0e10cSrcweir     printf("\ntest JavaInfo::isEqual\n");
304cdf0e10cSrcweir     JavaInfo a(OUSTR(JAVA_VERSION)); // accessible
305cdf0e10cSrcweir     JavaInfo b(OUSTR(JAVA_VERSION));
306cdf0e10cSrcweir 
307cdf0e10cSrcweir     JavaInfo c(OUSTR("file:///c:/local/r/j2sdk1.4.0"));// not Accessible
308cdf0e10cSrcweir     JavaInfo d(OUSTR("file:///d:/java/copy_j2sdk1.4.0"));
309cdf0e10cSrcweir //-------------------------------------------------------------------
310cdf0e10cSrcweir //     JavaInfo a(OUSTR("file:///usr/local2/jl/java/j2re1_3_1_02"));
311cdf0e10cSrcweir //     JavaInfo b(OUSTR("file:///usr/local2/jl/java/j2re1_3_1_02"));
312cdf0e10cSrcweir 
313cdf0e10cSrcweir //     JavaInfo c(OUSTR("file:///usr/local2/jl/java/j2sdk1.4.1"));
314cdf0e10cSrcweir //     JavaInfo d(OUSTR("file:///usr/local2/jl/java/copyj2sdk1.4.1"));
315cdf0e10cSrcweir 
316cdf0e10cSrcweir //     JavaInfo a(OUSTR("file:///local/jl/java/jre1.3.1"));
317cdf0e10cSrcweir //     JavaInfo b(OUSTR("file:///local/jl/java/jre1.3.1"));
318cdf0e10cSrcweir //     JavaInfo c(OUSTR("file:///local/jl/java/j2sdk1.4.1"));
319cdf0e10cSrcweir //     JavaInfo d(OUSTR("file:///local/jl/java/copyj2sdk1.4.1"));
320cdf0e10cSrcweir 
321cdf0e10cSrcweir     bool arRet[20];
322cdf0e10cSrcweir     int i= 0;
323cdf0e10cSrcweir     arRet[i++]= a.isEqual(b);
324cdf0e10cSrcweir     arRet[i++]= ! a.isEqual(c); //must fail
325cdf0e10cSrcweir     arRet[i++]= a.isEqual(d);
326cdf0e10cSrcweir 
327cdf0e10cSrcweir     bool err= true;
328cdf0e10cSrcweir     for(int j= 0; j < i; j++)
329cdf0e10cSrcweir         err &= arRet[j];
330cdf0e10cSrcweir     if( arRet == false)
331cdf0e10cSrcweir         printf("failed\n");
332cdf0e10cSrcweir     else
333cdf0e10cSrcweir         printf("ok\n");
334cdf0e10cSrcweir     return err;
335cdf0e10cSrcweir }
336cdf0e10cSrcweir 
test_getJarFilePath()337cdf0e10cSrcweir bool test_getJarFilePath()
338cdf0e10cSrcweir {
339cdf0e10cSrcweir     printf("\ntest JavaInfo::getJarFilePath\n");
340cdf0e10cSrcweir     JavaInfo info(OUString(OUSTR("1.3.1")), JavaInfo::GreaterVersion | JavaInfo::EqualVersion );
341cdf0e10cSrcweir     OUString s= info.getJarFilePath(OUSTR("javaplugin.jar"));
342cdf0e10cSrcweir 
343cdf0e10cSrcweir     printf("check if this URL is correct:\n");
344cdf0e10cSrcweir     OString oPath= OUStringToOString(s, osl_getThreadTextEncoding());
345cdf0e10cSrcweir     printf("%s\n", oPath.getStr());
346cdf0e10cSrcweir     return true;
347cdf0e10cSrcweir }
348cdf0e10cSrcweir 
printInfo(const JavaInfo & info)349cdf0e10cSrcweir void printInfo(const JavaInfo& info)
350cdf0e10cSrcweir {
351cdf0e10cSrcweir     OUString usVersion= info.getVersion();
352cdf0e10cSrcweir     OString sVersion= OUStringToOString( usVersion, osl_getThreadTextEncoding());
353cdf0e10cSrcweir     OUString usHome= info.getInstallationLocation();
354cdf0e10cSrcweir     OString sHome= OUStringToOString( usHome, osl_getThreadTextEncoding());
355cdf0e10cSrcweir     OUString usType= info.getType();
356cdf0e10cSrcweir     OString sType= OUStringToOString(usType, osl_getThreadTextEncoding());
357cdf0e10cSrcweir     OUString usLib= info.getRuntimeLibLocation();
358cdf0e10cSrcweir     OString sLib= OUStringToOString(usLib, osl_getThreadTextEncoding());
359cdf0e10cSrcweir     OUString usLibLocation= info.getLibLocations();
360cdf0e10cSrcweir     OString sLibLocation= OUStringToOString(usLibLocation, osl_getThreadTextEncoding());
361cdf0e10cSrcweir     sal_Bool baccess= info.supportsAccessibility();
362cdf0e10cSrcweir 
363cdf0e10cSrcweir     printf("%s %s\n",sType.getStr(), sVersion.getStr());
364cdf0e10cSrcweir     printf("\t%s \n",sHome.getStr());
365cdf0e10cSrcweir     printf("\t%s \n",sLib.getStr());
366cdf0e10cSrcweir     printf("\tLibDir: %s \n", sLibLocation.getStr());
367cdf0e10cSrcweir     printf("\t%s\n", baccess ? "accessible" : "not accessible");
368cdf0e10cSrcweir }
369