summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/tweaklib2.pp
blob: a51f9107c7f3eeddb3b3648fd3119d1fbb6414df (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
{ %NEEDLIBRARY }

{$ifdef mswindows}
 {$define supported}
{$endif mswindows}
{$ifdef Unix}
 {$define supported}
{$endif Unix}
{$ifndef fpc}
   {$define supported}
{$endif}

{$ifdef supported}

const
  {$ifdef windows}
    libname='tweaklib1.dll';
  {$else}
    libname='tweaklib1';
    {$linklib tweaklib1}
  {$endif}

var
{$ifndef darwin}
  _myvar: cardinal; weakexternal libname name '_MYVAR';
  _myvar2: cardinal; weakexternal libname name '_MYVAR2';
{$else darwin}
  { needs to be fixed in the compiler }
  _myvar: cardinal; weakexternal libname name 'MYVAR';
  _myvar2: cardinal; weakexternal libname name 'MYVAR2';
{$endif darwin}

function _test: cardinal; weakexternal libname name '_TEST';

procedure _test2; weakexternal libname name '_TEST2';

begin
{$ifdef darwin}
  if (paramcount=0) then
    halt(0);
{$endif}
  if not assigned(@_test) then
    halt(1);
  if assigned(@_test2) then
    halt(2);
  if _test<>$facef00d then
    halt(3);
  if not assigned(@_myvar) then
    halt(4);
  if assigned(@_myvar2) then
    halt(5);
  if (_myvar<>$12345678) then
    halt(6);
end.
{$else supported}
begin
  { no library support }
end.
{$endif supported}