secnds.f: Replace time tolerance with a before-and-after bracket.

* gfortran.dg/secnds.f: Replace time tolerance with a
before-and-after bracket.
* gfortran.dg/secnds-1.f: Likewise.

From-SVN: r121791
This commit is contained in:
Brooks Moses 2007-02-10 01:27:15 +00:00 committed by Brooks Moses
parent ebff937c19
commit 076e8e8d94
3 changed files with 20 additions and 17 deletions

View File

@ -1,3 +1,9 @@
2006-02-09 Brooks Moses <brooks.moses@codesourcery.com>
* gfortran.dg/secnds.f: Replace time tolerance with a
before-and-after bracket.
* gfortran.dg/secnds-1.f: Likewise.
2007-02-09 Tobias Burnus <burnus@net-b.de>
PR fortran/30512

View File

@ -1,24 +1,23 @@
C { dg-do run }
C { dg-options "-ffloat-store" }
C Tests fix for PR29099 - SECNDS intrinsic wrong result with no delay.
C Note1: The test uses +/-20ms accuracy in the check that
C date_and_time and secnds give the same values.
C
C Contributed by Paul Thomas <pault@gcc.gnu.org>
C
character*20 dum1, dum2, dum3
real t1, t2
real t1, t1a, t2, t2a
real dat1, dat2
real dt
integer i, j, values(8)
dt = 40e-3
t1 = secnds (0.0)
call date_and_time (dum1, dum2, dum3, values)
t1a = secnds (0.0)
dat1 = 0.001*real (values(8)) + real (values(7)) +
& 60.0*real (values(6)) + 3600.0* real (values(5))
if (int ((dat1 - t1 + dt * 0.5) / dt) .ne. 0) call abort ()
if (((dat1 - t1) < 0.) .or. ((dat1 - t1) > (t1a - t1))) call abort ()
t2a = secnds (t1a)
call date_and_time (dum1, dum2, dum3, values)
t2 = secnds (t1)
dat2 = 0.001*real (values(8)) + real (values(7)) +
& 60.0*real (values(6)) + 3600.0* real (values(5))
t2 = secnds (t1)
if (int ((dat1-dat2 + t2 + dt * 0.5) / dt) .ne. 0.0) call abort ()
if (((dat2 - dat1) < t2a) .or. ((dat2 - dat1) > t2)) call abort ()
end

View File

@ -1,29 +1,27 @@
C { dg-do run }
C { dg-options "-O0" }
C { dg-options "-O0 -ffloat-store" }
C Tests fix for PR14994 - SECNDS intrinsic not supported.
C Note1: The test uses +/-20ms accuracy in the check that
C date_and_time and secnds give the same values.
C
C Contributed by Paul Thomas <pault@gcc.gnu.org>
C
character*20 dum1, dum2, dum3
real t1, t2
real t1, t1a, t2, t2a
real dat1, dat2
real dt
integer i, j, values(8)
dt = 40e-3
t1 = secnds (0.0)
call date_and_time (dum1, dum2, dum3, values)
t1a = secnds (0.0)
dat1 = 0.001*real (values(8)) + real (values(7)) +
& 60.0*real (values(6)) + 3600.0* real (values(5))
if (int ((dat1 - t1 + dt * 0.5) / dt) .ne. 0) call abort ()
if (((dat1 - t1) < 0.) .or. ((dat1 - t1) > (t1a - t1))) call abort ()
do j=1,10000
do i=1,10000
end do
end do
t2a = secnds (t1a)
call date_and_time (dum1, dum2, dum3, values)
t2 = secnds (t1)
dat2 = 0.001*real (values(8)) + real (values(7)) +
& 60.0*real (values(6)) + 3600.0* real (values(5))
t2 = secnds (t1)
if (int ((dat1-dat2 + t2 + dt * 0.5) / dt) .ne. 0.0) call abort ()
if (((dat2 - dat1) < t2a) .or. ((dat2 - dat1) > t2)) call abort ()
end