tidos.pp 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. { %INTERACTIVE }
  2. {
  3. $Id$
  4. Program to test DOS unit by Peter Vreman.
  5. Only main TP functions are tested (nothing with Interrupts/Break/Verify).
  6. }
  7. {$V-}
  8. program tesidos;
  9. uses dos;
  10. { These should be defined for each operating system to be tested }
  11. { NOEXESUFFIX = No .EXE to prepend to prefix the file with to get }
  12. { a file executable. }
  13. {$ifdef unix}
  14. {$DEFINE NOEXESUFFIX}
  15. {$endif}
  16. {$ifdef amiga}
  17. {$DEFINE NOEXESUFFIX}
  18. {$endif}
  19. procedure TestInfo;
  20. var
  21. dt : DateTime;
  22. ptime : longint;
  23. wday : word;
  24. HSecs : word;
  25. begin
  26. writeln;
  27. writeln('Info Functions');
  28. writeln('**************');
  29. writeln('Dosversion : ',lo(DosVersion),'.',hi(DosVersion));
  30. GetDate(Dt.Year,Dt.Month,Dt.Day,wday);
  31. writeln('Current Date (MM-DD-YYYY) : ',Dt.Month,'-',Dt.Day,'-',Dt.Year,' weekday ',wday);
  32. GetTime(Dt.Hour,Dt.Min,Dt.Sec,HSecs);
  33. writeln('Current Time (HH:MM:SS) : ',Dt.Hour,':',Dt.Min,':',Dt.Sec,' hsecs ',HSecs);
  34. PackTime(Dt,ptime);
  35. writeln('Packed like dos: ',ptime);
  36. UnpackTime(ptime,DT);
  37. writeln('Unpacked again (MM-DD-YYYY) ',Dt.Month,'-',Dt.Day,'-',Dt.Year,' ',Dt.Hour,':',Dt.Min,':',Dt.Sec);
  38. writeln;
  39. write('Press Enter');
  40. Readln;
  41. end;
  42. procedure TestEnvironment;
  43. var
  44. i : longint;
  45. begin
  46. writeln;
  47. writeln('Environment Functions');
  48. writeln('*********************');
  49. writeln('Amount of environment strings : ',EnvCount);
  50. writeln('GetEnv TERM : ',GetEnv('TERM'));
  51. writeln('GetEnv HOST : ',GetEnv('HOST'));
  52. writeln('GetEnv PATH : ',GetEnv('PATH'));
  53. writeln('GetEnv SHELL: ',GetEnv('SHELL'));
  54. write('Press Enter for all Environment Strings using EnvStr()');
  55. Readln;
  56. for i:=1 to EnvCount do
  57. writeln(EnvStr(i));
  58. write('Press Enter');
  59. Readln;
  60. end;
  61. procedure TestExec;
  62. begin
  63. writeln;
  64. writeln('Exec Functions');
  65. writeln('**************');
  66. write('Press Enter for an Exec of ''hello -good -day''');
  67. Readln;
  68. SwapVectors;
  69. {$ifdef noexesuffix}
  70. Exec('hello','-good -day');
  71. {$else}
  72. Exec('hello.exe','-good -day');
  73. {$endif}
  74. SwapVectors;
  75. writeln('Exit should be 213 : ',DosExitCode);
  76. writeln('Error code should be 0 : ',DosError);
  77. write('Press Enter');
  78. Readln;
  79. end;
  80. procedure TestDisk;
  81. var
  82. Dir : SearchRec;
  83. DT : DateTime;
  84. begin
  85. writeln;
  86. writeln('Disk Functions');
  87. writeln('**************');
  88. writeln('DiskFree 0 : ',DiskFree(0));
  89. writeln('DiskSize 0 : ',DiskSize(0));
  90. writeln('DiskSize 1 : ',DiskSize(1)); { this is a: on dos ??! }
  91. writeln('DiskSize 3 : ',DiskSize(3)); { this is c: on dos }
  92. {$IFDEF Unix}
  93. AddDisk('/fd0');
  94. writeln('DiskSize 4 : ',DiskSize(4));
  95. {$ENDIF}
  96. write('Press Enter for FindFirst/FindNext Test');
  97. Readln;
  98. FindFirst('*.*',$20,Dir);
  99. while (DosError=0) do
  100. begin
  101. UnpackTime(dir.Time,DT);
  102. Writeln(dir.Name,' ',dir.Size,' ',DT.Year,'-',DT.Month,'-',DT.Day);
  103. FindNext(Dir);
  104. end;
  105. write('Press Enter');
  106. Readln;
  107. end;
  108. procedure TestFile;
  109. var
  110. test,
  111. name,dir,ext : string;
  112. begin
  113. writeln;
  114. writeln('File(name) Functions');
  115. writeln('********************');
  116. {$ifdef unix }
  117. test:='/usr/local/bin/ppc.so';
  118. writeln('FSplit(',test,')');
  119. FSplit(test,dir,name,ext);
  120. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  121. test:='/usr/bin.1/ppc';
  122. writeln('FSplit(',test,')');
  123. FSplit(test,dir,name,ext);
  124. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  125. test:='mtools.tar.gz';
  126. writeln('FSplit(',test,')');
  127. FSplit(test,dir,name,ext);
  128. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  129. Writeln('Expanded dos.pp : ',FExpand('dos.pp'));
  130. Writeln('Expanded ../dos.pp : ',FExpand('../dos.pp'));
  131. Writeln('Expanded /usr/local/dos.pp : ',FExpand('/usr/local/dos.pp'));
  132. Writeln('Expanded ../dos/./../././dos.pp : ',FExpand('../dos/./../././dos.pp'));
  133. test:='../;/usr/;/usr/bin/;/usr/bin;/bin/;';
  134. {$else not linux }
  135. test:='\usr\local\bin\ppc.so';
  136. writeln('FSplit(',test,')');
  137. FSplit(test,dir,name,ext);
  138. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  139. test:='\usr\bin.1\ppc';
  140. writeln('FSplit(',test,')');
  141. FSplit(test,dir,name,ext);
  142. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  143. test:='mtools.tar.gz';
  144. writeln('FSplit(',test,')');
  145. FSplit(test,dir,name,ext);
  146. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  147. Writeln('Expanded dos.pp : ',FExpand('dos.pp'));
  148. Writeln('Expanded ..\dos.pp : ',FExpand('..\dos.pp'));
  149. Writeln('Expanded \usr\local\dos.pp : ',FExpand('\usr\local\dos.pp'));
  150. Writeln('Expanded ..\dos\.\..\.\.\dos.pp : ',FExpand('..\dos\.\..\.\.\dos.pp'));
  151. test:='..\;\usr\;\usr\bin\;\usr\bin;\bin\;';
  152. {$endif not linux}
  153. test:=test+getenv('PATH');
  154. {$ifdef NOEXESUFFIX}
  155. Writeln('FSearch ls: ',FSearch('ls',test));
  156. {$else not noexesuffix}
  157. Writeln('FSearch ls: ',FSearch('ls.exe',test));
  158. {$endif not noexesuffix}
  159. Writeln('Empty FSearch (should return empty string):',FSearch('',test));
  160. write('Press Enter');
  161. Readln;
  162. end;
  163. begin
  164. TestInfo;
  165. TestEnvironment;
  166. TestExec;
  167. TestDisk;
  168. TestFile;
  169. end.
  170. {
  171. $Log$
  172. Revision 1.1 2002-11-18 09:49:49 pierre
  173. * tried to make as many as possible tests non interactive
  174. Revision 1.7 2002/10/20 11:47:39 carl
  175. * add format date to make test clearer
  176. Revision 1.6 2002/09/07 15:40:56 peter
  177. * old logs removed and tabs fixed
  178. Revision 1.5 2002/07/06 11:46:08 carl
  179. + fsearch testing added
  180. Revision 1.4 2002/06/01 19:08:52 marco
  181. * Renamefest
  182. }