diff mbox series

[PATCHv2] Fix test failure with -DNDEBUG.

Message ID 9114fb74-7592-bd62-1442-2e9a666972b0@redhat.com
State New
Headers show
Series [PATCHv2] Fix test failure with -DNDEBUG. | expand

Commit Message

Carlos O'Donell Aug. 30, 2018, 3:43 p.m. UTC
On 08/30/2018 11:13 AM, Florian Weimer wrote:
> On 08/30/2018 05:08 PM, Carlos O'Donell wrote:
>>         rc = pthread_create (&thr, NULL, fn, NULL);
>> -      assert (rc == 0);
>> +      TEST_VERIFY (rc == 0);
>>           rc = pthread_join (thr, NULL);
>> -      assert (rc == 0);
>> +      TEST_VERIFY (rc == 0);
> 
> Both should actually be TEST_VERIFY_EXIT, I assume, and that would be
> close to xpthread_create and xpthread_join.

I might as well just cleanup the test.

v2
- Use xpthread_create, xpthread_join. The threads need to be started for
  the test to validly use up slotinfo entries.

Comments

Florian Weimer Aug. 30, 2018, 4:24 p.m. UTC | #1
On 08/30/2018 05:43 PM, Carlos O'Donell wrote:
> +	* elf/tst-dlopen-aout.c: Include support/check.h. Use TEST_VERIFY.

Needs updating.  “e.g.” in the comment should probably be “that is” or 
“i.e.”.  Looks fine otherwise.

Thanks,
Florian
Carlos O'Donell Aug. 30, 2018, 4:34 p.m. UTC | #2
On 08/30/2018 12:24 PM, Florian Weimer wrote:
> On 08/30/2018 05:43 PM, Carlos O'Donell wrote:
>> +    * elf/tst-dlopen-aout.c: Include support/check.h. Use TEST_VERIFY.
> 
> Needs updating.  “e.g.” in the comment should probably be “that is” or “i.e.”.  Looks fine otherwise.

Thanks. Committed v3 with Changelog and typo fix.
diff mbox series

Patch

From 25874919ebd865bc6463c02c9408fa39394f4b7e Mon Sep 17 00:00:00 2001
From: Carlos O'Donell <carlos@redhat.com>
Date: Thu, 30 Aug 2018 11:01:33 -0400
Subject: [PATCH] Fix test failure with -DNDEBUG.

The elf/tst-dlopen-aout.c test uses asserts to verify properties of the
test execution.  Instead of using assert it should use xpthread_create
and xpthread_join to catch errors starting the threads and fail the
test.  This shows up in Fedora 28 when building for i686-pc-linux-gnu
and using gcc 8.1.1.

Tested on i686, and fixes a check failure with -DNDEBUG.

Signed-off-by: Carlos O'Donell <carlos@redhat.com>
---
 ChangeLog             |  4 ++++
 elf/tst-dlopen-aout.c | 12 ++++++------
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cdc9b8c207..00ea098fe1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@ 
+2018-02-30  Carlos O'Donell  <carlos@redhat.com>
+
+	* elf/tst-dlopen-aout.c: Include support/check.h. Use TEST_VERIFY.
+
 2018-08-28  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/aarch64/fpu/fenv_private.h: New file.  Based on ....
diff --git a/elf/tst-dlopen-aout.c b/elf/tst-dlopen-aout.c
index 9038e2096a..89119d62fa 100644
--- a/elf/tst-dlopen-aout.c
+++ b/elf/tst-dlopen-aout.c
@@ -27,6 +27,7 @@ 
 #include <dlfcn.h>
 #include <stdio.h>
 #include <pthread.h>
+#include <support/xthread.h>
 
 __thread int x;
 
@@ -45,7 +46,6 @@  do_test (int argc, char *argv[])
     {
       pthread_t thr;
       void *p;
-      int rc;
 
       p = dlopen (argv[0], RTLD_LAZY);
       if (p != NULL)
@@ -53,11 +53,11 @@  do_test (int argc, char *argv[])
           fprintf (stderr, "dlopen unexpectedly succeeded\n");
           return 1;
         }
-      rc = pthread_create (&thr, NULL, fn, NULL);
-      assert (rc == 0);
-
-      rc = pthread_join (thr, NULL);
-      assert (rc == 0);
+      /* We create threads to force TLS allocation, which triggers
+	 the original bug e.g. running out of surplus slotinfo entries
+	 for TLS.  */
+      thr = xpthread_create (NULL, fn, NULL);
+      xpthread_join (thr);
     }
 
   return 0;
-- 
2.17.1