Test suite results for test file test/cg/tneg.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 "test/cg/tneg.pp" information:

t_id 191
t_adddate 2003/10/03
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/05/20 22:37:00 176 2024/05/21 00:32:00 15
i386 18 36.0 2024/05/20 22:37:00 176 2024/05/21 00:08:00 23
sparc 21 42.0 2024/05/20 23:25:00 38 2024/05/20 23:55:00 41
powerpc 1 2.0 2024/05/20 23:05:00 185 2024/05/20 23:05:00 185
x86_64 5 10.0 2024/05/20 23:44:00 14 2024/05/21 00:32:00 15
powerpc64 2 4.0 2024/05/20 23:13:00 213 2024/05/20 23:20:00 71
mipsel 1 2.0 2024/05/20 22:58:00 148 2024/05/20 22:58:00 148
aarch64 1 2.0 2024/05/21 00:12:00 32 2024/05/21 00:12:00 32
sparc64 1 2.0 2024/05/20 23:47:00 148 2024/05/20 23:47:00 148
linux 17 34.0 2024/05/20 22:37:00 176 2024/05/21 00:32:00 15
win32 1 2.0 2024/05/20 23:41:00 23 2024/05/20 23:41:00 23
solaris 32 64.0 2024/05/20 23:23:00 25 2024/05/20 23:55:00 41
3.3.1 28 56.0 2024/05/20 23:23:00 25 2024/05/21 00:32:00 15
3.2.3 22 44.0 2024/05/20 22:37:00 176 2024/05/21 00:08:00 23

Source:

{****************************************************************}
{  CODE GENERATOR TEST PROGRAM                                   }
{****************************************************************}
{ NODE TESTED : secondunaryminus()                               }
{****************************************************************}
{ PRE-REQUISITES: secondload()                                   }
{                 secondassign()                                 }
{                 secondtypeconv()                               }
{****************************************************************}
{ DEFINES:                                                       }
{            FPC     = Target is FreePascal compiler             }
{****************************************************************}
{ REMARKS:                                                       }
{                                                                }
{                                                                }
{                                                                }
{****************************************************************}

Program tneg;

{----------------------------------------------------}
{ Cases to test:                                     }
{   CURRENT NODE (result value)                      }
{     - LOC_REGISTER                                 }
{     - LOC_FPU                                      }
{   LEFT NODE (value to negate)                      }
{     - LOC_CREGISTER                                }
{     - LOC_REFERENCE / LOC_MEM                      }
{     - LOC_REGISTER                                 }
{     - LOC_FPU                                      }
{----------------------------------------------------}

procedure test(value, required: longint);
begin
  if value <> required then
    begin
      writeln('Got ',value,' instead of ',required);
      halt(1);
    end
  else
    writeln('Passed!');
end;

procedure fail;
 begin
   writeln('Failure.');
   halt(1);
 end;


  function getreal: real;
   begin
     getreal := 1.0;
   end;

var
 longval :  longint;
 realval : real;
 byteval : longint;
{$IFDEF FPC}
 int64val : int64;
{$ENDIF}
Begin
   WriteLn('------------------------------ LONGINT --------------------------------');
   { CURRENT NODE: REGISTER }
   { LEFT NODE : REFERENCE  }
   longval := 1;
   longval := - longval;
   Write('Value should be -1...');
   test(longval, -1);

   { CURRENT NODE : REGISTER }
   { LEFT NODE: REGISTER     }
   byteval := 2;
   longval := - byteval;
   Write('Value should be -2...');
   test(longval, -2);

   { CURRENT NODE: LOC_FPU }
   { LEFT NODE : LOC_REFERENCE }
   realval := -1.0;
   realval := - realval;
   Write('Value should 1.0...');
   if realval - 1.0 = 0.0 then
      WriteLn('Passed!')
   else
      Fail;

   { LEFT NODE : LOC_FPU }
   { CURRENT NODE : LOC_FPU }
   realval := -1.0;
   realval := -(getreal*(realval));
   Write('Value should 1.0...');
   if realval - 1.0 = 0.0 then
      WriteLn('Passed!')
   else
      Fail;

{$IFDEF FPC}
   WriteLn('------------------------------  INT64  --------------------------------');
   { CURRENT NODE: REGISTER }
   { LEFT NODE : REFERENCE  }
   int64val := 1;
   int64val := - int64val;
   Write('Value should be -1...');
   test(int64val and $FFFFFFFF, -1);

   { CURRENT NODE : REGISTER }
   { LEFT NODE: REGISTER     }
   byteval := 2;
   int64val := - byteval;
   Write('Value should be -2...');
   test(int64val and $FFFFFFFF, -2);
{$ENDIF}
end.

Link to SVN view of test/cg/tneg.pp source.