blob: ce8109f0838975848266b250523859c7214945e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
{ %INTERACTIVE }
{ this one is interactive because
on removable drives it will generate
alert boxes on some OS like windows }
{******************************************}
{ Used to check the DOS unit }
{------------------------------------------}
{ DiskFree / DiskSize routine testing }
{******************************************}
uses dos;
const
has_errors : boolean = false;
{ verifies that the DOSError variable is equal to }
{ the value requested. }
Procedure CheckDosError(err: Integer);
var
x : integer;
s :string;
Begin
Write('Verifying value of DOS Error...');
x := DosError;
case x of
0 : s := '(0): No Error.';
2 : s := '(2): File not found.';
3 : s := '(3): Path not found.';
5 : s := '(5): Access Denied.';
6 : s := '(6): Invalid File Handle.';
8 : s := '(8): Not enough memory.';
10 : s := '(10) : Invalid Environment.';
11 : s := '(11) : Invalid format.';
18 : s := '(18) : No more files.';
else
s := 'INVALID DOSERROR';
end;
if err <> x then
Begin
WriteLn('FAILURE. (Value should be ',err,' '+s+')');
has_errors:=true;
end
else
WriteLn('Success.');
end;
Procedure TestdiskSize;
Var
i : Integer;
Begin
WriteLn('----------------------------------------------------------------------');
WriteLn(' DISKSIZE/DISKFREE ');
WriteLn('----------------------------------------------------------------------');
WriteLn(' Note: Should return -1 on both functions if device is not ready. ');
WriteLn('----------------------------------------------------------------------');
CheckDosError(0);
{ Check Disksize / DiskFree routines }
for I:=0 to 20 do
Begin
Write('Disk unit ',i:2,' free size : ',DiskFree(i):10, ' Total Size: ',DiskSize(i):10);
WriteLn(' bytes.');
end;
CheckDosError(0);
end;
Begin
TestDiskSize;
if has_errors then
Halt(1);
end.
|