From d6aa5bfe36aa73e8de865e5ea98897009ad3973d Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 28 Jun 2009 09:15:39 +0000 Subject: [PATCH] + test for mantis #10717 git-svn-id: trunk@13344 - --- .gitattributes | 1 + tests/webtbs/tw10717.pp | 141 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 tests/webtbs/tw10717.pp diff --git a/.gitattributes b/.gitattributes index 5e0073864b..918f86f505 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8969,6 +8969,7 @@ tests/webtbs/tw1068.pp svneol=native#text/plain tests/webtbs/tw10681.pp svneol=native#text/plain tests/webtbs/tw10684.pp svneol=native#text/plain tests/webtbs/tw1071.pp svneol=native#text/plain +tests/webtbs/tw10717.pp svneol=native#text/plain tests/webtbs/tw10727.pp svneol=native#text/plain tests/webtbs/tw1073.pp svneol=native#text/plain tests/webtbs/tw10736.pp svneol=native#text/plain diff --git a/tests/webtbs/tw10717.pp b/tests/webtbs/tw10717.pp new file mode 100644 index 0000000000..1b532b9f72 --- /dev/null +++ b/tests/webtbs/tw10717.pp @@ -0,0 +1,141 @@ +program filefunctest; + +{$IFDEF FPC} + {$mode objfpc}{$H+} +{$ENDIF} + +uses + SysUtils; + + +type + tsingletestresults = array[1..5] of string; + tresults = array[1..5] of tsingletestresults; +const +{$ifdef unix} + results: tresults = + ( + ( + 'ExtractFilePath on ''./:'' = ''./''', + 'ExtractFileName on ''./:'' = '':''', + 'ExtractFileDrive on ''./:'' = ''''', + 'IncludeTrailingPathDelimiter on ''./:'' = ''./:/''', + 'ExcludeTrailingPathDelimiter on ''./:'' = ''./:''' + ), + + ( + 'ExtractFilePath on ''C:/blah:blah'' = ''C:/''', + 'ExtractFileName on ''C:/blah:blah'' = ''blah:blah''', + 'ExtractFileDrive on ''C:/blah:blah'' = ''''', + 'IncludeTrailingPathDelimiter on ''C:/blah:blah'' = ''C:/blah:blah/''', + 'ExcludeTrailingPathDelimiter on ''C:/blah:blah'' = ''C:/blah:blah''' + ), + + ( + 'ExtractFilePath on ''./\'' = ''./''', + 'ExtractFileName on ''./\'' = ''\''', + 'ExtractFileDrive on ''./\'' = ''''', + 'IncludeTrailingPathDelimiter on ''./\'' = ''./\/''', + 'ExcludeTrailingPathDelimiter on ''./\'' = ''./\''' + ), + + ( + 'ExtractFilePath on ''./c:'' = ''./''', + 'ExtractFileName on ''./c:'' = ''c:''', + 'ExtractFileDrive on ''./c:'' = ''''', + 'IncludeTrailingPathDelimiter on ''./c:'' = ''./c:/''', + 'ExcludeTrailingPathDelimiter on ''./c:'' = ''./c:''' + ), + + ( + 'ExtractFilePath on ''\\server\share\file'' = ''''', + 'ExtractFileName on ''\\server\share\file'' = ''\\server\share\file''', + 'ExtractFileDrive on ''\\server\share\file'' = ''''', + 'IncludeTrailingPathDelimiter on ''\\server\share\file'' = ''\\server\share\file/''', + 'ExcludeTrailingPathDelimiter on ''\\server\share\file'' = ''\\server\share\file''' + ) + ); +{$else} + results: tresults = + ( + ( + 'ExtractFilePath on ''./:'' = ''./:''', + 'ExtractFileName on ''./:'' = ''''', + 'ExtractFileDrive on ''./:'' = ''''', + 'IncludeTrailingPathDelimiter on ''./:'' = ''./:\''', + 'ExcludeTrailingPathDelimiter on ''./:'' = ''./:''' + ), + + ( + 'ExtractFilePath on ''C:/blah:blah'' = ''C:/blah:''', + 'ExtractFileName on ''C:/blah:blah'' = ''blah''', + 'ExtractFileDrive on ''C:/blah:blah'' = ''C:''', + 'IncludeTrailingPathDelimiter on ''C:/blah:blah'' = ''C:/blah:blah\''', + 'ExcludeTrailingPathDelimiter on ''C:/blah:blah'' = ''C:/blah:blah''' + ), + + ( + 'ExtractFilePath on ''./\'' = ''./\''', + 'ExtractFileName on ''./\'' = ''''', + 'ExtractFileDrive on ''./\'' = ''''', + 'IncludeTrailingPathDelimiter on ''./\'' = ''./\''', + 'ExcludeTrailingPathDelimiter on ''./\'' = ''./''' + ), + + ( + 'ExtractFilePath on ''./c:'' = ''./c:''', + 'ExtractFileName on ''./c:'' = ''''', + 'ExtractFileDrive on ''./c:'' = ''''', + 'IncludeTrailingPathDelimiter on ''./c:'' = ''./c:\''', + 'ExcludeTrailingPathDelimiter on ''./c:'' = ''./c:''' + ), + + ( + 'ExtractFilePath on ''\\server\share\file'' = ''\\server\share\''', + 'ExtractFileName on ''\\server\share\file'' = ''file''', + 'ExtractFileDrive on ''\\server\share\file'' = ''\\server\share''', + 'IncludeTrailingPathDelimiter on ''\\server\share\file'' = ''\\server\share\file\''', + 'ExcludeTrailingPathDelimiter on ''\\server\share\file'' = ''\\server\share\file''' + ) + ); +{$endif} + +procedure TestFuncs(const strPath: string; const results: tsingletestresults); +begin + WriteLn(Format('ExtractFilePath on ''%s'' = ''%s''', + [strPath, ExtractFilePath(strPath)])); + WriteLn(Format('ExtractFileName on ''%s'' = ''%s''', + [strPath, ExtractFileName(strPath)])); + WriteLn(Format('ExtractFileDrive on ''%s'' = ''%s''', + [strPath, ExtractFileDrive(strPath)])); + WriteLn(Format('IncludeTrailingPathDelimiter on ''%s'' = ''%s''', + [strPath, IncludeTrailingPathDelimiter(strPath)])); + WriteLn(Format('ExcludeTrailingPathDelimiter on ''%s'' = ''%s''', + [strPath, ExcludeTrailingPathDelimiter(strPath)])); + + if (Format('ExtractFilePath on ''%s'' = ''%s''',[strPath, ExtractFilePath(strPath)]) <> results[1]) then + halt(1); + if (Format('ExtractFileName on ''%s'' = ''%s''',[strPath, ExtractFileName(strPath)]) <> results[2]) then + halt(2); + if (Format('ExtractFileDrive on ''%s'' = ''%s''',[strPath, ExtractFileDrive(strPath)]) <> results[3]) then + halt(3); + if (Format('IncludeTrailingPathDelimiter on ''%s'' = ''%s''',[strPath, IncludeTrailingPathDelimiter(strPath)]) <> results[4]) then + halt(4); + if (Format('ExcludeTrailingPathDelimiter on ''%s'' = ''%s''',[strPath, ExcludeTrailingPathDelimiter(strPath)]) <> results[5]) then + halt(5); + + WriteLn; +end; + +begin +{$ifdef unix} + { make settings Kylix-compatible } + AllowDriveSeparators:=[]; + AllowDirectorySeparators:=['/']; +{$endif} + TestFuncs('./:',results[1]); + TestFuncs('C:/blah:blah',results[2]); + TestFuncs('./\',results[3]); + TestFuncs('./c:',results[4]); + TestFuncs('\\server\share\file',results[5]); +end.