mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 11:49:23 +02:00
Add a Delphi compatible test for passing of different string like types to UnicodeString/RawByteString parameters.
git-svn-id: trunk@24648 -
This commit is contained in:
parent
125a6a8720
commit
6ad761912f
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -11737,6 +11737,7 @@ tests/test/tstdhandle.pp svneol=native#text/plain
|
||||
tests/test/tstprocv.pp svneol=native#text/plain
|
||||
tests/test/tstring1.pp svneol=native#text/plain
|
||||
tests/test/tstring10.pp svneol=native#text/plain
|
||||
tests/test/tstring11.pp svneol=native#text/pascal
|
||||
tests/test/tstring2.pp svneol=native#text/plain
|
||||
tests/test/tstring3.pp svneol=native#text/plain
|
||||
tests/test/tstring4.pp svneol=native#text/plain
|
||||
|
73
tests/test/tstring11.pp
Normal file
73
tests/test/tstring11.pp
Normal file
@ -0,0 +1,73 @@
|
||||
program tstrtest;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
function Test1(const aValue: RawByteString): Integer; overload;
|
||||
begin
|
||||
Result := 1;
|
||||
end;
|
||||
|
||||
function Test1(const aValue: UnicodeString): Integer; overload;
|
||||
begin
|
||||
Result := 2;
|
||||
end;
|
||||
|
||||
function Test2(aValue: RawByteString): Integer; overload;
|
||||
begin
|
||||
Result := 3;
|
||||
end;
|
||||
|
||||
function Test2(aValue: UnicodeString): Integer; overload;
|
||||
begin
|
||||
Result := 4;
|
||||
end;
|
||||
|
||||
procedure CheckResult(aActual, aExpected: Integer);
|
||||
begin
|
||||
if aActual <> aExpected then begin
|
||||
Writeln('Actual: ', aActual, ' Expected: ', aExpected);
|
||||
Readln;
|
||||
Halt(1);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TestOpenArray(oac: array of AnsiChar; owc: array of WideChar);
|
||||
begin
|
||||
CheckResult(Test1(oac), 1);
|
||||
CheckResult(Test1(owc), 2);
|
||||
CheckResult(Test2(oac), 3);
|
||||
CheckResult(Test2(owc), 4);
|
||||
end;
|
||||
|
||||
var
|
||||
pwc: PWideChar;
|
||||
pac: PAnsiChar;
|
||||
aac: array[0..20] of AnsiChar;
|
||||
awc: array[0..20] of WideChar;
|
||||
wc: WideChar;
|
||||
ac: AnsiChar;
|
||||
ss: ShortString;
|
||||
begin
|
||||
CheckResult(Test1(pac), 1);
|
||||
CheckResult(Test1(pwc), 2);
|
||||
CheckResult(Test2(pac), 3);
|
||||
CheckResult(Test2(pwc), 4);
|
||||
|
||||
CheckResult(Test1(ac), 1);
|
||||
CheckResult(Test1(wc), 2);
|
||||
CheckResult(Test2(ac), 3);
|
||||
CheckResult(Test2(wc), 4);
|
||||
|
||||
CheckResult(Test1(aac), 1);
|
||||
CheckResult(Test1(awc), 2);
|
||||
CheckResult(Test2(aac), 3);
|
||||
CheckResult(Test2(awc), 4);
|
||||
|
||||
CheckResult(Test1(ss), 1);
|
||||
CheckResult(Test2(ss), 3);
|
||||
|
||||
TestOpenArray([], []);
|
||||
|
||||
Writeln('ok');
|
||||
Readln;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user