diff options
-rw-r--r-- | src/regress/lib/libc/qsort/Makefile | 4 | ||||
-rw-r--r-- | src/regress/lib/libc/qsort/qsort_test.c | 14 |
2 files changed, 8 insertions, 10 deletions
diff --git a/src/regress/lib/libc/qsort/Makefile b/src/regress/lib/libc/qsort/Makefile index d3c4e2baa2..9062e26f95 100644 --- a/src/regress/lib/libc/qsort/Makefile +++ b/src/regress/lib/libc/qsort/Makefile | |||
@@ -1,9 +1,7 @@ | |||
1 | # $OpenBSD: Makefile,v 1.1 2017/05/17 14:47:06 millert Exp $ | 1 | # $OpenBSD: Makefile,v 1.2 2017/05/17 20:28:35 millert Exp $ |
2 | 2 | ||
3 | PROG= qsort_test | 3 | PROG= qsort_test |
4 | CFLAGS+=-Wall | 4 | CFLAGS+=-Wall |
5 | LDADD+= -lm | ||
6 | DPADD+= ${LIBM} | ||
7 | 5 | ||
8 | qsort-regress: ${PROG} | 6 | qsort-regress: ${PROG} |
9 | ./${PROG} | 7 | ./${PROG} |
diff --git a/src/regress/lib/libc/qsort/qsort_test.c b/src/regress/lib/libc/qsort/qsort_test.c index b23f3e6190..3b36eb06b4 100644 --- a/src/regress/lib/libc/qsort/qsort_test.c +++ b/src/regress/lib/libc/qsort/qsort_test.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <stdlib.h> | 18 | #include <stdlib.h> |
19 | #include <string.h> | 19 | #include <string.h> |
20 | #include <setjmp.h> | 20 | #include <setjmp.h> |
21 | #include <math.h> | ||
22 | #include <err.h> | 21 | #include <err.h> |
23 | 22 | ||
24 | /* | 23 | /* |
@@ -235,16 +234,17 @@ run_tests(int m, int n) | |||
235 | { | 234 | { |
236 | int *x, *y, *z; | 235 | int *x, *y, *z; |
237 | int ret = 0; | 236 | int ret = 0; |
238 | double nlgn; | 237 | int idx, nlgn = 0; |
239 | enum distribution dist; | 238 | enum distribution dist; |
240 | 239 | ||
241 | /* | 240 | /* |
242 | * The expected number of compares is A * n * log2(n) | 241 | * We expect A*n*lg(n) compares where A is between 1 and 2. |
243 | * where A is between 1 and 2. If A is greater than 1.5 | 242 | * For A > 1.5, print a warning. |
244 | * we'll print a warning. If A is greater than 10 we | 243 | * For A > 10 abort the test since qsort has probably gone quadratic. |
245 | * abort the test since qsort has probably gone quadratic. | ||
246 | */ | 244 | */ |
247 | nlgn = n * log2(n); | 245 | for (idx = n - 1; idx > 0; idx >>= 1) |
246 | nlgn++; | ||
247 | nlgn *= n; | ||
248 | max_compares = nlgn * 1.5; | 248 | max_compares = nlgn * 1.5; |
249 | abrt_compares = nlgn * 10; | 249 | abrt_compares = nlgn * 10; |
250 | 250 | ||