This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix core dump test case failure with a ulimit check in gdb.base/auxv.exp


On Mon, 19 Mar 2012 16:57:31 +0100, Siddhesh Poyarekar wrote:
> To check whether setrlimit and sys/resource.h exist, I added an auto-header
> feature to the testsuite configure script

Sorry but there are IIRC rather plans to remove the testsuite configure script
at all.  I also find your solution too heavyweight.

I hope you find this simplified patch sufficient enough.


Thanks,
Jan


2012-03-19  Jan Kratochvil  <jan.kratochvil@redhat.com>
	    Siddhesh Poyarekar  <siddhesh@redhat.com>

	* gdb.base/auxv.c (func2): setrlimit to infinity to enable core dumps.
	* gdb.base/auxv.exp: Try to compile it with -DUSE_RLIMIT first.
	(generate native core dump): Make the test unsupported if core cannot
	be generated.

--- a/gdb/testsuite/gdb.base/auxv.c
+++ b/gdb/testsuite/gdb.base/auxv.c
@@ -35,6 +35,13 @@
 #define ABORT {char *invalid = 0; *invalid = 0xFF;}
 #endif
 
+#ifdef USE_RLIMIT
+# include <sys/resource.h>
+# ifndef RLIM_INFINITY
+#  define RLIM_INFINITY -1
+# endif
+#endif /* USE_RLIMIT */
+
 /* Don't make these automatic vars or we will have to walk back up the
    stack to access them. */
 
@@ -53,6 +60,14 @@ func2 (int x)
   int i;
   static int y;
 
+#ifdef USE_RLIMIT
+  {
+    struct rlimit rlim = { RLIM_INFINITY, RLIM_INFINITY };
+
+    setrlimit (RLIMIT_CORE, &rlim);
+  }
+#endif
+
   /* Make sure that coremaker_local doesn't get optimized away. */
   for (i = 0; i < 5; i++)
     coremaker_local[i] = i;
--- a/gdb/testsuite/gdb.base/auxv.exp
+++ b/gdb/testsuite/gdb.base/auxv.exp
@@ -31,7 +31,10 @@ set binfile ${objdir}/${subdir}/${testfile}
 set corefile ${objdir}/${subdir}/${testfile}.corefile
 set gcorefile ${objdir}/${subdir}/${testfile}.gcore
 
-if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+		  {debug additional_flags=-DUSE_RLIMIT}] != ""
+     && [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+		  {debug}] != "" } {
     untested "couldn't compile ${srcdir}/${subdir}/${srcfile}"
     return -1
 }
@@ -155,7 +158,7 @@ if {$core_works} {
     } else {
 	set core_works 0
 	warning "can't generate a core file - core tests suppressed - check ulimit -c"
-	fail $test
+	unsupported $test
     }
 } else {
     unsupported $test


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]