From 0b25f633a23e575c8a1f9547d1af5dc5b0157a1c Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 11 Apr 2013 18:08:34 -0700 Subject: Switch to current FreeBSD qsort. Change-Id: Ic46cd0b663dc5fa78c99dd38db0bfe849a25e789 --- tests/stdlib_test.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'tests/stdlib_test.cpp') 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(lhs)->name, reinterpret_cast(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); +} -- cgit v1.2.3