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.
|