summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/units/dos/tverify.pp
blob: 14751b3ea4011ac350544c8639f5a134b0c0f562 (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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
{******************************************}
{  Used to check the DOS unit              }
{------------------------------------------}
{  SetVerify / GetVerify routine testing   }
{******************************************}
Program tverify;

uses dos;

{$IFDEF GO32V2}
{$DEFINE SUPPORTS_VERIFY}
{$ENDIF}

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 TestVerify;
Var
 B: Boolean;
 s: string;
Begin
 WriteLn('----------------------------------------------------------------------');
 WriteLn('                       GETVERIFY/SETVERIFY                            ');
 WriteLn('----------------------------------------------------------------------');
 CheckDosError(0);
 s:='Testing GetVerify...';
 SetVerify(TRUE);
 CheckDosError(0);
 GetVerify(b);
 CheckDosError(0);
 if b then
   WriteLn(s+'Success.')
 else
  Begin
    WriteLn(s+'FAILURE.');
    has_errors:=true;
  end;
 s:='Testing GetVerify...';
 SetVerify(FALSE);
 CheckDosError(0);
 GetVerify(b);
 CheckDosError(0);
{ verify actually only works under dos       }
{ and always returns TRUE on other platforms }
{ not anymore (JM)                           }
 if NOT b then
   WriteLn(s+'Success.')
 else
  Begin
    WriteLn(s+'FAILURE.');
    has_errors:=true;
  end;
end;


Begin
  testverify;
  if has_errors then
    halt(1);
end.