xref: /aoo4110/main/sal/qa/osl/file/osl_File_Const.h (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
25*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #ifndef _OSL_FILE_CONST_H_
28*b1cdbd2cSJim Jagielski #define _OSL_FILE_CONST_H_
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
31*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
32*b1cdbd2cSJim Jagielski #include <stdlib.h>
33*b1cdbd2cSJim Jagielski #include <stdio.h>
34*b1cdbd2cSJim Jagielski #include <string.h>
35*b1cdbd2cSJim Jagielski #include <sal/types.h>
36*b1cdbd2cSJim Jagielski #include <rtl/textenc.h>
37*b1cdbd2cSJim Jagielski 
38*b1cdbd2cSJim Jagielski #include <rtl/ustring.hxx>
39*b1cdbd2cSJim Jagielski #include <rtl/uri.hxx>
40*b1cdbd2cSJim Jagielski 
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski 
43*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
44*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski 
47*b1cdbd2cSJim Jagielski #ifdef __cplusplus
48*b1cdbd2cSJim Jagielski extern "C"
49*b1cdbd2cSJim Jagielski {
50*b1cdbd2cSJim Jagielski #endif
51*b1cdbd2cSJim Jagielski 
52*b1cdbd2cSJim Jagielski 
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
55*b1cdbd2cSJim Jagielski // common used string resource
56*b1cdbd2cSJim Jagielski // these common used string will be used as assist resource in test
57*b1cdbd2cSJim Jagielski // they are mostly OS independent, some of the resource can be reused
58*b1cdbd2cSJim Jagielski // so, acommon test data repository will be better since it can be
59*b1cdbd2cSJim Jagielski // shared among all test code
60*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski const sal_Char pBuffer_Char[]   = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
63*b1cdbd2cSJim Jagielski const sal_Char pBuffer_Number[] = "1234567890";
64*b1cdbd2cSJim Jagielski const sal_Char pBuffer_Blank[]  = "";
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski #define TRUNC_LEN               10;
67*b1cdbd2cSJim Jagielski #define ENLARG_LEN              100;
68*b1cdbd2cSJim Jagielski 
69*b1cdbd2cSJim Jagielski 
70*b1cdbd2cSJim Jagielski 
71*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
72*b1cdbd2cSJim Jagielski // OS dependent/independent definitions/includes
73*b1cdbd2cSJim Jagielski // we use FILE_PREFIX for URL prefix,
74*b1cdbd2cSJim Jagielski //        TEST_PLATFORM for test platform initial,
75*b1cdbd2cSJim Jagielski //        TEST_PLATFORM_ROOT for root dir in comrresponding platform,
76*b1cdbd2cSJim Jagielski //        TEST_PLATFORM_TEMP for temp dir in comrresponding platform,
77*b1cdbd2cSJim Jagielski //        PATH_LIST_DELIMITER for seperator of path list in comrresponding platform,
78*b1cdbd2cSJim Jagielski //        PATH_SEPERATOR for seperator in URL or system path in comrresponding platform,
79*b1cdbd2cSJim Jagielski //        PATH_MAX/MAX_PATH for max path length in comrresponding platform,
80*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
83*b1cdbd2cSJim Jagielski // OS independent const definition
84*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
85*b1cdbd2cSJim Jagielski #	define FILE_PREFIX          "file:///"
86*b1cdbd2cSJim Jagielski #	define TEST_FILE_SIZE       1024
87*b1cdbd2cSJim Jagielski 
88*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
89*b1cdbd2cSJim Jagielski // OS dependent declaration and includes
90*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
91*b1cdbd2cSJim Jagielski #if ( defined UNX ) || ( defined OS2 )  //Unix
92*b1cdbd2cSJim Jagielski #	include <unistd.h>
93*b1cdbd2cSJim Jagielski #	include <limits.h>
94*b1cdbd2cSJim Jagielski #	include <math.h>
95*b1cdbd2cSJim Jagielski #	include <errno.h>
96*b1cdbd2cSJim Jagielski #	include <fcntl.h>
97*b1cdbd2cSJim Jagielski #	include <sys/stat.h>
98*b1cdbd2cSJim Jagielski #	include <sys/statfs.h>
99*b1cdbd2cSJim Jagielski #	include <sys/statvfs.h>
100*b1cdbd2cSJim Jagielski #	include <sys/types.h>
101*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM        ""
102*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM_ROOT   "/"
103*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM_TEMP   "tmp"
104*b1cdbd2cSJim Jagielski #	define PATH_LIST_DELIMITER  ":"
105*b1cdbd2cSJim Jagielski #	define PATH_SEPERATOR       "/"
106*b1cdbd2cSJim Jagielski #endif
107*b1cdbd2cSJim Jagielski #if (defined WNT )                      // Windows
108*b1cdbd2cSJim Jagielski #include <tools/prewin.h>
109*b1cdbd2cSJim Jagielski // #	include <windows.h>
110*b1cdbd2cSJim Jagielski #   include <tchar.h>
111*b1cdbd2cSJim Jagielski #	include <io.h>
112*b1cdbd2cSJim Jagielski #	include <stdio.h>
113*b1cdbd2cSJim Jagielski #	include <stdlib.h>
114*b1cdbd2cSJim Jagielski #include <tools/postwin.h>
115*b1cdbd2cSJim Jagielski #	define PATH_MAX             MAX_PATH
116*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM        "c:/"
117*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM_ROOT   "c:/"
118*b1cdbd2cSJim Jagielski #	define TEST_PLATFORM_TEMP   "temp"
119*b1cdbd2cSJim Jagielski #	define PATH_LIST_DELIMITER  ";"
120*b1cdbd2cSJim Jagielski #	define PATH_SEPERATOR		"/"
121*b1cdbd2cSJim Jagielski #endif
122*b1cdbd2cSJim Jagielski 
123*b1cdbd2cSJim Jagielski 
124*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
125*b1cdbd2cSJim Jagielski // macro definition for the ASCII array/OUString declarations,
126*b1cdbd2cSJim Jagielski // we use p### for the ASCII array,
127*b1cdbd2cSJim Jagielski //        a### for the OUString,
128*b1cdbd2cSJim Jagielski //        n###Len for its length
129*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
130*b1cdbd2cSJim Jagielski 
131*b1cdbd2cSJim Jagielski #define OSLTEST_DECLARE( str_name, str_value ) \
132*b1cdbd2cSJim Jagielski 	::rtl::OUString a##str_name = rtl::OUString::createFromAscii( ( str_value ) )
133*b1cdbd2cSJim Jagielski 
134*b1cdbd2cSJim Jagielski #define OSLTEST_DECLARE_UTF8(str_name, str_value ) \
135*b1cdbd2cSJim Jagielski 	::rtl::OUString a##str_name = ::rtl::Uri::decode( ::rtl::OUString::createFromAscii( ( str_value ) ), rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
138*b1cdbd2cSJim Jagielski // OS independent file definition
139*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
140*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( NullURL,  "" );
141*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( SlashURL, PATH_SEPERATOR );
142*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( PreURL, FILE_PREFIX );
143*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RootURL,  FILE_PREFIX TEST_PLATFORM );
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TempDirectoryURL,  FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP );
146*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TempDirectorySys,  TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP );
147*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( UserDirectoryURL,  FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "" );
148*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( UserDirectorySys,  TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "" );
149*b1cdbd2cSJim Jagielski 
150*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
151*b1cdbd2cSJim Jagielski // common used URL:temp, canonical, root, relative, link,etc
152*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
153*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( CanURL1,  FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/canonical.name" );
154*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( CanURL2,  "ca@#;+.,$///78no\0ni..name" );
155*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( CanURL3,  "ca@#;+.,$//tmp/678nonical//name" );
156*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( CanURL4,  "canonical.name" );
157*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName1, "tmpdir" );
158*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName2, "tmpname" );
159*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName3, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir" );
160*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName4, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/tmpname" );
161*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName5, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./tmpname" );
162*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName6, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname" );
163*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName7, FILE_PREFIX TEST_PLATFORM "tmpname" );
164*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName8, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname/tmpdir" );
165*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TmpName9, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./" );
166*b1cdbd2cSJim Jagielski OSLTEST_DECLARE_UTF8( TmpName10, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
167*b1cdbd2cSJim Jagielski 
168*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RelURL1,  "relative/file1" );
169*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RelURL2,  "relative/./file2" );
170*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RelURL3,  "relative/../file3" );
171*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RelURL4,  "././relative/../file4" );
172*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RelURL5,  TEST_PLATFORM_TEMP "/./../" TEST_PLATFORM_TEMP );
173*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( LnkURL1,  FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/link.file" );
174*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( HidURL1,  ".hiddenfile" );
175*b1cdbd2cSJim Jagielski 
176*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
177*b1cdbd2cSJim Jagielski // common used System Path:temp, root,etc
178*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
179*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( RootSys,  TEST_PLATFORM_ROOT );
180*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( SysPath1, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system.path" );
181*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( SysPath2, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system/path" );
182*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( SysPath3, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir" );
183*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( SysPath4, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpname" );
184*b1cdbd2cSJim Jagielski OSLTEST_DECLARE_UTF8( SysPath5, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
185*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( FifoSys,  TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir/fifo" );
186*b1cdbd2cSJim Jagielski 
187*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
188*b1cdbd2cSJim Jagielski // FileType URL, we pick some canonical file in corresponding system for test:
189*b1cdbd2cSJim Jagielski // socket, link, etc.
190*b1cdbd2cSJim Jagielski // Note that this may be changed in the different platform, so be careful to use.
191*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
192*b1cdbd2cSJim Jagielski #if ( defined UNX ) || ( defined OS2 )                                 //          Unix
193*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL1,  FILE_PREFIX "dev/ccv");                    //socket    Solaris/Linux
194*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL2,  FILE_PREFIX "devices/pseudo/tcp@0:tcp");   //special   Solaris/Linux
195*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL3,  FILE_PREFIX "lib" );                       //link      Solaris
196*b1cdbd2cSJim Jagielski #else                                                                  //          Windows
197*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL1,  FILE_PREFIX "" );
198*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL2,  FILE_PREFIX "" );
199*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( TypeURL3,  FILE_PREFIX "" );
200*b1cdbd2cSJim Jagielski #endif
201*b1cdbd2cSJim Jagielski 
202*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
203*b1cdbd2cSJim Jagielski // Volume device URL, we pick some canonical volume device for test:
204*b1cdbd2cSJim Jagielski // UNIX file system, Floppy Disk, Proc file system, Temp file system, Compact Disk.
205*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
206*b1cdbd2cSJim Jagielski #if ( defined UNX ) || ( defined OS2 )					//			Unix
207*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL1,  FILE_PREFIX  "");			//ufs		Solaris/Linux
208*b1cdbd2cSJim Jagielski #ifdef SOLARIS
209*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL2,  FILE_PREFIX  "dev/fd" );		//fd		Solaris
210*b1cdbd2cSJim Jagielski #else
211*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL2,  FILE_PREFIX  "dev/floppy/0u1440" );	//fd0		Linux
212*b1cdbd2cSJim Jagielski #endif
213*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL3,  FILE_PREFIX  "proc" );		//proc		Solaris/Linux
214*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL4,  FILE_PREFIX  "staroffice" );	//nfs		Solaris/Linux
215*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL5,  FILE_PREFIX  "tmp" );		//tmpfs		Solaris
216*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL6,  FILE_PREFIX  "cdrom" );		//cd		Solaris
217*b1cdbd2cSJim Jagielski #else													//			Windows
218*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL1,  FILE_PREFIX  "c:/" );
219*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL2,  FILE_PREFIX  "a:/" );
220*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL3,  FILE_PREFIX  "" );
221*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL4,  FILE_PREFIX  "" );
222*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL5,  FILE_PREFIX  "c:/temp" );
223*b1cdbd2cSJim Jagielski OSLTEST_DECLARE( VolURL6,  FILE_PREFIX  "e:/" );
224*b1cdbd2cSJim Jagielski #endif
225*b1cdbd2cSJim Jagielski 
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
228*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
229*b1cdbd2cSJim Jagielski 
230*b1cdbd2cSJim Jagielski #ifdef __cplusplus
231*b1cdbd2cSJim Jagielski }
232*b1cdbd2cSJim Jagielski #endif
233*b1cdbd2cSJim Jagielski 
234*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
235*b1cdbd2cSJim Jagielski //------------------------------------------------------------------------
236*b1cdbd2cSJim Jagielski 
237*b1cdbd2cSJim Jagielski 
238*b1cdbd2cSJim Jagielski #endif /* _OSL_FILE_CONST_H_ */
239