mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 20:39:25 +02:00
+ some extra (already working) tests for class references
git-svn-id: trunk@15467 -
This commit is contained in:
parent
e26cf54cc0
commit
267cb54cd6
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -9297,6 +9297,8 @@ tests/test/tobjc31.pp svneol=native#text/plain
|
||||
tests/test/tobjc32.pp svneol=native#text/plain
|
||||
tests/test/tobjc32a.pp svneol=native#text/plain
|
||||
tests/test/tobjc32b.pp svneol=native#text/plain
|
||||
tests/test/tobjc34.pp svneol=native#text/plain
|
||||
tests/test/tobjc34a.pp svneol=native#text/plain
|
||||
tests/test/tobjc4.pp svneol=native#text/plain
|
||||
tests/test/tobjc4a.pp svneol=native#text/plain
|
||||
tests/test/tobjc5.pp svneol=native#text/plain
|
||||
|
54
tests/test/tobjc34.pp
Normal file
54
tests/test/tobjc34.pp
Normal file
@ -0,0 +1,54 @@
|
||||
{ %target=darwin }
|
||||
{ %cpu=powerpc,powerpc64,i386,x86_64,arm }
|
||||
|
||||
{ Written by Jonas Maebe in 2010, released into the public domain }
|
||||
|
||||
{$mode objfpc}
|
||||
{$modeswitch objectivec1}
|
||||
|
||||
type
|
||||
MyOverride = objcclass(NSObject)
|
||||
class procedure testClassOverride; message 'testClassOverride';
|
||||
end;
|
||||
|
||||
MyOverride2 = objcclass(MyOverride)
|
||||
class procedure testClassOverride; override;
|
||||
end;
|
||||
|
||||
tmyoverrideclass = class of NSObject;
|
||||
|
||||
var
|
||||
selfshouldbe: tmyoverrideclass;
|
||||
|
||||
class procedure MyOverride.testClassOverride;
|
||||
begin
|
||||
if (self<>selfshouldbe) then
|
||||
halt(20);
|
||||
|
||||
writeln('MyOverride.testClassOverride');
|
||||
end;
|
||||
|
||||
class procedure MyOverride2.testClassOverride;
|
||||
begin
|
||||
if (self<>selfshouldbe) then
|
||||
halt(21);
|
||||
|
||||
writeln('MyOverride2.testClassOverride');
|
||||
end;
|
||||
|
||||
var
|
||||
a: MyOverride;
|
||||
classclass: tmyoverrideclass;
|
||||
begin
|
||||
classclass:=MyOverride;
|
||||
a:=classclass.alloc.init;
|
||||
selfshouldbe:=MyOverride;
|
||||
a.testClassOverride;
|
||||
a.release;
|
||||
|
||||
classclass:=MyOverride2;
|
||||
a:=classclass.alloc.init;
|
||||
selfshouldbe:=MyOverride2;
|
||||
a.testClassOverride;
|
||||
a.release;
|
||||
end.
|
46
tests/test/tobjc34a.pp
Normal file
46
tests/test/tobjc34a.pp
Normal file
@ -0,0 +1,46 @@
|
||||
{ %fail }
|
||||
{ %target=darwin }
|
||||
{ %cpu=powerpc,powerpc64,i386,x86_64,arm }
|
||||
|
||||
{ Written by Jonas Maebe in 2010, released into the public domain }
|
||||
|
||||
{$mode objfpc}
|
||||
{$modeswitch objectivec1}
|
||||
|
||||
type
|
||||
MyOverride = objcclass(NSObject)
|
||||
class procedure testClassOverride; message 'testClassOverride';
|
||||
end;
|
||||
|
||||
MyOverride2 = objcclass(MyOverride)
|
||||
class procedure testClassOverride; override;
|
||||
end;
|
||||
|
||||
tmyoverrideclass = class of NSObject;
|
||||
|
||||
var
|
||||
selfshouldbe: tmyoverrideclass;
|
||||
|
||||
class procedure MyOverride.testClassOverride;
|
||||
begin
|
||||
if (self<>selfshouldbe) then
|
||||
halt(20);
|
||||
|
||||
writeln('MyOverride.testClassOverride');
|
||||
end;
|
||||
|
||||
class procedure MyOverride2.testClassOverride;
|
||||
begin
|
||||
if (self<>selfshouldbe) then
|
||||
halt(21);
|
||||
|
||||
writeln('MyOverride2.testClassOverride');
|
||||
end;
|
||||
|
||||
var
|
||||
a: MyOverride;
|
||||
classclass: tmyoverrideclass;
|
||||
begin
|
||||
classclass:=MyOverride;
|
||||
a:=classclass.init;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user