diff --git a/tests/Makefile b/tests/Makefile index f6ccb321d4..b9790c1eca 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -53,6 +53,7 @@ EXPECT_NAMES=\ stdlib/div \ stdlib/env \ stdlib/mkostemps \ + stdlib/qsort \ stdlib/rand \ stdlib/rand48 \ stdlib/random \ diff --git a/tests/expected/bins_static/stdlib/qsort.stderr b/tests/expected/bins_static/stdlib/qsort.stderr new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/expected/bins_static/stdlib/qsort.stdout b/tests/expected/bins_static/stdlib/qsort.stdout new file mode 100644 index 0000000000..49755a611e --- /dev/null +++ b/tests/expected/bins_static/stdlib/qsort.stdout @@ -0,0 +1,2 @@ +Before: 23 16 8 4 42 15 +After: 4 8 15 16 23 42 diff --git a/tests/stdlib/qsort.c b/tests/stdlib/qsort.c new file mode 100644 index 0000000000..24c742d35e --- /dev/null +++ b/tests/stdlib/qsort.c @@ -0,0 +1,32 @@ +#include +#include + +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) + +int values[] = { 23, 16, 8, 4, 42, 15 }; + +int cmpfunc (const void * a_ptr, const void * b_ptr) { + int a = *(const int *)a_ptr; + int b = *(const int *)b_ptr; + return a - b; +} + +int main () { + int i; + + printf("Before: "); + for(i = 0; i < ARRAY_SIZE(values); i++) { + printf("%d ", values[i]); + } + printf("\n"); + + qsort(values, ARRAY_SIZE(values), sizeof(int), cmpfunc); + + printf("After: "); + for(i = 0; i < ARRAY_SIZE(values); i++) { + printf("%d ", values[i]); + } + printf("\n"); + + return 0; +}