diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-10-16 21:12:00 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-10-16 21:12:00 +0300 |
| commit | e962c7a4c70b6e2c3f2df89be176c491d62739e7 (patch) | |
| tree | a5c22494b81fdc52ff053fc417f5039a2efb6dba /tests | |
| parent | 717eb9512cbd98e965c1b842cbc9d84e218c37c2 (diff) | |
| download | conts-master.tar.gz conts-master.zip | |
+ Regular tests are pretty darn slow with valgrind on certain virtual
machines, speed them up a bit
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/map.c | 10 | ||||
| -rw-r--r-- | tests/sptree.c | 20 | ||||
| -rw-r--r-- | tests/spvec.c | 16 | ||||
| -rw-r--r-- | tests/test.h | 4 | ||||
| -rw-r--r-- | tests/vec.c | 17 |
5 files changed, 36 insertions, 31 deletions
diff --git a/tests/map.c b/tests/map.c index f9f919b..9af0b01 100644 --- a/tests/map.c +++ b/tests/map.c @@ -37,17 +37,17 @@ int main() assert(false && "iterating empty map"); } - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { if (!ints_insert(&ints, i, i)) { fprintf(stderr, "failed inserting %d\n", i); ints_destroy(&ints); return -1; } } - assert(ints_len(&ints) == 1000000); + assert(ints_len(&ints) == ITER); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { int *v = ints_find(&ints, i); assert(v && *v == i); } @@ -71,9 +71,9 @@ int main() count++; } - assert(count == 1000000); + assert(count == ITER); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { ints_remove(&ints, i); } diff --git a/tests/sptree.c b/tests/sptree.c index 9eff356..3499d61 100644 --- a/tests/sptree.c +++ b/tests/sptree.c @@ -16,6 +16,10 @@ #include <conts/sptree.h> +#define RANDITER (ITER / 100) + +int inserted[RANDITER]; + int main() { #if defined(COVERAGE) @@ -29,16 +33,16 @@ int main() assert(false && "iterating empty tree"); } - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { if (!ints_insert(&ints, i)) { fprintf(stderr, "failed inserting %d\n", i); ints_destroy(&ints); return -1; } } - assert(ints_len(&ints) == 1000000); + assert(ints_len(&ints) == ITER); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { int *v = ints_find(&ints, i); assert(v && *v == i); } @@ -57,7 +61,7 @@ int main() i++; } - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { ints_remove(&ints, i); } @@ -69,25 +73,23 @@ int main() /* insert random integers to hopefully exercise the code a bit more */ srand(0); - int inserted[1000]; - for (int i = 0; i < 1000; ++i) { + for (int i = 0; i < RANDITER; ++i) { inserted[i] = rand(); /* covsrv shouldn't fail anymore */ assert(ints_insert(&ints, inserted[i])); } - for (int i = 0; i < 1000; ++i) { + for (int i = 0; i < RANDITER; ++i) { int *v = ints_find(&ints, inserted[i]); assert(v && *v == inserted[i]); } - for (int i = 0; i < 1000; ++i) { + for (int i = 0; i < RANDITER; ++i) { ints_remove(&ints, inserted[i]); } assert(ints_len(&ints) == 0); - ints_destroy(&ints); } diff --git a/tests/spvec.c b/tests/spvec.c index b46bd88..b169884 100644 --- a/tests/spvec.c +++ b/tests/spvec.c @@ -38,16 +38,16 @@ int main() ints_reset(&ints); assert(ints_len(&ints) == 0); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { if (!ints_append(&ints, i)) { fprintf(stderr, "failed appending %d to vec\n", i); ints_destroy(&ints); return -1; } } - assert(ints_len(&ints) == 1000000); + assert(ints_len(&ints) == ITER); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { int *v = ints_at(&ints, i); assert(v && *v == i); } @@ -59,7 +59,7 @@ int main() } /* TEN million !!1! */ - if (!ints_reserve(&ints, 10000000)) { + if (!ints_reserve(&ints, 10 * ITER)) { fprintf(stderr, "failed reserving vec\n"); ints_destroy(&ints); return -1; @@ -69,13 +69,13 @@ int main() * (is shrink necessary when we already have reserve? I * guess it shows intention a bit better and just asserts instead of * maybe fails?) */ - ints_shrink(&ints, 1000000); + ints_shrink(&ints, ITER); /* so the above is equivalent to */ - assert(ints_reserve(&ints, 1000000)); - assert(ints_len(&ints) == 1000000); + assert(ints_reserve(&ints, ITER)); + assert(ints_len(&ints) == ITER); - for (int i = 1000000 - 1; i >= 0; --i) { + for (int i = ITER - 1; i >= 0; --i) { ints_remove(&ints, i); } assert(ints_len(&ints) == 0); diff --git a/tests/test.h b/tests/test.h index 2fa0879..ea50db0 100644 --- a/tests/test.h +++ b/tests/test.h @@ -9,4 +9,8 @@ #define callocc(...) cover_ptr(calloc, __VA_ARGS__) #define reallocc(...) cover_ptr(realloc, __VA_ARGS__) +#ifndef ITER +#define ITER 1000000 +#endif + #endif /* TEST_H */ diff --git a/tests/vec.c b/tests/vec.c index af36b5c..09a8deb 100644 --- a/tests/vec.c +++ b/tests/vec.c @@ -32,16 +32,16 @@ int main() assert(false && "iterating empty vec"); } - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { if (!ints_append(&ints, i)) { fprintf(stderr, "failed appending %d to vec\n", i); ints_destroy(&ints); return -1; } } - assert(ints_len(&ints) == 1000000); + assert(ints_len(&ints) == ITER); - for (int i = 0; i < 1000000; ++i) { + for (int i = 0; i < ITER; ++i) { int *v = ints_at(&ints, i); assert(v && *v == i); } @@ -52,8 +52,7 @@ int main() i++; } - /* TEN million !!1! */ - if (!ints_reserve(&ints, 10000000)) { + if (!ints_reserve(&ints, 10 * ITER)) { fprintf(stderr, "failed reserving vec\n"); ints_destroy(&ints); return -1; @@ -63,13 +62,13 @@ int main() * (is shrink necessary when we already have reserve? I * guess it shows intention a bit better and just asserts instead of * maybe fails?) */ - ints_shrink(&ints, 1000000); + ints_shrink(&ints, ITER); /* so the above is equivalent to */ - assert(ints_reserve(&ints, 1000000)); - assert(ints_len(&ints) == 1000000); + assert(ints_reserve(&ints, ITER)); + assert(ints_len(&ints) == ITER); - for (int i = 1000000 - 1; i >= 0; --i) { + for (int i = ITER - 1; i >= 0; --i) { ints_remove(&ints, i); } assert(ints_len(&ints) == 0); |
