fpc/tests/test/tcpstr19.pp
2018-05-11 16:11:27 +00:00

59 lines
1.2 KiB
ObjectPascal

{ %skiptarget=android }
program tcpstr19;
// test conversions from and to rawbytestring
// test that copy function returns the same def as argument
// this test can be only run with the compiler built right now on the
// same system
{$ifdef go32v2}
{$define USE_INTERNAL_UNICODE}
{$endif}
{$ifdef USE_INTERNAL_UNICODE}
{$define USE_FPWIDESTRING_UNIT}
{$define USE_UNICODEDUCET_UNIT}
{$define USE_CPALL_UNIT}
{$endif}
{$APPTYPE CONSOLE}
{$ifdef fpc}
{$MODE DELPHIUNICODE}
{$endif}
uses
{$ifndef USE_INTERNAL_UNICODE}
{$ifdef unix}
{$ifdef darwin}iosxwstr{$else}cwstring{$endif},
{$endif}
{$endif ndef USE_INTERNAL_UNICODE}
{$ifdef USE_UNICODEDUCET_UNIT}
unicodeducet,
{$endif}
{$ifdef USE_FPWIDESTRING_UNIT}
fpwidestring,
{$endif}
{$ifdef USE_CPALL_UNIT}
cpall,
{$endif}
SysUtils;
var
S: AnsiString;
R: RawByteString;
begin
S := UTF8Encode('Test');
if StringCodePage(S) <> CP_UTF8 then
halt(1);
S := Copy('Test', 1, 2);
if StringCodePage(S) <> DefaultSystemCodePage then
halt(2);
if StringCodePage(Copy(UTF8Encode('Test'), 1, 2)) <> CP_UTF8 then
halt(3);
R := 'Test';
{$if not defined(FPC_CROSSCOMPILING) and not defined(FPC_CPUCROSSCOMPILING)}
if StringCodePage(R) <> DefaultSystemCodePage then
halt(4);
{$endif}
end.