mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 22:14:25 +02:00
* fix test so that it will work correctly on non-Windows as well
git-svn-id: trunk@49488 -
This commit is contained in:
parent
a988c0fab1
commit
e41c1ec118
@ -70,6 +70,14 @@ begin
|
|||||||
end else begin
|
end else begin
|
||||||
TVarData(v).VType := t;
|
TVarData(v).VType := t;
|
||||||
case t of
|
case t of
|
||||||
|
varStrArg: begin
|
||||||
|
TVarData(v).VType := varString;
|
||||||
|
AnsiString(TVarData(v).VString) := AnsiString(StrPas(PPWideChar(arg)^));
|
||||||
|
end;
|
||||||
|
varUStrArg: begin
|
||||||
|
TVarData(v).VType := varUString;
|
||||||
|
UnicodeString(TVarData(v).VUString) := StrPas(PPWideChar(arg)^);
|
||||||
|
end;
|
||||||
varSingle,
|
varSingle,
|
||||||
varSmallint,
|
varSmallint,
|
||||||
varInteger,
|
varInteger,
|
||||||
@ -83,7 +91,7 @@ begin
|
|||||||
TVarData(v).VAny := PPointer(arg)^;
|
TVarData(v).VAny := PPointer(arg)^;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if v <> argvalues[i] then begin
|
if (not VarIsStr(v) and (v <> argvalues[i])) or (VarIsStr(v) and (UnicodeString(v) <> UnicodeString(argvalues[i]))) then begin
|
||||||
Writeln('Arg ', i, ' value: got: ', String(v), ', expected: ', String(argvalues[i]));
|
Writeln('Arg ', i, ' value: got: ', String(v), ', expected: ', String(argvalues[i]));
|
||||||
Halt(1);
|
Halt(1);
|
||||||
end;
|
end;
|
||||||
@ -101,8 +109,22 @@ begin
|
|||||||
ref := (aType and varByRef) <> 0;
|
ref := (aType and varByRef) <> 0;
|
||||||
aType := aType and not varByRef;
|
aType := aType and not varByRef;
|
||||||
case aType of
|
case aType of
|
||||||
|
{$ifndef windows}
|
||||||
|
varOleStr:
|
||||||
|
Result := varUStrArg;
|
||||||
|
{$endif}
|
||||||
varString:
|
varString:
|
||||||
|
{$ifdef windows}
|
||||||
Result := varOleStr;
|
Result := varOleStr;
|
||||||
|
{$else}
|
||||||
|
Result := varUStrArg; { not varStrArg }
|
||||||
|
{$endif}
|
||||||
|
varUString:
|
||||||
|
{$ifdef windows}
|
||||||
|
Result := varOleStr;
|
||||||
|
{$else}
|
||||||
|
Result := varUStrArg;
|
||||||
|
{$endif}
|
||||||
otherwise
|
otherwise
|
||||||
Result := aType;
|
Result := aType;
|
||||||
end;
|
end;
|
||||||
@ -134,7 +156,7 @@ begin
|
|||||||
argnames[1] := 'Date';
|
argnames[1] := 'Date';
|
||||||
argnames[0] := 'Foobar';
|
argnames[0] := 'Foobar';
|
||||||
argvalues[1] := 42;
|
argvalues[1] := 42;
|
||||||
argvalues[0] := 'Hello';
|
argvalues[0] := UnicodeString('Hello');
|
||||||
argtypes[1] := ConvertArgType(TVarData(argvalues[1]).VType);
|
argtypes[1] := ConvertArgType(TVarData(argvalues[1]).VType);
|
||||||
argtypes[0] := ConvertArgType(TVarData(argvalues[0]).VType);
|
argtypes[0] := ConvertArgType(TVarData(argvalues[0]).VType);
|
||||||
v.&Begin(Date:=42,Foobar:='Hello');
|
v.&Begin(Date:=42,Foobar:='Hello');
|
||||||
|
Loading…
Reference in New Issue
Block a user