Test suite results for test file webtbs/tw3170.pp

Test run data :

Free Pascal Compiler Test Suite Results

View Test suite results

Please specify search criteria:
File:
Operating system:
Processor:
Version
Date
Submitter
Machine
Comment
Limit
Cond
Category
Only failed tests
Hide skipped tests
List all tests

Test file "webtbs/tw3170.pp" information:

t_id 1322
t_adddate 2004/08/08
t_result 0
t_knownrunerror 0

Detailed test run results:

Record count: 50

Total = 50

OK=50 Percentage= 100.00

Result type Cat. Count Percentage First date Last Date
Successfully run 50 100.0 2024/09/26 18:42:00 90 2024/09/26 23:02:00 44
i386 4 8.0 2024/09/26 19:54:00 70 2024/09/26 22:38:00 79
powerpc 14 28.0 2024/09/26 19:41:00 35 2024/09/26 23:02:00 44
powerpc64 17 34.0 2024/09/26 18:42:00 90 2024/09/26 22:29:00 103
wasm32 7 14.0 2024/09/26 19:31:00 339 2024/09/26 22:50:00 299
riscv64 8 16.0 2024/09/26 19:14:00 123 2024/09/26 19:59:00 123
linux 39 78.0 2024/09/26 18:42:00 90 2024/09/26 23:02:00 44
go32v2 4 8.0 2024/09/26 19:54:00 70 2024/09/26 22:38:00 79
wasi 7 14.0 2024/09/26 19:31:00 339 2024/09/26 22:50:00 299
3.3.1 34 68.0 2024/09/26 18:42:00 90 2024/09/26 22:50:00 299
3.2.3 16 32.0 2024/09/26 21:17:00 71 2024/09/26 23:02:00 44

Source:

{ Source provided for Free Pascal Bug Report 3170 }
{ Submitted by "Michalis Kamburelis" on  2004-06-15 }
{ e-mail: michalis@camelot.homedns.org }
{ Simple test of 4 string comparison routines: [Ansi]Compare(Str|Text)
  with AnsiStrings with #0 chars inside.

  FPC 1.9.5 fails only at CompareStr + ('hello', 'hello'#0'bye')
  test, passes all other.
  After applying my small patch to sysstr.inc, FPC 1.9.5 passes
  all tests.

  Delphi note: Kylix 3 does not pass this test with Ansi- functions,
  it seems that in Kylix 3 Ansi- functions consider #0 char to mark
  end of AnsiString (I will not submit this as a compatibility bug,
  as I consider this stupid, FPC behaviour is definitely more
  sensible and consequent here).
}

{$apptype CONSOLE}
{$assertions ON}
{$ifdef FPC} {$mode objfpc} {$endif}
{$longstrings ON}

uses SysUtils;

type
  TCompare2Strings = function(const s1, s2:string):Integer;

procedure Check(CompareFunc:TCompare2Strings);
begin
 Assert(CompareFunc('hello'#0'bye', 'hello'#0'bye') = 0);
 Assert(CompareFunc('hello'#0'seeya', 'hello'#0'bye') > 0);
 Assert(CompareFunc('hello', 'hello'#0'bye') < 0);

{ alternative:
 Writeln(CompareFunc('hello'#0'bye', 'hello'#0'bye'));
 Writeln(CompareFunc('hello'#0'seeya', 'hello'#0'bye'));
 Writeln(CompareFunc('hello', 'hello'#0'bye'));
}
end;

begin
 Writeln('CompareStr');      Check(@CompareStr);
 Writeln('CompareText');     Check(@CompareText);
 Writeln('AnsiCompareStr');  Check(@AnsiCompareStr);
 Writeln('AnsiCompareText'); Check(@AnsiCompareText);
end.

Link to SVN view of webtbs/tw3170.pp source.