Browse Source

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

git-svn-id: trunk@49488 -
svenbarth 4 years ago
parent
commit
e41c1ec118
1 changed files with 24 additions and 2 deletions
  1. 24 2
      tests/test/tcustomvar1.pp

+ 24 - 2
tests/test/tcustomvar1.pp

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