aboutsummaryrefslogtreecommitdiffstats
path: root/tests/stdlib_test.cpp
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-04-11 18:08:34 -0700
committerElliott Hughes <enh@google.com>2013-04-11 18:08:34 -0700
commit0b25f633a23e575c8a1f9547d1af5dc5b0157a1c (patch)
tree9528feda9457254ba485c9576643f2ed1a18da70 /tests/stdlib_test.cpp
parented36d95fac5881f78a601e2932f51edfd27c6ba6 (diff)
downloadandroid_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.cpp23
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);
+}