]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix up return codes for tests in tst-ftell-active-handler
authorSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 10 Mar 2014 10:50:01 +0000 (16:20 +0530)
committerSiddhesh Poyarekar <siddhesh@redhat.com>
Mon, 17 Mar 2014 14:14:51 +0000 (19:44 +0530)
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.

ChangeLog
libio/tst-ftell-active-handler.c

index 005b678aaf28cb3fdb9f2ebae83d6778d3b304c3..1bb538f68ae70f5b1df80826f1e12997c6fe89d1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index 54bfe6380f9b7a084841b99c9ad3f243d044e2e9..5d5fc2654777d5a80c56d9b5f021a217b93fd74b 100644 (file)
@@ -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);