Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*************************************************************************
3 : : *
4 : : * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 : : *
6 : : * Copyright 2000, 2010 Oracle and/or its affiliates.
7 : : *
8 : : * OpenOffice.org - a multi-platform office productivity suite
9 : : *
10 : : * This file is part of OpenOffice.org.
11 : : *
12 : : * OpenOffice.org is free software: you can redistribute it and/or modify
13 : : * it under the terms of the GNU Lesser General Public License version 3
14 : : * only, as published by the Free Software Foundation.
15 : : *
16 : : * OpenOffice.org is distributed in the hope that it will be useful,
17 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 : : * GNU Lesser General Public License version 3 for more details
20 : : * (a copy is included in the LICENSE file that accompanied this code).
21 : : *
22 : : * You should have received a copy of the GNU Lesser General Public License
23 : : * version 3 along with OpenOffice.org. If not, see
24 : : * <http://www.openoffice.org/license.html>
25 : : * for a copy of the LGPLv3 License.
26 : : *
27 : : ************************************************************************/
28 : :
29 : : #ifndef _OSL_FILE_CONST_H_
30 : : #define _OSL_FILE_CONST_H_
31 : :
32 : : #include <stdlib.h>
33 : : #include <stdio.h>
34 : : #include <string.h>
35 : : #include <sal/types.h>
36 : : #include <rtl/textenc.h>
37 : :
38 : : #include <rtl/ustring.hxx>
39 : : #include <rtl/uri.hxx>
40 : :
41 : : #ifdef __cplusplus
42 : : extern "C"
43 : : {
44 : : #endif
45 : :
46 : :
47 : :
48 : : //------------------------------------------------------------------------
49 : : // common used string resource
50 : : // these common used string will be used as assist resource in test
51 : : // they are mostly OS independent, some of the resource can be reused
52 : : // so, acommon test data repository will be better since it can be
53 : : // shared among all test code
54 : : //------------------------------------------------------------------------
55 : :
56 : : const sal_Char pBuffer_Char[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
57 : : const sal_Char pBuffer_Number[] = "1234567890";
58 : : const sal_Char pBuffer_Blank[] = "";
59 : :
60 : : //------------------------------------------------------------------------
61 : : // OS dependent/independent definitions/includes
62 : : // we use FILE_PREFIX for URL prefix,
63 : : // TEST_PLATFORM for test platform initial,
64 : : // TEST_PLATFORM_ROOT for root dir in comrresponding platform,
65 : : // TEST_PLATFORM_TEMP for temp dir in comrresponding platform,
66 : : // PATH_LIST_DELIMITER for seperator of path list in comrresponding platform,
67 : : // PATH_SEPERATOR for seperator in URL or system path in comrresponding platform,
68 : : // PATH_MAX/MAX_PATH for max path length in comrresponding platform,
69 : : //------------------------------------------------------------------------
70 : :
71 : : //------------------------------------------------------------------------
72 : : // OS independent const definition
73 : : //------------------------------------------------------------------------
74 : : # define FILE_PREFIX "file:///"
75 : : # define TEST_FILE_SIZE 1024
76 : :
77 : : //------------------------------------------------------------------------
78 : : // OS dependent declaration and includes
79 : : //------------------------------------------------------------------------
80 : : #if ( defined UNX ) //Unix
81 : : # include <unistd.h>
82 : : # include <limits.h>
83 : : # include <math.h>
84 : : # include <errno.h>
85 : : # include <fcntl.h>
86 : : # include <sys/stat.h>
87 : : # if !defined(MACOSX) && !defined(IOS) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined (DRAGONFLY)
88 : : # include <sys/statfs.h>
89 : : # else
90 : : # include <sys/param.h>
91 : : # include <sys/mount.h>
92 : : # endif
93 : : # if !defined(ANDROID)
94 : : # include <sys/statvfs.h>
95 : : # endif
96 : : # include <sys/types.h>
97 : : # define TEST_PLATFORM ""
98 : : # define TEST_PLATFORM_ROOT "/"
99 : : # define TEST_PLATFORM_TEMP "tmp"
100 : : # define PATH_LIST_DELIMITER ":"
101 : : # define PATH_SEPERATOR "/"
102 : : #endif
103 : :
104 : : #if (defined WNT ) // Windows
105 : : # include <tchar.h>
106 : : # include <io.h>
107 : : # include <stdio.h>
108 : : # include <stdlib.h>
109 : : # define PATH_MAX MAX_PATH
110 : : # define TEST_PLATFORM "c:/"
111 : : # define TEST_PLATFORM_ROOT "c:/"
112 : : # define TEST_PLATFORM_TEMP "temp"
113 : : # define PATH_LIST_DELIMITER ";"
114 : : # define PATH_SEPERATOR "/"
115 : : #endif
116 : :
117 : :
118 : : //------------------------------------------------------------------------
119 : : // macro definition for the ASCII array/OUString declarations,
120 : : // we use p### for the ASCII array,
121 : : // a### for the OUString,
122 : : // n###Len for its length
123 : : //------------------------------------------------------------------------
124 : :
125 : : #define OSLTEST_DECLARE( str_name, str_value ) \
126 : : ::rtl::OUString a##str_name = rtl::OUString::createFromAscii( ( str_value ) )
127 : :
128 : : #define OSLTEST_DECLARE_UTF8(str_name, str_value ) \
129 : : ::rtl::OUString a##str_name = ::rtl::Uri::decode( ::rtl::OUString::createFromAscii( ( str_value ) ), rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
130 : :
131 : : //------------------------------------------------------------------------
132 : : // OS independent file definition
133 : : //------------------------------------------------------------------------
134 : 5 : OSLTEST_DECLARE( NullURL, "" );
135 : 5 : OSLTEST_DECLARE( SlashURL, PATH_SEPERATOR );
136 : 5 : OSLTEST_DECLARE( PreURL, FILE_PREFIX );
137 : 5 : OSLTEST_DECLARE( RootURL, FILE_PREFIX TEST_PLATFORM );
138 : :
139 : 5 : OSLTEST_DECLARE( TempDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP );
140 : 5 : OSLTEST_DECLARE( TempDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP );
141 : 5 : OSLTEST_DECLARE( UserDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "" );
142 : 5 : OSLTEST_DECLARE( UserDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "" );
143 : :
144 : : //------------------------------------------------------------------------
145 : : // common used URL:temp, canonical, root, relative, link,etc
146 : : //------------------------------------------------------------------------
147 : 5 : OSLTEST_DECLARE( CanURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/canonical.name" );
148 : 5 : OSLTEST_DECLARE( CanURL2, "ca@#;+.,$///78no\0ni..name" );
149 : 5 : OSLTEST_DECLARE( CanURL3, "ca@#;+.,$//tmp/678nonical//name" );
150 : 5 : OSLTEST_DECLARE( CanURL4, "canonical.name" );
151 : 5 : OSLTEST_DECLARE( TmpName1, "tmpdir" );
152 : 5 : OSLTEST_DECLARE( TmpName2, "tmpname" );
153 : 5 : OSLTEST_DECLARE( TmpName3, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir" );
154 : 5 : OSLTEST_DECLARE( TmpName4, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/tmpname" );
155 : 5 : OSLTEST_DECLARE( TmpName5, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./tmpname" );
156 : 5 : OSLTEST_DECLARE( TmpName6, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname" );
157 : 5 : OSLTEST_DECLARE( TmpName7, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/noaccess" );
158 : 5 : OSLTEST_DECLARE( TmpName8, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname/tmpdir" );
159 : 5 : OSLTEST_DECLARE( TmpName9, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./" );
160 : 5 : OSLTEST_DECLARE_UTF8( TmpName10, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
161 : :
162 : 5 : OSLTEST_DECLARE( RelURL1, "relative/file1" );
163 : 5 : OSLTEST_DECLARE( RelURL2, "relative/./file2" );
164 : 5 : OSLTEST_DECLARE( RelURL3, "relative/../file3" );
165 : 5 : OSLTEST_DECLARE( RelURL4, "././relative/../file4" );
166 : 5 : OSLTEST_DECLARE( RelURL5, TEST_PLATFORM_TEMP "/./../" TEST_PLATFORM_TEMP );
167 : 5 : OSLTEST_DECLARE( LnkURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/link.file" );
168 : 5 : OSLTEST_DECLARE( HidURL1, ".hiddenfile" );
169 : :
170 : : //------------------------------------------------------------------------
171 : : // common used System Path:temp, root,etc
172 : : //------------------------------------------------------------------------
173 : 5 : OSLTEST_DECLARE( RootSys, TEST_PLATFORM_ROOT );
174 : 5 : OSLTEST_DECLARE( SysPath1, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system.path" );
175 : 5 : OSLTEST_DECLARE( SysPath2, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system/path" );
176 : 5 : OSLTEST_DECLARE( SysPath3, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir" );
177 : 5 : OSLTEST_DECLARE( SysPath4, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpname" );
178 : 5 : OSLTEST_DECLARE_UTF8( SysPath5, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
179 : 5 : OSLTEST_DECLARE( SysPathLnk, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/link.file" );
180 : 5 : OSLTEST_DECLARE( FifoSys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir/fifo" );
181 : :
182 : : //------------------------------------------------------------------------
183 : : // FileType URL, we pick some canonical file in corresponding system for test:
184 : : // socket, link, etc.
185 : : // Note that this may be changed in the different platform, so be careful to use.
186 : : //------------------------------------------------------------------------
187 : : #if ( defined UNX ) // Unix
188 : 5 : OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "dev/ccv"); //socket Solaris/Linux
189 : 5 : OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "devices/pseudo/tcp@0:tcp"); //special Solaris/Linux
190 : 5 : OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "lib" ); //link Solaris
191 : : #else // Windows
192 : : OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "" );
193 : : OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "" );
194 : : OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "" );
195 : : #endif
196 : :
197 : : //------------------------------------------------------------------------
198 : : // Volume device URL, we pick some canonical volume device for test:
199 : : // UNIX file system, Floppy Disk, Proc file system, Temp file system, Compact Disk.
200 : : //------------------------------------------------------------------------
201 : : #if ( defined UNX ) // Unix
202 : 5 : OSLTEST_DECLARE( VolURL1, FILE_PREFIX ""); //ufs Solaris/Linux
203 : : #ifdef SOLARIS
204 : : OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/fd" ); //fd Solaris
205 : : #else
206 : 5 : OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/floppy/0u1440" ); //fd0 Linux
207 : : #endif
208 : 5 : OSLTEST_DECLARE( VolURL3, FILE_PREFIX "proc" ); //proc Solaris/Linux
209 : 5 : OSLTEST_DECLARE( VolURL4, FILE_PREFIX "staroffice" ); //nfs Solaris/Linux
210 : 5 : OSLTEST_DECLARE( VolURL5, FILE_PREFIX "tmp" ); //tmpfs Solaris
211 : 5 : OSLTEST_DECLARE( VolURL6, FILE_PREFIX "cdrom" ); //cd Solaris
212 : : #else // Windows
213 : : OSLTEST_DECLARE( VolURL1, FILE_PREFIX "c:/" );
214 : : OSLTEST_DECLARE( VolURL2, FILE_PREFIX "a:/" );
215 : : OSLTEST_DECLARE( VolURL3, FILE_PREFIX "" );
216 : : OSLTEST_DECLARE( VolURL4, FILE_PREFIX "" );
217 : : OSLTEST_DECLARE( VolURL5, FILE_PREFIX "c:/temp" );
218 : : OSLTEST_DECLARE( VolURL6, FILE_PREFIX "e:/" );
219 : : #endif
220 : :
221 : : #ifdef __cplusplus
222 : : }
223 : : #endif
224 : :
225 : : #endif /* _OSL_FILE_CONST_H_ */
226 : :
227 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|