mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-18 14:03:28 +08:00
Fix up return codes for tests in tst-ftell-active-handler
The test functions used a variable ret to store failure codes for individual tests, but the variable was incorrectly used to record other failure codes too, resulting in overwriting of the tests status. This is now fixed by making sure that the ret variable is used only for recording test failures. * libio/tst-ftell-active-handler.c (do_ftell_test): Don't mix up test status with function return status. (do_write_test): Likewise. (do_append_test): Likewise.
This commit is contained in:
parent
fcd89ebe4f
commit
b1dbb426e1
@ -1,5 +1,10 @@
|
||||
2014-03-17 Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||
|
||||
* libio/tst-ftell-active-handler.c (do_ftell_test): Don't mix
|
||||
up test status with function return status.
|
||||
(do_write_test): Likewise.
|
||||
(do_append_test): Likewise.
|
||||
|
||||
* nptl/sysdeps/pthread/bits/libc-lockP.h [defined NOT_IN_libc
|
||||
&& !defined IS_IN_libpthread && __LT_SPINNOCK_INIT != 0]:
|
||||
Remove.
|
||||
|
@ -119,17 +119,20 @@ do_ftell_test (const char *filename)
|
||||
{
|
||||
FILE *fp;
|
||||
int fd;
|
||||
int fileret;
|
||||
|
||||
printf ("\tftell: %s (file, \"%s\"): ", j == 0 ? "fdopen" : "fopen",
|
||||
test_modes[i].mode);
|
||||
|
||||
if (j == 0)
|
||||
ret = get_handles_fdopen (filename, fd, fp, test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
fileret = get_handles_fdopen (filename, fd, fp,
|
||||
test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
else
|
||||
ret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
fileret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
if (fileret != 0)
|
||||
return fileret;
|
||||
|
||||
long off = ftell (fp);
|
||||
if (off != test_modes[i].old_off)
|
||||
@ -143,7 +146,12 @@ do_ftell_test (const char *filename)
|
||||
|
||||
/* The effect of this write on the offset should be seen in the ftell
|
||||
call that follows it. */
|
||||
int ret = write (fd, data, data_len);
|
||||
int write_ret = write (fd, data, data_len);
|
||||
if (write_ret != data_len)
|
||||
{
|
||||
printf ("write failed (%m)\n");
|
||||
ret |= 1;
|
||||
}
|
||||
off = ftell (fp);
|
||||
|
||||
if (off != test_modes[i].new_off)
|
||||
@ -184,21 +192,23 @@ do_write_test (const char *filename)
|
||||
{
|
||||
for (int i = 0; i < sizeof (test_modes) / sizeof (struct test); i++)
|
||||
{
|
||||
int fileret;
|
||||
printf ("\twrite: %s (file, \"%s\"): ", j == 0 ? "fopen" : "fdopen",
|
||||
test_modes[i].mode);
|
||||
|
||||
if (j == 0)
|
||||
ret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
fileret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
else
|
||||
ret = get_handles_fdopen (filename, fd, fp, test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
fileret = get_handles_fdopen (filename, fd, fp,
|
||||
test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
if (fileret != 0)
|
||||
return fileret;
|
||||
|
||||
/* Move offset to just before the end of the file. */
|
||||
off_t ret = lseek (fd, file_len - 1, SEEK_SET);
|
||||
if (ret == -1)
|
||||
off_t seek_ret = lseek (fd, file_len - 1, SEEK_SET);
|
||||
if (seek_ret == -1)
|
||||
{
|
||||
printf ("lseek failed: %m\n");
|
||||
ret |= 1;
|
||||
@ -258,17 +268,20 @@ do_append_test (const char *filename)
|
||||
{
|
||||
for (int i = 0; i < sizeof (test_modes) / sizeof (struct test); i++)
|
||||
{
|
||||
int fileret;
|
||||
|
||||
printf ("\tappend: %s (file, \"%s\"): ", j == 0 ? "fopen" : "fdopen",
|
||||
test_modes[i].mode);
|
||||
|
||||
if (j == 0)
|
||||
ret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
fileret = get_handles_fopen (filename, fd, fp, test_modes[i].mode);
|
||||
else
|
||||
ret = get_handles_fdopen (filename, fd, fp, test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
fileret = get_handles_fdopen (filename, fd, fp,
|
||||
test_modes[i].fd_mode,
|
||||
test_modes[i].mode);
|
||||
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
if (fileret != 0)
|
||||
return fileret;
|
||||
|
||||
/* Write some data. */
|
||||
size_t written = fputs_func (data, fp);
|
||||
|
Loading…
Reference in New Issue
Block a user