diff options
-rw-r--r-- | bench.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -37,6 +37,16 @@ static inline unsigned long timediff_ms(struct timespec *start, struct timespec return 1000 * (stop->tv_sec - start->tv_sec) + (stop->tv_nsec - start->tv_nsec) / 1000000; } +static inline void assert_sorted(int *buffer, size_t size) +{ + if (!size) return; + int prev = buffer[0]; + for (size_t i = 1; i < size; i++) { + if (prev > buffer[i]) abort(); + prev = buffer[i]; + } +} + int main() { struct timespec start, stop; @@ -61,6 +71,7 @@ int main() if (clock_gettime(CLOCK_THREAD_CPUTIME_ID, &stop)) abort(); printf("%*lu %*lu ", CMP_WIDTH, comparisons, MS_WIDTH, timediff_ms(&start, &stop)); + assert_sorted(buffer, size); } printf(" %*zu\n", SIZE_WIDTH, size); } |