Ver código fonte

* add test for web bug #16651

git-svn-id: trunk@15456 -
Tomas Hajny 15 anos atrás
pai
commit
7d5b63042b
1 arquivos alterados com 28 adições e 5 exclusões
  1. 28 5
      tests/test/units/dos/tfexpand.pp

+ 28 - 5
tests/test/units/dos/tfexpand.pp

@@ -100,6 +100,7 @@ const
   {$ELSE MACOS}
    {$IFDEF UNIX}
  DirectorySeparator = '/';
+ DriveSeparator = '/';
  FileNameCaseSensitive = true;
    {$ELSE UNIX}
     {$IFDEF AMIGA}
@@ -150,12 +151,14 @@ begin
   for I := 1 to Length (S) do
    if S [I] = DirectorySeparator2 then
     S [I] := DirectorySeparator;
+{$IFNDEF FPC_FEXPAND_DRIVES}
  if DriveSeparator = DirectorySeparator then
-  begin
-   I := Pos (DirectorySeparator + DirectorySeparator, S);
-   if I <> 0 then
-    Delete (S, I, 1);
-  end;
+  I := Pos (DirectorySeparator + DirectorySeparator, S)
+ else
+  I := Pos (DriveSeparator, S);
+ if I <> 0 then
+  Delete (S, 1, I);
+{$ENDIF FPC_FEXPAND_DRIVES}
 end;
 
 procedure GetDir (Drive: byte; var Directory: string);
@@ -202,6 +205,13 @@ begin
 {$ENDIF DEBUG}
  Rslt := Translate (Rslt);
  Rslt2 := FExpand (Src);
+{$IFDEF DIRECT}
+ {$IFNDEF FPC_FEXPAND_DRIVES}
+ I := Pos (System.DriveSeparator, Rslt2);
+ if I <> 0 then
+  Delete (Rslt2, 1, I);
+ {$ENDIF FPC_FEXPAND_DRIVES}
+{$ENDIF DIRECT}
 {$IFNDEF UNIX}
  if (Length (Rslt2) > 1) and (Rslt2 [1] in ['a'..'z']) and (Rslt2[2]=DriveSep) then
    Rslt2 [1] := UpCase (Rslt2 [1]);
@@ -253,6 +263,11 @@ begin
  TestDir0 := TestDir;
 {$IFDEF DIRECT}
  XToDirect (TestDir);
+ {$IFNDEF FPC_FEXPAND_DRIVES}
+ I := Pos (System.DriveSeparator, TestDir);
+ if I <> 0 then
+  Delete (TestDir, 1, I);
+ {$ENDIF FPC_FEXPAND_DRIVES}
 {$ENDIF DIRECT}
  Assign (F, TestFileName);
  Rewrite (F);
@@ -263,6 +278,13 @@ begin
 {$ENDIF DIRECT}
 {$I+}
  GetDir (0, CurDir);
+{$IFDEF DIRECT}
+ {$IFNDEF FPC_FEXPAND_DRIVES}
+ I := Pos (System.DriveSeparator, CurDir);
+ if I <> 0 then
+  Delete (CurDir, 1, I);
+ {$ENDIF FPC_FEXPAND_DRIVES}
+{$ENDIF DIRECT}
 {$IFNDEF NODRIVEC}
  GetDir (3, CDir);
 {$ENDIF NODRIVEC}
@@ -326,6 +348,7 @@ if CDir [Length (CDir)] = DirSep then Check ('c:anything', CDir + 'anything')
  Check ('.' + DirSep + 'd', CurDir + DirSep + 'd');
  {$ENDIF NODOTS}
 {$ENDIF MACOS}
+ Check ('d' + DirSep + TestFileName, CurDir + DirSep + 'd' + DirSep + TestFileName);
  Check (' d', CurDir + DirSep + ' d');
  Check ('dd', CurDir + DirSep + 'dd');
 {$IFDEF MACOS}