summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2022-02-06 19:18:31 +0300
committerIvan Maidanski <ivmai@mail.ru>2022-02-06 19:18:31 +0300
commit8979d779cf2b1155b4804aa87ba3199f2ebbc49d (patch)
tree6f8a29e2abb8e48210b50876ef5dacf1b8902e26 /tests
parent86278a3d4e0669075dab0ea3f27abd8641189fc8 (diff)
downloadbdwgc-8979d779cf2b1155b4804aa87ba3199f2ebbc49d.tar.gz
Increase number of iterations in leak and middle tests
* tests/leak_test.c (N_TESTS): Define macro (to 100). * tests/thread_leak_test.c (N_TESTS): Likewise. * tests/leak_test.c (main): Replace 10 to N_TESTS; replace 9 to N_TESTS/2. * tests/thread_leak_test.c (main): Likewise. * tests/middle.c (N_TESTS): Define macro (to 40000). * tests/middle.c (ALLOC_SZ): Define macro. * tests/middle.c (main): Replace 20000 to N_TESTS; replace 4096 and 2048 to ALLOC_SZ and ALLOC_SZ/2, respectively.
Diffstat (limited to 'tests')
-rw-r--r--tests/leak_test.c10
-rw-r--r--tests/middle.c15
-rw-r--r--tests/thread_leak_test.c8
3 files changed, 20 insertions, 13 deletions
diff --git a/tests/leak_test.c b/tests/leak_test.c
index d745be1b..b54b3227 100644
--- a/tests/leak_test.c
+++ b/tests/leak_test.c
@@ -3,22 +3,24 @@
#include "gc/leak_detector.h"
+#define N_TESTS 100
+
int main(void) {
- char *p[10];
+ char *p[N_TESTS];
int i;
GC_set_find_leak(1); /* for new collect versions not compiled */
/* with -DFIND_LEAK. */
GC_INIT(); /* Needed if thread-local allocation is enabled. */
/* FIXME: This is not ideal. */
- for (i = 0; i < 10; ++i) {
+ for (i = 0; i < N_TESTS; ++i) {
p[i] = (char*)malloc(sizeof(int)+i);
}
CHECK_LEAKS();
- for (i = 1; i < 10; ++i) {
+ for (i = 1; i < N_TESTS; ++i) {
free(p[i]);
}
- for (i = 0; i < 9; ++i) {
+ for (i = 0; i < N_TESTS / 2; ++i) {
p[i] = (char*)malloc(sizeof(int)+i);
}
CHECK_LEAKS();
diff --git a/tests/middle.c b/tests/middle.c
index 9a7cc3d0..67c974ae 100644
--- a/tests/middle.c
+++ b/tests/middle.c
@@ -5,6 +5,9 @@
#include "gc.h"
#include <stdio.h>
+#define N_TESTS 40000
+#define ALLOC_SZ 4096 /* typical page size */
+
int main (void)
{
int i;
@@ -14,13 +17,13 @@ int main (void)
if (GC_get_find_leak())
printf("This test program is not designed for leak detection mode\n");
- for (i = 0; i < 20000; ++i) {
- (void)GC_malloc_atomic(4096);
- (void)GC_malloc(4096);
+ for (i = 0; i < N_TESTS; ++i) {
+ (void)GC_malloc_atomic(ALLOC_SZ);
+ (void)GC_malloc(ALLOC_SZ);
}
- for (i = 0; i < 20000; ++i) {
- (void)GC_malloc_atomic(2048);
- (void)GC_malloc(2048);
+ for (i = 0; i < N_TESTS; ++i) {
+ (void)GC_malloc_atomic(ALLOC_SZ/2);
+ (void)GC_malloc(ALLOC_SZ/2);
}
printf("Final heap size is %lu\n", (unsigned long)GC_get_heap_size());
return 0;
diff --git a/tests/thread_leak_test.c b/tests/thread_leak_test.c
index 00f1bfeb..33801c99 100644
--- a/tests/thread_leak_test.c
+++ b/tests/thread_leak_test.c
@@ -24,19 +24,21 @@
#include <stdio.h>
+#define N_TESTS 100
+
#ifdef GC_PTHREADS
void * test(void * arg)
#else
DWORD WINAPI test(LPVOID arg)
#endif
{
- int *p[10];
+ int *p[N_TESTS];
int i;
- for (i = 0; i < 10; ++i) {
+ for (i = 0; i < N_TESTS; ++i) {
p[i] = (int *)malloc(sizeof(int) + i);
}
CHECK_LEAKS();
- for (i = 1; i < 10; ++i) {
+ for (i = 1; i < N_TESTS; ++i) {
free(p[i]);
}
# ifdef GC_PTHREADS