Browse Source

tests: add string constant overload precedence tests when default string type is UnicodeString

git-svn-id: trunk@21190 -
paul 13 years ago
parent
commit
50ddd16619
3 changed files with 121 additions and 0 deletions
  1. 2 0
      .gitattributes
  2. 98 0
      tests/test/tcpstr21.pp
  3. 21 0
      tests/test/tcpstr21a.pp

+ 2 - 0
.gitattributes

@@ -10481,6 +10481,8 @@ tests/test/tcpstr18.pp svneol=native#text/pascal
 tests/test/tcpstr19.pp svneol=native#text/pascal
 tests/test/tcpstr2.pp svneol=native#text/plain
 tests/test/tcpstr20.pp svneol=native#text/pascal
+tests/test/tcpstr21.pp svneol=native#text/pascal
+tests/test/tcpstr21a.pp svneol=native#text/pascal
 tests/test/tcpstr2a.pp svneol=native#text/plain
 tests/test/tcpstr3.pp svneol=native#text/plain
 tests/test/tcpstr4.pp svneol=native#text/plain

+ 98 - 0
tests/test/tcpstr21.pp

@@ -0,0 +1,98 @@
+program tcpstr21;
+
+{$APPTYPE CONSOLE}
+{$IFDEF FPC}
+  {$MODE DELPHIUNICODE}
+{$ENDIF}
+
+// Test overload precedence for string constant when default string type is UnicodeString
+
+// ---- all string types ----
+
+procedure TestStrConst1(const S: UnicodeString); overload;
+begin
+end;
+procedure TestStrConst1(const S: WideString); overload;
+begin
+  halt(1);
+end;
+procedure TestStrConst1(const S: PWideChar); overload;
+begin
+  halt(1);
+end;
+procedure TestStrConst1(const S: PAnsiChar); overload;
+begin
+  halt(1);
+end;
+procedure TestStrConst1(const S: AnsiString); overload;
+begin
+  halt(1);
+end;
+procedure TestStrConst1(const S: ShortString); overload;
+begin
+  halt(1);
+end;
+// ---- no UnicodeString ----
+procedure TestStrConst2(const S: WideString); overload;
+begin
+end;
+procedure TestStrConst2(const S: PWideChar); overload;
+begin
+  halt(2);
+end;
+procedure TestStrConst2(const S: PAnsiChar); overload;
+begin
+  halt(2);
+end;
+procedure TestStrConst2(const S: AnsiString); overload;
+begin
+  halt(2);
+end;
+procedure TestStrConst2(const S: ShortString); overload;
+begin
+  halt(2);
+end;
+// ---- no UnicodeString, WideString ----
+procedure TestStrConst3(const S: PWideChar); overload;
+begin
+end;
+procedure TestStrConst3(const S: PAnsiChar); overload;
+begin
+  halt(3);
+end;
+procedure TestStrConst3(const S: AnsiString); overload;
+begin
+  halt(3);
+end;
+procedure TestStrConst3(const S: ShortString); overload;
+begin
+  halt(3);
+end;
+// ---- no UnicodeString, WideString, PWideChar ----
+procedure TestStrConst4(const S: PAnsiChar); overload;
+begin
+end;
+procedure TestStrConst4(const S: AnsiString); overload;
+begin
+  halt(4);
+end;
+procedure TestStrConst4(const S: ShortString); overload;
+begin
+  halt(4);
+end;
+// ---- no UnicodeString, WideString, PWideChar, PAnsiChar ----
+procedure TestStrConst5(const S: AnsiString); overload;
+begin
+end;
+procedure TestStrConst5(const S: ShortString); overload;
+begin
+  halt(5);
+end;
+begin
+  TestStrConst1('Test');
+  TestStrConst2('Test');
+  TestStrConst3('Test');
+  TestStrConst4('Test');
+  TestStrConst5('Test');
+end.
+

+ 21 - 0
tests/test/tcpstr21a.pp

@@ -0,0 +1,21 @@
+program tcpstr21a;
+
+{$APPTYPE CONSOLE}
+{$IFDEF FPC}
+  {$MODE DELPHIUNICODE}
+{$ENDIF}
+
+// Test that ansistring types has the same overload precedence when passing an UnicodeString constant
+
+procedure TestStrConst(const S: AnsiString); overload;
+begin
+  halt(1);
+end;
+procedure TestStrConst(const S: UTF8String); overload;
+begin
+  halt(1);
+end;
+begin
+  TestStrConst('Test');
+end.
+