mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-30 06:00:29 +02:00
* filename parsing
git-svn-id: trunk@10110 -
This commit is contained in:
parent
7ceeb83014
commit
eb00f047f3
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -7498,6 +7498,7 @@ tests/test/units/sysutils/execedbya.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/extractquote.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tastrcmp.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tfile1.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tfilename.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tfloattostr.pp -text
|
||||
tests/test/units/sysutils/tsscanf.pp svneol=native#text/plain
|
||||
tests/test/units/sysutils/tstrtobool.pp svneol=native#text/plain
|
||||
|
117
tests/test/units/sysutils/tfilename.pp
Normal file
117
tests/test/units/sysutils/tfilename.pp
Normal file
@ -0,0 +1,117 @@
|
||||
program filefunctest;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
uses
|
||||
SysUtils;
|
||||
|
||||
var
|
||||
err : boolean;
|
||||
procedure TestFuncs(testidx:integer;const res,expected: string);
|
||||
begin
|
||||
if res<>expected then
|
||||
begin
|
||||
Writeln('FAILURE at ',testidx:5,' got "',res,'", expected "',expected,'" ');
|
||||
err:=true;
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
// Default Unix
|
||||
AllowDirectorySeparators:=['/','\'];
|
||||
AllowDriveSeparators:=[];
|
||||
TestFuncs(1,ExtractFilePath('./:'),'./');
|
||||
TestFuncs(2,ExtractFileName('./:'),':');
|
||||
TestFuncs(3,ExtractFileDrive('./:'),'');
|
||||
|
||||
TestFuncs(4,ExtractFilePath('C:/blah:blah'),'C:/');
|
||||
TestFuncs(5,ExtractFileName('C:/blah:blah'),'blah:blah');
|
||||
TestFuncs(6,ExtractFileDrive('C:/blah:blah'),'');
|
||||
|
||||
TestFuncs(7,ExtractFilePath('./\'),'./\');
|
||||
TestFuncs(8,ExtractFileName('./\'),'');
|
||||
TestFuncs(9,ExtractFileDrive('./\'),'');
|
||||
|
||||
TestFuncs(10,ExtractFilePath('./c:'),'./');
|
||||
TestFuncs(11,ExtractFileName('./c:'),'c:');
|
||||
TestFuncs(12,ExtractFileDrive('./c:'),'');
|
||||
|
||||
TestFuncs(13,ExtractFilePath('\\server\share\file'),'\\server\share\');
|
||||
TestFuncs(14,ExtractFileName('\\server\share\file'),'file');
|
||||
TestFuncs(15,ExtractFileDrive('\\server\share\file'),'\\server');
|
||||
|
||||
// Kylix compatibility mode
|
||||
AllowDirectorySeparators:=['/'];
|
||||
AllowDriveSeparators:=[];
|
||||
TestFuncs(101,ExtractFilePath('./:'),'./');
|
||||
TestFuncs(102,ExtractFileName('./:'),':');
|
||||
TestFuncs(103,ExtractFileDrive('./:'),'');
|
||||
|
||||
TestFuncs(104,ExtractFilePath('C:/blah:blah'),'C:/');
|
||||
TestFuncs(105,ExtractFileName('C:/blah:blah'),'blah:blah');
|
||||
TestFuncs(106,ExtractFileDrive('C:/blah:blah'),'');
|
||||
|
||||
TestFuncs(107,ExtractFilePath('./\'),'./');
|
||||
TestFuncs(108,ExtractFileName('./\'),'\');
|
||||
TestFuncs(109,ExtractFileDrive('./\'),'');
|
||||
|
||||
TestFuncs(110,ExtractFilePath('./c:'),'./');
|
||||
TestFuncs(111,ExtractFileName('./c:'),'c:');
|
||||
TestFuncs(112,ExtractFileDrive('./c:'),'');
|
||||
|
||||
TestFuncs(113,ExtractFilePath('\\server\share\file'),'');
|
||||
TestFuncs(114,ExtractFileName('\\server\share\file'),'\\server\share\file');
|
||||
TestFuncs(115,ExtractFileDrive('\\server\share\file'),'');
|
||||
|
||||
// Default Windows/DOS/SO2
|
||||
AllowDirectorySeparators:=['/','\'];
|
||||
AllowDriveSeparators:=[':'];
|
||||
TestFuncs(201,ExtractFilePath('./:'),'./:');
|
||||
TestFuncs(202,ExtractFileName('./:'),'');
|
||||
TestFuncs(203,ExtractFileDrive('./:'),'');
|
||||
|
||||
TestFuncs(204,ExtractFilePath('C:/blah:blah'),'C:/blah:');
|
||||
TestFuncs(205,ExtractFileName('C:/blah:blah'),'blah');
|
||||
TestFuncs(206,ExtractFileDrive('C:/blah:blah'),'C:');
|
||||
|
||||
TestFuncs(207,ExtractFilePath('./\'),'./\');
|
||||
TestFuncs(208,ExtractFileName('./\'),'');
|
||||
TestFuncs(209,ExtractFileDrive('./\'),'');
|
||||
|
||||
TestFuncs(210,ExtractFilePath('./c:'),'./c:');
|
||||
TestFuncs(211,ExtractFileName('./c:'),'');
|
||||
TestFuncs(212,ExtractFileDrive('./c:'),'');
|
||||
|
||||
TestFuncs(213,ExtractFilePath('\\server\share\file'),'\\server\share\');
|
||||
TestFuncs(214,ExtractFileName('\\server\share\file'),'file');
|
||||
TestFuncs(215,ExtractFileDrive('\\server\share\file'),'\\server');
|
||||
|
||||
// Windows/DOS/SO2 Delphi Compatibility
|
||||
AllowDirectorySeparators:=['\'];
|
||||
AllowDriveSeparators:=[':'];
|
||||
TestFuncs(301,ExtractFilePath('./:'),'./:');
|
||||
TestFuncs(302,ExtractFileName('./:'),'');
|
||||
TestFuncs(303,ExtractFileDrive('./:'),'');
|
||||
|
||||
TestFuncs(304,ExtractFilePath('C:/blah:blah'),'C:/blah:');
|
||||
TestFuncs(305,ExtractFileName('C:/blah:blah'),'blah');
|
||||
TestFuncs(306,ExtractFileDrive('C:/blah:blah'),'C:');
|
||||
|
||||
TestFuncs(307,ExtractFilePath('./\'),'./\');
|
||||
TestFuncs(308,ExtractFileName('./\'),'');
|
||||
TestFuncs(309,ExtractFileDrive('./\'),'');
|
||||
|
||||
TestFuncs(310,ExtractFilePath('./c:'),'./c:');
|
||||
TestFuncs(311,ExtractFileName('./c:'),'');
|
||||
TestFuncs(312,ExtractFileDrive('./c:'),'');
|
||||
|
||||
TestFuncs(313,ExtractFilePath('\\server\share\file'),'\\server\share\');
|
||||
TestFuncs(314,ExtractFileName('\\server\share\file'),'file');
|
||||
TestFuncs(315,ExtractFileDrive('\\server\share\file'),'\\server');
|
||||
|
||||
if err then
|
||||
halt(1);
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user