hsearch_r: Apply VM size limit in test case
Commit Message
As discussed before.
Florian
Comments
On 02/08/2016 04:31 PM, Mike Frysinger wrote:
> OK -mike
Adhemerval,
is this okay for master?
<https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>
People building on larger boxes notice the test failure:
<https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>
Thanks,
Florian
On 12/02/16 08:31, Florian Weimer wrote:
> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>> OK -mike
>
> Adhemerval,
>
> is this okay for master?
>
> <https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>
>
> People building on larger boxes notice the test failure:
>
> <https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>
>
> Thanks,
> Florian
>
fwiw i tested the patch on aarch64 and fixes the issue as expected.
On 12-02-2016 06:31, Florian Weimer wrote:
> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>> OK -mike
>
> Adhemerval,
>
> is this okay for master?
Yes, thanks.
>
> <https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>
>
> People building on larger boxes notice the test failure:
>
> <https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>
>
> Thanks,
> Florian
>
On 02/12/2016 12:56 PM, Adhemerval Zanella wrote:
>
>
> On 12-02-2016 06:31, Florian Weimer wrote:
>> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>>> OK -mike
>>
>> Adhemerval,
>>
>> is this okay for master?
>
> Yes, thanks.
Thanks, pushed.
Florian
2016-02-08 Florian Weimer <fweimer@redhat.com>
* misc/bug18240.c (do_test): Set RLIMIT_AS.
@@ -22,6 +22,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
+#include <sys/resource.h>
static void
test_size (size_t size)
@@ -58,6 +59,27 @@ test_size (size_t size)
static int
do_test (void)
{
+ /* Limit the size of the process, so that memory allocation will
+ fail without impacting the entire system. */
+ {
+ struct rlimit limit;
+ if (getrlimit (RLIMIT_AS, &limit) != 0)
+ {
+ printf ("getrlimit (RLIMIT_AS) failed: %m\n");
+ return 1;
+ }
+ long target = 100 * 1024 * 1024;
+ if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target)
+ {
+ limit.rlim_cur = target;
+ if (setrlimit (RLIMIT_AS, &limit) != 0)
+ {
+ printf ("setrlimit (RLIMIT_AS) failed: %m\n");
+ return 1;
+ }
+ }
+ }
+
test_size (500);
test_size (-1);
test_size (-3);