* fix test so that it will work correctly on non-Windows as well

git-svn-id: trunk@49488 -
This commit is contained in:
svenbarth 2021-06-06 20:51:46 +00:00
parent a988c0fab1
commit e41c1ec118

View File

@ -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');