Test suite results for test file test/tstprocv.pp

Test run data :

Run ID:
Operating system: linux
Processor: arm
Version: 3.2.3
Fails/OK/Total: 59/7928/7987
Version: 3.2.3
Full version: 3.2.3-1373-gae0fe8a6a0
Comment: -Cparmv6 -Cfvfpv2 -Caeabi -XR/home/pierre/sys-root/arm-linux -Xd -Xr/home/pierre/sys-root/arm-linux
Machine: gcclocal
Category: 1
SVN revisions: fdf93c5b29:c17a0e20f5:ae0fe8a6a0:d1c29e6cb9
Submitter: pierre
Date: 2024/04/19 10:28:00 <> 2024/04/09
Previous run: 934295
Next run: 935628

Hide skipped tests

Hide successful tests

Test file "test/tstprocv.pp" information:

t_id 1021
t_adddate 2003/10/14
t_result 0
Flag t_fail set
t_knownrunerror 0

Detailed test run results:

tr_idruntr_oktr_skiptr_result
443573490934952TrueFalseSuccess, compilation failed

Record count: 1

No log of 934952.

Source:

{ %FAIL }
{ this compilation should fail
  because an ansitring should not be allowed
  as equivalent to a normal short string
  for procvars PM }

{$mode fpc}
{$H-}

uses
  strings;

Type
  type_error_proc = procedure (Const St : String);

Const
   error_proc : type_error_proc = nil;
   has_errors : boolean = false;
var
  st :  string;
  ast : ansistring;
  pst : pchar;



procedure string_error_proc(const err : string);
begin
{$ifdef DEBUG}
  writeln('String error proc: ',err);
{$endif DEBUG}
  if err<>st then
    has_errors:=true;
end;

procedure ansistring_error_proc(const err : ansistring);
begin
{$ifdef DEBUG}
  writeln('Ansistring error proc: ',err);
{$endif DEBUG}
  if err<>ast then
    has_errors:=true;
end;

procedure pchar_error_proc(const err : pchar);
begin
{$ifdef DEBUG}
  writeln('Pchar error proc: ',err);
{$endif DEBUG}
  if strcomp(err,pst)<>0 then
    has_errors:=true;
end;

begin
  st:='direct short string';
  string_error_proc(st);
  ast:='direct ansistring';
  ansistring_error_proc(ast);
  pst:='direct short string';
  pchar_error_proc(pst);

  error_proc:=@string_error_proc;
  st:='short string via procvar';
  error_proc(st);

  error_proc:=@ansistring_error_proc;
  ast:='ansistring via procvar';
  error_proc(ast);

  error_proc:=@pchar_error_proc;
  pst:='pchar via procvar';
  error_proc(pst);
  if has_errors then
    begin
      Writeln('Wrong code is generated');
      halt(1);
    end;
end.

Link to SVN view of test/tstprocv.pp source.