re PR libstdc++/45841 (r164529 cris-elf libstdc++ 27_io/basic_filebuf/seekoff/char/2-io.cc)
PR libstdc++/45841 * testsuite/lib/libstdc++.exp (check_v3_target_fileio): Rewrite to use an actual testsuite file and machinery, not ".". Specifically check that incorrectly seeking backwards from 0 yields an error, and that reading, seeking backwards and reading again works. From-SVN: r165136
This commit is contained in:
parent
38851a969d
commit
599fdf0ca5
2 changed files with 22 additions and 7 deletions
|
@ -1,5 +1,11 @@
|
|||
2010-10-07 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
PR libstdc++/45841
|
||||
* testsuite/lib/libstdc++.exp (check_v3_target_fileio): Rewrite to
|
||||
use an actual testsuite file and machinery, not ".". Specifically
|
||||
check that incorrectly seeking backwards from 0 yields an error,
|
||||
and that reading, seeking backwards and reading again works.
|
||||
|
||||
* testsuite/libstdc++-dg/conformance.exp: Apply
|
||||
check_v3_target_fileio as a gate for tests in
|
||||
subdirectories matching the substring _filebuf.
|
||||
|
|
|
@ -631,6 +631,7 @@ proc check_v3_target_fileio { } {
|
|||
global et_fileio_saved
|
||||
global et_fileio_target_name
|
||||
global tool
|
||||
global srcdir
|
||||
|
||||
if { ![info exists et_fileio_target_name] } {
|
||||
set et_fileio_target_name ""
|
||||
|
@ -656,6 +657,8 @@ proc check_v3_target_fileio { } {
|
|||
# the file functions
|
||||
set src fileio[pid].cc
|
||||
set exe fileio[pid].x
|
||||
set testfile "cin_unget-1.txt"
|
||||
v3-copy-files "$srcdir/data/$testfile"
|
||||
|
||||
set f [open $src "w"]
|
||||
puts $f "#include <sys/types.h>"
|
||||
|
@ -663,20 +666,26 @@ proc check_v3_target_fileio { } {
|
|||
puts $f "#include <fcntl.h>"
|
||||
puts $f "#include <unistd.h>"
|
||||
puts $f "#include <errno.h>"
|
||||
puts $f "#include <string.h>"
|
||||
puts $f "using namespace std;"
|
||||
puts $f "int main ()"
|
||||
puts $f "{"
|
||||
puts $f " int fd = open (\".\", O_RDONLY);"
|
||||
puts $f " int fd = open (\"$testfile\", O_RDONLY);"
|
||||
puts $f " int ret = 0;"
|
||||
puts $f " char buf\[10\];"
|
||||
puts $f " if (fd == -1)"
|
||||
puts $f " {"
|
||||
puts $f " int err = errno;"
|
||||
puts $f " if (err == EIO || err == ENOSYS)"
|
||||
puts $f " ret = 1;"
|
||||
puts $f " }"
|
||||
puts $f " ret = 1;"
|
||||
puts $f " else"
|
||||
puts $f " {"
|
||||
puts $f " if (lseek (fd, 0, SEEK_CUR) == -1)"
|
||||
puts $f " if (lseek (fd, -1, SEEK_CUR) != -1 || errno != EINVAL)"
|
||||
puts $f " ret = 1;"
|
||||
puts $f " errno = 0;"
|
||||
puts $f " if (lseek (fd, 0, SEEK_CUR) != 0"
|
||||
puts $f " || read (fd, buf, 4) != 4"
|
||||
puts $f " || memcmp (buf, \"1234\", 4) != 0"
|
||||
puts $f " || lseek (fd, -2, SEEK_CUR) != 2"
|
||||
puts $f " || read (fd, buf, 2) != 2"
|
||||
puts $f " || memcmp (buf, \"34\", 2) != 0)"
|
||||
puts $f " ret = 1;"
|
||||
puts $f " close (fd);"
|
||||
puts $f " }"
|
||||
|
|
Loading…
Add table
Reference in a new issue