tdos.pp 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. procedure TestInfo;
  11. var
  12. dt : DateTime;
  13. ptime : longint;
  14. wday : word;
  15. HSecs : word;
  16. begin
  17. writeln;
  18. writeln('Info Functions');
  19. writeln('**************');
  20. writeln('Dosversion : ',lo(DosVersion),'.',hi(DosVersion));
  21. GetDate(Dt.Year,Dt.Month,Dt.Day,wday);
  22. writeln('Current Date : ',Dt.Month,'-',Dt.Day,'-',Dt.Year,' weekday ',wday);
  23. GetTime(Dt.Hour,Dt.Min,Dt.Sec,HSecs);
  24. writeln('Current Time : ',Dt.Hour,':',Dt.Min,':',Dt.Sec,' hsecs ',HSecs);
  25. PackTime(Dt,ptime);
  26. writeln('Packed like dos: ',ptime);
  27. UnpackTime(ptime,DT);
  28. writeln('Unpacked again : ',Dt.Month,'-',Dt.Day,'-',Dt.Year,' ',Dt.Hour,':',Dt.Min,':',Dt.Sec);
  29. writeln;
  30. write('Press Enter');
  31. Readln;
  32. end;
  33. procedure TestEnvironment;
  34. var
  35. i : longint;
  36. begin
  37. writeln;
  38. writeln('Environment Functions');
  39. writeln('*********************');
  40. writeln('Amount of environment strings : ',EnvCount);
  41. writeln('GetEnv TERM : ',GetEnv('TERM'));
  42. writeln('GetEnv HOST : ',GetEnv('HOST'));
  43. writeln('GetEnv PATH : ',GetEnv('PATH'));
  44. writeln('GetEnv SHELL: ',GetEnv('SHELL'));
  45. write('Press Enter for all Environment Strings using EnvStr()');
  46. Readln;
  47. for i:=1 to EnvCount do
  48. writeln(EnvStr(i));
  49. write('Press Enter');
  50. Readln;
  51. end;
  52. procedure TestExec;
  53. begin
  54. writeln;
  55. writeln('Exec Functions');
  56. writeln('**************');
  57. write('Press Enter for an Exec of ''ls -la''');
  58. Readln;
  59. {$ifdef linux }
  60. Exec('ls','-la');
  61. {$else not linux }
  62. SwapVectors;
  63. Exec('ls','-la');
  64. SwapVectors;
  65. {$endif not linux }
  66. write('Press Enter');
  67. Readln;
  68. end;
  69. procedure TestDisk;
  70. var
  71. Dir : SearchRec;
  72. begin
  73. writeln;
  74. writeln('Disk Functions');
  75. writeln('**************');
  76. writeln('DiskFree 0 : ',DiskFree(0));
  77. writeln('DiskSize 0 : ',DiskSize(0));
  78. {writeln('DiskSize 1 : ',DiskSize(1)); this is a: on dos ??! }
  79. writeln('DiskSize 1 : ',DiskSize(3)); { this is c: on dos }
  80. {$IFDEF LINUX}
  81. AddDisk('/fd0');
  82. writeln('DiskSize 4 : ',DiskSize(4));
  83. {$ENDIF}
  84. write('Press Enter for FindFirst/FindNext Test');
  85. Readln;
  86. FindFirst('*.*',$20,Dir);
  87. while (DosError=0) do
  88. begin
  89. Writeln(dir.Name,' ',dir.Size);
  90. FindNext(Dir);
  91. end;
  92. write('Press Enter');
  93. Readln;
  94. end;
  95. procedure TestFile;
  96. var
  97. test,
  98. name,dir,ext : string;
  99. begin
  100. writeln;
  101. writeln('File(name) Functions');
  102. writeln('********************');
  103. {$ifdef linux }
  104. test:='/usr/local/bin/ppc.so';
  105. writeln('FSplit(',test,')');
  106. FSplit(test,dir,name,ext);
  107. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  108. test:='/usr/bin.1/ppc';
  109. writeln('FSplit(',test,')');
  110. FSplit(test,dir,name,ext);
  111. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  112. test:='mtools.tar.gz';
  113. writeln('FSplit(',test,')');
  114. FSplit(test,dir,name,ext);
  115. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  116. Writeln('Expanded dos.pp : ',FExpand('dos.pp'));
  117. Writeln('Expanded ../dos.pp : ',FExpand('../dos.pp'));
  118. Writeln('Expanded /usr/local/dos.pp : ',FExpand('/usr/local/dos.pp'));
  119. Writeln('Expanded ../dos/./../././dos.pp : ',FExpand('../dos/./../././dos.pp'));
  120. test:='../;/usr/;/usr/bin/;/usr/bin;/bin/;';
  121. {$else not linux }
  122. test:='\usr\local\bin\ppc.so';
  123. writeln('FSplit(',test,')');
  124. FSplit(test,dir,name,ext);
  125. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  126. test:='\usr\bin.1\ppc';
  127. writeln('FSplit(',test,')');
  128. FSplit(test,dir,name,ext);
  129. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  130. test:='mtools.tar.gz';
  131. writeln('FSplit(',test,')');
  132. FSplit(test,dir,name,ext);
  133. writeln('dir: ',dir,' name: ',name,' ext: ',ext);
  134. Writeln('Expanded dos.pp : ',FExpand('dos.pp'));
  135. Writeln('Expanded ..\dos.pp : ',FExpand('..\dos.pp'));
  136. Writeln('Expanded \usr\local\dos.pp : ',FExpand('\usr\local\dos.pp'));
  137. Writeln('Expanded ..\dos\.\..\.\.\dos.pp : ',FExpand('..\dos\.\..\.\.\dos.pp'));
  138. test:='..\;\usr\;\usr\bin\;\usr\bin;\bin\;';
  139. {$endif not linux}
  140. test:=test+getenv('PATH');
  141. {$ifdef linux}
  142. Writeln('FSearch ls: ',FSearch('ls',test));
  143. {$else not linux}
  144. Writeln('FSearch ls: ',FSearch('ls.exe',test));
  145. {$endif not linux}
  146. write('Press Enter');
  147. Readln;
  148. end;
  149. begin
  150. TestInfo;
  151. TestEnvironment;
  152. TestExec;
  153. TestDisk;
  154. TestFile;
  155. end.