summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tover1.pp
blob: f2309b6f214046266a38b7761fb0eef24edd1e37 (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
program tover1;

const
  RESULT_PCHAR = 'pchar parameter call';
  RESULT_ANSI  = 'ansistring parameter call';
  RESULT_SHORT = 'shortstring parameter call';
  RESULT_WIDE  = 'widestring parameter call';

{ This tests method overloads, to verify
  if they conform to correct type conversion
}
function test_string(s: shortstring): shortstring;
Begin
  test_string := RESULT_SHORT;
end;

{$ifndef ver1_0}
function test_string(s: widestring): shortstring;
Begin
  test_string := RESULT_WIDE;
end;
{$endif}


function test_string(s: ansistring): shortstring;
Begin
  test_string := RESULT_ANSI;
end;

function test_string(p:pchar): shortstring;
begin
  test_string := RESULT_PCHAR;
end;

procedure fail;
 begin
   writeln('Failure!');
   Halt(1);
 end;

var
  short_string : shortstring;
  ansi_string : ansistring;
{$ifndef ver1_0}
  wide_string : widestring;
{$endif}
  p_string : pchar;
  s: shortstring;
Begin
  p_string:=nil;
  ansi_string:='';
  short_string:='';
{$ifndef ver1_0}
  wide_string:='';
{$endif}
  Write('Test of overloaded call to string routines...');
  { test parameter call }
  s:=test_string(short_string);
  if s <> RESULT_SHORT then
    fail;
  s:=test_string(ansi_string);
  if s <> RESULT_ANSI then
    fail;
{$ifndef ver1_0}
  s:=test_string(wide_string);
  if s <> RESULT_WIDE then
    fail;
{$endif}
  s:=test_string(p_string);
  if s <> RESULT_PCHAR then
    fail;
  WriteLn('Success!');
end.