| * Preliminary tests for a few things in the i/o library. |
| * Thrown together by Dave Love not from specific bug reports -- |
| * other ideas welcome. |
| |
| character *(*) fmt |
| parameter (fmt='(1x,i3,f5.1)') |
| * Scratch file makes sure we can use one and avoids dealing with |
| * explicit i/o in the testsuite. |
| open(90, status='scratch') ! try a biggish unit number |
| write(90, '()') ! extra record for interest |
| * Formatted i/o can go wild (endless loop AFAIR) if we're wrongly |
| * assuming an ANSI sprintf. |
| write(90, fmt) 123, 123.0 |
| backspace 90 ! backspace problems reported on DOSish systems |
| read(90, fmt) i, r |
| endfile 90 |
| if (i/=123 .or. nint(r)/=123) call abort |
| rewind 90 ! make sure we can rewind too |
| read(90, '()') |
| read(90, fmt) i, r |
| if (i/=123 .or. nint(r)/=123) call abort |
| close(90) |
| * Make sure we can do unformatted i/o OK. This might be |
| * problematic on DOS-like systems if we've done an fopen in text |
| * mode, not binary. |
| open(90, status='scratch', access='direct', form='unformatted', |
| + recl=8) |
| write(90, rec=1) 123, 123.0 |
| read(90, rec=1) i, r |
| if (i/=123 .or. nint(r)/=123) call abort |
| close(90) |
| open(90, status='scratch', form='unformatted') |
| write(90) 123, 123.0 |
| backspace 90 |
| read(90) i, r |
| if (i/=123 .or. nint(r)/=123) call abort |
| close(90) |
| * Fails at 1998-09-01 on spurious recursive i/o check (fixed by |
| * 1998-09-06 libI77 change): |
| open(90, status='scratch', form='formatted', recl=16, |
| + access='direct') |
| write(90, '(i8,f8.1)',rec=1) 123, 123.0 |
| read(90, '(i8,f8.1)', rec=1) i, r |
| if (i/=123 .or. nint(r)/=123) call abort |
| close(90) |
| end |