]> git.ipfire.org Git - thirdparty/glibc.git/blame - malloc/tst-mxfast.c
string: Use builtins for ffs and ffsll
[thirdparty/glibc.git] / malloc / tst-mxfast.c
CommitLineData
c48d92b4 1/* Test that glibc.malloc.mxfast tunable works.
dff8da6b 2 Copyright (C) 2019-2024 Free Software Foundation, Inc.
c48d92b4
DD
3 This file is part of the GNU C Library.
4
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
5a82c748 17 <https://www.gnu.org/licenses/>. */
c48d92b4
DD
18
19/* This test verifies that setting the glibc.malloc.mxfast tunable to
20 zero results in free'd blocks being returned to the small bins, not
21 the fast bins. */
22
23#include <malloc.h>
30e5069c 24#include <libc-diag.h>
f9769a23 25#include <support/check.h>
c48d92b4
DD
26
27int
f9769a23 28do_test (void)
c48d92b4
DD
29{
30 struct mallinfo m;
f9769a23
FW
31 char *volatile p1;
32 char *volatile p2;
c48d92b4
DD
33
34 /* Arbitrary value; must be in default fastbin range. */
35 p1 = malloc (3);
36 /* Something large so that p1 isn't a "top block" */
37 p2 = malloc (512);
38 free (p1);
39
30e5069c
AZ
40 /* The test below covers the deprecated mallinfo function. */
41 DIAG_PUSH_NEEDS_COMMENT;
42 DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
43
f9769a23 44 m = mallinfo ();
c48d92b4 45
30e5069c
AZ
46 DIAG_POP_NEEDS_COMMENT;
47
c48d92b4 48 /* This will fail if there are any blocks in the fastbins. */
f9769a23 49 TEST_COMPARE (m.smblks, 0);
c48d92b4
DD
50
51 /* To keep gcc happy. */
52 free (p2);
53
54 return 0;
55}
56
57#include <support/test-driver.c>