* filename parsing

git-svn-id: trunk@10110 -
This commit is contained in:
peter 2008-01-29 23:58:29 +00:00
parent 7ceeb83014
commit eb00f047f3
2 changed files with 118 additions and 0 deletions

1
.gitattributes vendored
View File

@ -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

View 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.