diff options
author | Elliott Hughes <enh@google.com> | 2013-04-11 18:08:34 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2013-04-11 18:08:34 -0700 |
commit | 0b25f633a23e575c8a1f9547d1af5dc5b0157a1c (patch) | |
tree | 9528feda9457254ba485c9576643f2ed1a18da70 /tests/stdlib_test.cpp | |
parent | ed36d95fac5881f78a601e2932f51edfd27c6ba6 (diff) | |
download | android_bionic-0b25f633a23e575c8a1f9547d1af5dc5b0157a1c.tar.gz android_bionic-0b25f633a23e575c8a1f9547d1af5dc5b0157a1c.tar.bz2 android_bionic-0b25f633a23e575c8a1f9547d1af5dc5b0157a1c.zip |
Switch to current FreeBSD qsort.
Change-Id: Ic46cd0b663dc5fa78c99dd38db0bfe849a25e789
Diffstat (limited to 'tests/stdlib_test.cpp')
-rw-r--r-- | tests/stdlib_test.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/stdlib_test.cpp b/tests/stdlib_test.cpp index fed39f87b..e5d78122c 100644 --- a/tests/stdlib_test.cpp +++ b/tests/stdlib_test.cpp @@ -109,3 +109,26 @@ TEST(stdlib, realpath) { ASSERT_STREQ(executable_path, p); free(p); } + +TEST(stdlib, qsort) { + struct s { + char name[16]; + static int comparator(const void* lhs, const void* rhs) { + return strcmp(reinterpret_cast<const s*>(lhs)->name, reinterpret_cast<const s*>(rhs)->name); + } + }; + s entries[3]; + strcpy(entries[0].name, "charlie"); + strcpy(entries[1].name, "bravo"); + strcpy(entries[2].name, "alpha"); + + qsort(entries, 3, sizeof(s), s::comparator); + ASSERT_STREQ("alpha", entries[0].name); + ASSERT_STREQ("bravo", entries[1].name); + ASSERT_STREQ("charlie", entries[2].name); + + qsort(entries, 3, sizeof(s), s::comparator); + ASSERT_STREQ("alpha", entries[0].name); + ASSERT_STREQ("bravo", entries[1].name); + ASSERT_STREQ("charlie", entries[2].name); +} |