* if the creation of the method implementation raises ENotImplemented we ignore the test as not all calling conventions might be supported currently (e.g. on i386 only "register" is for now)

git-svn-id: trunk@42151 -
This commit is contained in:
svenbarth 2019-05-31 15:41:06 +00:00
parent 4adce9b1bd
commit 601f0bd6b1

View File

@ -426,7 +426,12 @@ begin
InputUntypedTypes[i + 1] := Nil;
end;
impl := method.CreateImplementation({$ifdef fpc}@{$endif}OnHandleInvokable);
try
impl := method.CreateImplementation({$ifdef fpc}@{$endif}OnHandleInvokable);
except
on e: ENotImplemented do
Exit;
end;
CheckNotNull(impl, 'Method implementation is Nil');
mrec.Data := Self;
@ -501,7 +506,12 @@ begin
InputUntypedTypes[i] := Nil;
end;
impl := proc.CreateImplementation({$ifdef fpc}@{$endif}OnHandleInvokable);
try
impl := proc.CreateImplementation({$ifdef fpc}@{$endif}OnHandleInvokable);
except
on e: ENotImplemented do
Exit;
end;
CheckNotNull(impl, 'Method implementation is Nil');
cp := impl.CodeAddress;
@ -555,7 +565,12 @@ procedure TTestImpl.TestIntfMethods;
var
intf: ITestInterface;
begin
intf := TVirtualInterface.Create(PTypeInfo(TypeInfo(ITestInterface)), {$ifdef fpc}@{$endif}OnHandleIntfMethod) as ITestInterface;
try
intf := TVirtualInterface.Create(PTypeInfo(TypeInfo(ITestInterface)), {$ifdef fpc}@{$endif}OnHandleIntfMethod) as ITestInterface;
except
on e: ENotImplemented do
Exit;
end;
Check(Assigned(intf), 'ITestInterface instance is Nil');
{$ifdef fpc}specialize{$endif}GenDoIntfImpl<ITestInterface>(intf, 1, [], [], [], TValue.Empty);