diff options
-rw-r--r-- | c/src/ada-tests/support/float_io.ads | 27 | ||||
-rw-r--r-- | c/src/ada-tests/support/fp.inc | 154 | ||||
-rw-r--r-- | c/src/ada-tests/support/integer.inc | 145 |
3 files changed, 326 insertions, 0 deletions
diff --git a/c/src/ada-tests/support/float_io.ads b/c/src/ada-tests/support/float_io.ads new file mode 100644 index 0000000000..532dc6c447 --- /dev/null +++ b/c/src/ada-tests/support/float_io.ads @@ -0,0 +1,27 @@ +-- +-- Float_IO / Specification +-- +-- Description: +-- +-- This package instantiates the IO routines necessary to +-- perform IO on data of the type Float. +-- +-- Dependencies: +-- +-- +-- +-- COPYRIGHT (c) 1989-1997. +-- On-Line Applications Research Corporation (OAR). +-- Copyright assigned to U.S. Government, 1994. +-- +-- The license and distribution terms for this file may in +-- the file LICENSE in this distribution or at +-- http://www.OARcorp.com/rtems/license.html. +-- +-- $Id$ +-- + +with Text_IO; + +package Float_IO is new Text_IO.Float_IO( Float ); + diff --git a/c/src/ada-tests/support/fp.inc b/c/src/ada-tests/support/fp.inc new file mode 100644 index 0000000000..4fde6b16c1 --- /dev/null +++ b/c/src/ada-tests/support/fp.inc @@ -0,0 +1,154 @@ +-- +-- fp.inc +-- +-- Macros to produce a large number of LOCAL floating point variables. This +-- preprocessing is necessary to insure that the variables are +-- scoped properly and to avoid duplicating hundreds of lines +-- of code. +-- +-- +-- DEFICIENCIES: +-- +-- 1. This currently does not address whether or not the CPU +-- actually has hardware floating point. It just does the work. +-- +-- COPYRIGHT (c) 1989-1997. +-- On-Line Applications Research Corporation (OAR). +-- Copyright assigned to U.S. Government, 1994. +-- +-- The license and distribution terms for this file may in +-- the file LICENSE in this distribution or at +-- http://www.OARcorp.com/rtems/license.html. +-- +-- $Id$ + +-- +-- private definitions for macro use +-- + +-- macro usage EPSILON() +define(`EPSILON',`0.0005') + +-- macro usage FP_CHECK_ONE( value, base, factor ) +define(`FP_CHECK_ONE',` + if ( $1 - ( $2 + $3 ) ) > EPSILON or else ( $1 - ( $2 + $3 ) ) < - EPSILON then + UNSIGNED32_IO.PUT( TASK_INDEX ); + TEXT_IO.PUT( ": $1 wrong -- (" ); + FLOAT_IO.PUT( $1 ); + TEXT_IO.PUT( " not " ); + FLOAT_IO.PUT( $2 + $3 ); + TEXT_IO.PUT_LINE( ")" ); + end if +' +) + +-- macro usage FP_DECLARE +define(`FP_DECLARE', ` + FP01 : FLOAT := 1.0; + FP02 : FLOAT := 2.0; + FP03 : FLOAT := 3.0; + FP04 : FLOAT := 4.0; + FP05 : FLOAT := 5.0; + FP06 : FLOAT := 6.0; + FP07 : FLOAT := 7.0; + FP08 : FLOAT := 8.0; + FP09 : FLOAT := 9.0; + FP10 : FLOAT := 10.0; + FP11 : FLOAT := 11.0; + FP12 : FLOAT := 12.0; + FP13 : FLOAT := 13.0; + FP14 : FLOAT := 14.0; + FP15 : FLOAT := 15.0; + FP16 : FLOAT := 16.0; + FP17 : FLOAT := 17.0; + FP18 : FLOAT := 18.0; + FP19 : FLOAT := 19.0; + FP20 : FLOAT := 20.0; + FP21 : FLOAT := 21.0; + FP22 : FLOAT := 22.0; + FP23 : FLOAT := 23.0; + FP24 : FLOAT := 24.0; + FP25 : FLOAT := 25.0; + FP26 : FLOAT := 26.0; + FP27 : FLOAT := 27.0; + FP28 : FLOAT := 28.0; + FP29 : FLOAT := 29.0; + FP30 : FLOAT := 30.0; + FP31 : FLOAT := 31.0; + FP32 : FLOAT := 32.0 +' +) + + +-- macro usage FP_LOAD( factor ) +define(`FP_LOAD',` + FP01 := FP01 + $1; + FP02 := FP02 + $1; + FP03 := FP03 + $1; + FP04 := FP04 + $1; + FP05 := FP05 + $1; + FP06 := FP06 + $1; + FP07 := FP07 + $1; + FP08 := FP08 + $1; + FP09 := FP09 + $1; + FP10 := FP10 + $1; + FP11 := FP11 + $1; + FP12 := FP12 + $1; + FP13 := FP13 + $1; + FP14 := FP14 + $1; + FP15 := FP15 + $1; + FP16 := FP16 + $1; + FP17 := FP17 + $1; + FP18 := FP18 + $1; + FP19 := FP19 + $1; + FP20 := FP20 + $1; + FP21 := FP21 + $1; + FP22 := FP22 + $1; + FP23 := FP23 + $1; + FP24 := FP24 + $1; + FP25 := FP25 + $1; + FP26 := FP26 + $1; + FP27 := FP27 + $1; + FP28 := FP28 + $1; + FP29 := FP29 + $1; + FP30 := FP30 + $1; + FP31 := FP31 + $1; + FP32 := FP32 + $1 +') + +-- macro usage FP_CHECK( factor ) +define(`FP_CHECK',` + FP_CHECK_ONE( FP01, 1.0, $1 ); + FP_CHECK_ONE( FP02, 2.0, $1 ); + FP_CHECK_ONE( FP03, 3.0, $1 ); + FP_CHECK_ONE( FP04, 4.0, $1 ); + FP_CHECK_ONE( FP05, 5.0, $1 ); + FP_CHECK_ONE( FP06, 6.0, $1 ); + FP_CHECK_ONE( FP07, 7.0, $1 ); + FP_CHECK_ONE( FP08, 8.0, $1 ); + FP_CHECK_ONE( FP09, 9.0, $1 ); + FP_CHECK_ONE( FP10, 10.0, $1 ); + FP_CHECK_ONE( FP11, 11.0, $1 ); + FP_CHECK_ONE( FP12, 12.0, $1 ); + FP_CHECK_ONE( FP13, 13.0, $1 ); + FP_CHECK_ONE( FP14, 14.0, $1 ); + FP_CHECK_ONE( FP15, 15.0, $1 ); + FP_CHECK_ONE( FP16, 16.0, $1 ); + FP_CHECK_ONE( FP17, 17.0, $1 ); + FP_CHECK_ONE( FP18, 18.0, $1 ); + FP_CHECK_ONE( FP19, 19.0, $1 ); + FP_CHECK_ONE( FP20, 20.0, $1 ); + FP_CHECK_ONE( FP21, 21.0, $1 ); + FP_CHECK_ONE( FP22, 22.0, $1 ); + FP_CHECK_ONE( FP23, 23.0, $1 ); + FP_CHECK_ONE( FP24, 24.0, $1 ); + FP_CHECK_ONE( FP25, 25.0, $1 ); + FP_CHECK_ONE( FP26, 26.0, $1 ); + FP_CHECK_ONE( FP27, 27.0, $1 ); + FP_CHECK_ONE( FP28, 28.0, $1 ); + FP_CHECK_ONE( FP29, 29.0, $1 ); + FP_CHECK_ONE( FP30, 30.0, $1 ); + FP_CHECK_ONE( FP31, 31.0, $1 ); + FP_CHECK_ONE( FP32, 32.0, $1 ) +' +) diff --git a/c/src/ada-tests/support/integer.inc b/c/src/ada-tests/support/integer.inc new file mode 100644 index 0000000000..b7be26e8b6 --- /dev/null +++ b/c/src/ada-tests/support/integer.inc @@ -0,0 +1,145 @@ +-- +-- integer.inc +-- +-- Macros to produce a large number of LOCAL integer variables. This +-- preprocessing is necessary to insure that the variables are +-- scoped properly and to avoid duplicating hundreds of lines +-- of code. +-- +-- COPYRIGHT (c) 1989-1997. +-- On-Line Applications Research Corporation (OAR). +-- Copyright assigned to U.S. Government, 1994. +-- +-- The license and distribution terms for this file may in +-- the file LICENSE in this distribution or at +-- http://www.OARcorp.com/rtems/license.html. +-- +-- $Id$ + +-- +-- private definitions for macro use +-- + +-- macro usage INTEGER_CHECK_ONE( value, base, factor ) +define(`INTEGER_CHECK_ONE',` + if $1 /= ($2 + $3) then + UNSIGNED32_IO.PUT( TASK_INDEX ); + TEXT_IO.PUT( ": $1 wrong -- (" ); + UNSIGNED32_IO.PUT( $1, BASE => 16); + TEXT_IO.PUT( " not " ); + UNSIGNED32_IO.PUT( $2, BASE => 16 ); + TEXT_IO.PUT_LINE( ")" ); + end if +' +) + +-- macro usage INTEGER_DECLARE +define(`INTEGER_DECLARE', ` + INT01 : RTEMS.UNSIGNED32 := 1; + INT02 : RTEMS.UNSIGNED32 := 2; + INT03 : RTEMS.UNSIGNED32 := 3; + INT04 : RTEMS.UNSIGNED32 := 4; + INT05 : RTEMS.UNSIGNED32 := 5; + INT06 : RTEMS.UNSIGNED32 := 6; + INT07 : RTEMS.UNSIGNED32 := 7; + INT08 : RTEMS.UNSIGNED32 := 8; + INT09 : RTEMS.UNSIGNED32 := 9; + INT10 : RTEMS.UNSIGNED32 := 10; + INT11 : RTEMS.UNSIGNED32 := 11; + INT12 : RTEMS.UNSIGNED32 := 12; + INT13 : RTEMS.UNSIGNED32 := 13; + INT14 : RTEMS.UNSIGNED32 := 14; + INT15 : RTEMS.UNSIGNED32 := 15; + INT16 : RTEMS.UNSIGNED32 := 16; + INT17 : RTEMS.UNSIGNED32 := 17; + INT18 : RTEMS.UNSIGNED32 := 18; + INT19 : RTEMS.UNSIGNED32 := 19; + INT20 : RTEMS.UNSIGNED32 := 20; + INT21 : RTEMS.UNSIGNED32 := 21; + INT22 : RTEMS.UNSIGNED32 := 22; + INT23 : RTEMS.UNSIGNED32 := 23; + INT24 : RTEMS.UNSIGNED32 := 24; + INT25 : RTEMS.UNSIGNED32 := 25; + INT26 : RTEMS.UNSIGNED32 := 26; + INT27 : RTEMS.UNSIGNED32 := 27; + INT28 : RTEMS.UNSIGNED32 := 28; + INT29 : RTEMS.UNSIGNED32 := 29; + INT30 : RTEMS.UNSIGNED32 := 30; + INT31 : RTEMS.UNSIGNED32 := 31; + INT32 : RTEMS.UNSIGNED32 := 32 +' +) + + +-- macro usage INTEGER_LOAD( factor ) +define(`INTEGER_LOAD',` + INT01 := INT01 + $1; + INT02 := INT02 + $1; + INT03 := INT03 + $1; + INT04 := INT04 + $1; + INT05 := INT05 + $1; + INT06 := INT06 + $1; + INT07 := INT07 + $1; + INT08 := INT08 + $1; + INT09 := INT09 + $1; + INT10 := INT10 + $1; + INT11 := INT11 + $1; + INT12 := INT12 + $1; + INT13 := INT13 + $1; + INT14 := INT14 + $1; + INT15 := INT15 + $1; + INT16 := INT16 + $1; + INT17 := INT17 + $1; + INT18 := INT18 + $1; + INT19 := INT19 + $1; + INT20 := INT20 + $1; + INT21 := INT21 + $1; + INT22 := INT22 + $1; + INT23 := INT23 + $1; + INT24 := INT24 + $1; + INT25 := INT25 + $1; + INT26 := INT26 + $1; + INT27 := INT27 + $1; + INT28 := INT28 + $1; + INT29 := INT29 + $1; + INT30 := INT30 + $1; + INT31 := INT31 + $1; + INT32 := INT32 + $1 +') + +-- macro usage INTEGER_CHECK( factor ) +define(`INTEGER_CHECK',` + INTEGER_CHECK_ONE( INT01, 1, $1 ); + INTEGER_CHECK_ONE( INT02, 2, $1 ); + INTEGER_CHECK_ONE( INT03, 3, $1 ); + INTEGER_CHECK_ONE( INT04, 4, $1 ); + INTEGER_CHECK_ONE( INT05, 5, $1 ); + INTEGER_CHECK_ONE( INT06, 6, $1 ); + INTEGER_CHECK_ONE( INT07, 7, $1 ); + INTEGER_CHECK_ONE( INT08, 8, $1 ); + INTEGER_CHECK_ONE( INT09, 9, $1 ); + INTEGER_CHECK_ONE( INT10, 10, $1 ); + INTEGER_CHECK_ONE( INT11, 11, $1 ); + INTEGER_CHECK_ONE( INT12, 12, $1 ); + INTEGER_CHECK_ONE( INT13, 13, $1 ); + INTEGER_CHECK_ONE( INT14, 14, $1 ); + INTEGER_CHECK_ONE( INT15, 15, $1 ); + INTEGER_CHECK_ONE( INT16, 16, $1 ); + INTEGER_CHECK_ONE( INT17, 17, $1 ); + INTEGER_CHECK_ONE( INT18, 18, $1 ); + INTEGER_CHECK_ONE( INT19, 19, $1 ); + INTEGER_CHECK_ONE( INT20, 20, $1 ); + INTEGER_CHECK_ONE( INT21, 21, $1 ); + INTEGER_CHECK_ONE( INT22, 22, $1 ); + INTEGER_CHECK_ONE( INT23, 23, $1 ); + INTEGER_CHECK_ONE( INT24, 24, $1 ); + INTEGER_CHECK_ONE( INT25, 25, $1 ); + INTEGER_CHECK_ONE( INT26, 26, $1 ); + INTEGER_CHECK_ONE( INT27, 27, $1 ); + INTEGER_CHECK_ONE( INT28, 28, $1 ); + INTEGER_CHECK_ONE( INT29, 29, $1 ); + INTEGER_CHECK_ONE( INT30, 30, $1 ); + INTEGER_CHECK_ONE( INT31, 31, $1 ); + INTEGER_CHECK_ONE( INT32, 32, $1 ) +' +) |