tst-trim1.c 962 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <malloc.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #define N 10000
  6. static void *arr[N];
  7. static int
  8. do_test (void)
  9. {
  10. for (int i = 0; i < N; ++i)
  11. {
  12. size_t size = random () % 16384;
  13. if ((arr[i] = malloc (size)) == NULL)
  14. {
  15. nomem:
  16. puts ("not enough memory");
  17. return 0;
  18. }
  19. memset (arr[i], size, size);
  20. }
  21. void *p = malloc (256);
  22. if (p == NULL)
  23. goto nomem;
  24. memset (p, 1, 256);
  25. puts ("==================================================================");
  26. for (int i = 0; i < N; ++i)
  27. if (i % 13 != 0)
  28. free (arr[i]);
  29. puts ("==================================================================");
  30. malloc_trim (0);
  31. puts ("==================================================================");
  32. p = malloc (30000);
  33. if (p == NULL)
  34. goto nomem;
  35. memset (p, 2, 30000);
  36. malloc_trim (0);
  37. return 0;
  38. }
  39. #define TEST_FUNCTION do_test ()
  40. #include "../test-skeleton.c"