]> git.ipfire.org Git - thirdparty/glibc.git/blame - malloc/tst-trim1.c
Prefer https for Sourceware links
[thirdparty/glibc.git] / malloc / tst-trim1.c
CommitLineData
be8c1500
UD
1#include <malloc.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5
6#define N 10000
7
8static void *arr[N];
9
10static int
11do_test (void)
12{
13 for (int i = 0; i < N; ++i)
14 {
15 size_t size = random () % 16384;
16
17 if ((arr[i] = malloc (size)) == NULL)
18 {
19 nomem:
20 puts ("not enough memory");
21 return 0;
22 }
23
24 memset (arr[i], size, size);
25 }
26
27 void *p = malloc (256);
28 if (p == NULL)
29 goto nomem;
30 memset (p, 1, 256);
31
32 puts ("==================================================================");
33
34 for (int i = 0; i < N; ++i)
35 if (i % 13 != 0)
36 free (arr[i]);
37
38 puts ("==================================================================");
39
40 malloc_trim (0);
41
42 puts ("==================================================================");
43
44 p = malloc (30000);
45 if (p == NULL)
46 goto nomem;
47
48 memset (p, 2, 30000);
49
50 malloc_trim (0);
51
52 return 0;
53}
54
55#define TEST_FUNCTION do_test ()
56#include "../test-skeleton.c"