blob: 682178e4ba987c2a1ce5a6e67f0d516f5e102974 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#ifndef _OSL_FILE_CONST_H_
#define _OSL_FILE_CONST_H_
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sal/types.h>
#include <rtl/textenc.h>
#include <rtl/ustring.hxx>
#include <rtl/uri.hxx>
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#ifdef __cplusplus
extern "C"
{
#endif
//------------------------------------------------------------------------
// common used string resource
// these common used string will be used as assist resource in test
// they are mostly OS independent, some of the resource can be reused
// so, acommon test data repository will be better since it can be
// shared among all test code
//------------------------------------------------------------------------
const sal_Char pBuffer_Char[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
const sal_Char pBuffer_Number[] = "1234567890";
const sal_Char pBuffer_Blank[] = "";
#define TRUNC_LEN 10;
#define ENLARG_LEN 100;
//------------------------------------------------------------------------
// OS dependent/independent definitions/includes
// we use FILE_PREFIX for URL prefix,
// TEST_PLATFORM for test platform initial,
// TEST_PLATFORM_ROOT for root dir in comrresponding platform,
// TEST_PLATFORM_TEMP for temp dir in comrresponding platform,
// PATH_LIST_DELIMITER for seperator of path list in comrresponding platform,
// PATH_SEPERATOR for seperator in URL or system path in comrresponding platform,
// PATH_MAX/MAX_PATH for max path length in comrresponding platform,
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// OS independent const definition
//------------------------------------------------------------------------
# define FILE_PREFIX "file:///"
# define TEST_FILE_SIZE 1024
//------------------------------------------------------------------------
// OS dependent declaration and includes
//------------------------------------------------------------------------
#if ( defined UNX ) || ( defined OS2 ) //Unix
# include <unistd.h>
# include <limits.h>
# include <math.h>
# include <errno.h>
# include <fcntl.h>
# include <sys/stat.h>
# include <sys/statfs.h>
# include <sys/statvfs.h>
# include <sys/types.h>
# define TEST_PLATFORM ""
# define TEST_PLATFORM_ROOT "/"
# define TEST_PLATFORM_TEMP "tmp"
# define PATH_LIST_DELIMITER ":"
# define PATH_SEPERATOR "/"
#endif
#if (defined WNT ) // Windows
#include <tools/prewin.h>
// # include <windows.h>
# include <tchar.h>
# include <io.h>
# include <stdio.h>
# include <stdlib.h>
#include <tools/postwin.h>
# define PATH_MAX MAX_PATH
# define TEST_PLATFORM "c:/"
# define TEST_PLATFORM_ROOT "c:/"
# define TEST_PLATFORM_TEMP "temp"
# define PATH_LIST_DELIMITER ";"
# define PATH_SEPERATOR "/"
#endif
//------------------------------------------------------------------------
// macro definition for the ASCII array/OUString declarations,
// we use p### for the ASCII array,
// a### for the OUString,
// n###Len for its length
//------------------------------------------------------------------------
#define OSLTEST_DECLARE( str_name, str_value ) \
::rtl::OUString a##str_name = rtl::OUString::createFromAscii( ( str_value ) )
#define OSLTEST_DECLARE_UTF8(str_name, str_value ) \
::rtl::OUString a##str_name = ::rtl::Uri::decode( ::rtl::OUString::createFromAscii( ( str_value ) ), rtl_UriDecodeToIuri, RTL_TEXTENCODING_UTF8)
//------------------------------------------------------------------------
// OS independent file definition
//------------------------------------------------------------------------
OSLTEST_DECLARE( NullURL, "" );
OSLTEST_DECLARE( SlashURL, PATH_SEPERATOR );
OSLTEST_DECLARE( PreURL, FILE_PREFIX );
OSLTEST_DECLARE( RootURL, FILE_PREFIX TEST_PLATFORM );
OSLTEST_DECLARE( TempDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP );
OSLTEST_DECLARE( TempDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP );
OSLTEST_DECLARE( UserDirectoryURL, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "" );
OSLTEST_DECLARE( UserDirectorySys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "" );
//------------------------------------------------------------------------
// common used URL:temp, canonical, root, relative, link,etc
//------------------------------------------------------------------------
OSLTEST_DECLARE( CanURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/canonical.name" );
OSLTEST_DECLARE( CanURL2, "ca@#;+.,$///78no\0ni..name" );
OSLTEST_DECLARE( CanURL3, "ca@#;+.,$//tmp/678nonical//name" );
OSLTEST_DECLARE( CanURL4, "canonical.name" );
OSLTEST_DECLARE( TmpName1, "tmpdir" );
OSLTEST_DECLARE( TmpName2, "tmpname" );
OSLTEST_DECLARE( TmpName3, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir" );
OSLTEST_DECLARE( TmpName4, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/tmpname" );
OSLTEST_DECLARE( TmpName5, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./tmpname" );
OSLTEST_DECLARE( TmpName6, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname" );
OSLTEST_DECLARE( TmpName7, FILE_PREFIX TEST_PLATFORM "tmpname" );
OSLTEST_DECLARE( TmpName8, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpname/tmpdir" );
OSLTEST_DECLARE( TmpName9, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/tmpdir/../tmpdir/./" );
OSLTEST_DECLARE_UTF8( TmpName10, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
OSLTEST_DECLARE( RelURL1, "relative/file1" );
OSLTEST_DECLARE( RelURL2, "relative/./file2" );
OSLTEST_DECLARE( RelURL3, "relative/../file3" );
OSLTEST_DECLARE( RelURL4, "././relative/../file4" );
OSLTEST_DECLARE( RelURL5, TEST_PLATFORM_TEMP "/./../" TEST_PLATFORM_TEMP );
OSLTEST_DECLARE( LnkURL1, FILE_PREFIX TEST_PLATFORM TEST_PLATFORM_TEMP "/link.file" );
OSLTEST_DECLARE( HidURL1, ".hiddenfile" );
//------------------------------------------------------------------------
// common used System Path:temp, root,etc
//------------------------------------------------------------------------
OSLTEST_DECLARE( RootSys, TEST_PLATFORM_ROOT );
OSLTEST_DECLARE( SysPath1, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system.path" );
OSLTEST_DECLARE( SysPath2, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/system/path" );
OSLTEST_DECLARE( SysPath3, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir" );
OSLTEST_DECLARE( SysPath4, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpname" );
OSLTEST_DECLARE_UTF8( SysPath5, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/%E6%9C%AA%E5%91%BD%E5%90%8Dzhgb18030" );
OSLTEST_DECLARE( FifoSys, TEST_PLATFORM_ROOT TEST_PLATFORM_TEMP "/tmpdir/fifo" );
//------------------------------------------------------------------------
// FileType URL, we pick some canonical file in corresponding system for test:
// socket, link, etc.
// Note that this may be changed in the different platform, so be careful to use.
//------------------------------------------------------------------------
#if ( defined UNX ) || ( defined OS2 ) // Unix
OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "dev/ccv"); //socket Solaris/Linux
OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "devices/pseudo/tcp@0:tcp"); //special Solaris/Linux
OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "lib" ); //link Solaris
#else // Windows
OSLTEST_DECLARE( TypeURL1, FILE_PREFIX "" );
OSLTEST_DECLARE( TypeURL2, FILE_PREFIX "" );
OSLTEST_DECLARE( TypeURL3, FILE_PREFIX "" );
#endif
//------------------------------------------------------------------------
// Volume device URL, we pick some canonical volume device for test:
// UNIX file system, Floppy Disk, Proc file system, Temp file system, Compact Disk.
//------------------------------------------------------------------------
#if ( defined UNX ) || ( defined OS2 ) // Unix
OSLTEST_DECLARE( VolURL1, FILE_PREFIX ""); //ufs Solaris/Linux
#ifdef SOLARIS
OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/fd" ); //fd Solaris
#else
OSLTEST_DECLARE( VolURL2, FILE_PREFIX "dev/floppy/0u1440" ); //fd0 Linux
#endif
OSLTEST_DECLARE( VolURL3, FILE_PREFIX "proc" ); //proc Solaris/Linux
OSLTEST_DECLARE( VolURL4, FILE_PREFIX "staroffice" ); //nfs Solaris/Linux
OSLTEST_DECLARE( VolURL5, FILE_PREFIX "tmp" ); //tmpfs Solaris
OSLTEST_DECLARE( VolURL6, FILE_PREFIX "cdrom" ); //cd Solaris
#else // Windows
OSLTEST_DECLARE( VolURL1, FILE_PREFIX "c:/" );
OSLTEST_DECLARE( VolURL2, FILE_PREFIX "a:/" );
OSLTEST_DECLARE( VolURL3, FILE_PREFIX "" );
OSLTEST_DECLARE( VolURL4, FILE_PREFIX "" );
OSLTEST_DECLARE( VolURL5, FILE_PREFIX "c:/temp" );
OSLTEST_DECLARE( VolURL6, FILE_PREFIX "e:/" );
#endif
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#ifdef __cplusplus
}
#endif
//------------------------------------------------------------------------
//------------------------------------------------------------------------
#endif /* _OSL_FILE_CONST_H_ */