mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2026-01-20 16:11:37 +01:00
118 lines
3.8 KiB
ObjectPascal
118 lines
3.8 KiB
ObjectPascal
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\share');
|
|
|
|
// 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\share');
|
|
|
|
// 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\share');
|
|
|
|
if err then
|
|
halt(1);
|
|
end.
|
|
|