1 /* Test that glibc.malloc.mxfast tunable works.
2 Copyright (C) 2019-2022 Free Software Foundation, Inc.
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
17 <https://www.gnu.org/licenses/>. */
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>
24 #include <libc-diag.h>
25 #include <support/check.h>
26
27 int
do_test(void)28 do_test (void)
29 {
30 struct mallinfo m;
31 char *volatile p1;
32 char *volatile p2;
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
40 /* The test below covers the deprecated mallinfo function. */
41 DIAG_PUSH_NEEDS_COMMENT;
42 DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wdeprecated-declarations");
43
44 m = mallinfo ();
45
46 DIAG_POP_NEEDS_COMMENT;
47
48 /* This will fail if there are any blocks in the fastbins. */
49 TEST_COMPARE (m.smblks, 0);
50
51 /* To keep gcc happy. */
52 free (p2);
53
54 return 0;
55 }
56
57 #include <support/test-driver.c>
58