blob: dc5731dbe73678cdb9251f7ef1d5884381d6192b [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <assert.h>
#include <stdint.h>
#include <stdlib.h>
#include <zxtest/zxtest.h>
static int uint32_t_cmp(const void* void_left, const void* void_right) {
uint32_t left = *(const uint32_t*)void_left;
uint32_t right = *(const uint32_t*)void_right;
if (left < right)
return -23;
else if (left > right)
return 42;
else
return 0;
}
static uint32_t test_data[] = {
0xfd93ad4b, 0xfbc93cfc, 0x2042953f, 0x45f58b5d, 0x139aded5, 0xf07894da, 0xfc6f3f63, 0xd266dac2,
0x6a09d2c9, 0x472963a6, 0x72ff8380, 0x77aef16e, 0x97d3b43e, 0x1ec37308, 0x8afcc082, 0xaf555791,
0x27c148b3, 0x4cc07328, 0x1437ddcb, 0x9143a405, 0xd25f9d59, 0x4b013ae3, 0x09c9926e, 0x16323444,
0xcf772eaa, 0x30fb2777, 0xeb805772, 0xa0996cd2, 0xa59f4e3b, 0x7d6337ed, 0x7163e2bc, 0x83d840b7,
0x0cd31ff0, 0x96df9945, 0x30f77172, 0x876f460d, 0x2a9ae4a4, 0x3a7fe7d2, 0xdc6b40b5, 0xd4346410,
0x2a876b4a, 0x265a2fa0, 0x107afc8b, 0xde242755, 0x0ae34c30, 0x497c2f15, 0x4b489e3b, 0x9fc7f96e,
0xbe20c9c4, 0x27d1a3b5, 0x26317d23, 0x2720afa9, 0x8ebd9f38, 0x7d8277be, 0x85aca8e8, 0x71cb98d0,
0xc0d1b711, 0x831868e3, 0x05bc3fb0, 0x0a22c7ed, 0x27291a38, 0xbf04e1a7, 0x7707d917, 0x3abcab71,
0xd6ba4a0e, 0x65aa7f35, 0xdee2bfd9, 0x52497e8c, 0x4b6ef8e5, 0x73c4bdad, 0x222febe6, 0x5560f245,
0x9b40283f, 0x605a2f7f, 0xb2a0aa94, 0xca366ff9, 0xe0407032, 0x6eb04055, 0xa0d6dfbd, 0xbe20d149,
0xe28d07b8, 0xcb7cfee9, 0x4c64ee95, 0xda9f948c, 0x20bea02d, 0x58635300, 0x49ede10b, 0xdf2acc68,
0xeb965466, 0xe5f40b17, 0x9102a5a1, 0x92e1dde4, 0x73c28587, 0xd1e0ca1a, 0xb5df028b, 0xff253fe2,
0x723a1b88, 0x5c792fc9, 0x7a3f645a, 0x317fab1a, 0x940f4a4d, 0xbd0545d8, 0x1d349c89, 0xf3746429,
0xd9a8a7bf, 0xaf24eed2, 0xdb48f4e8, 0xe2d1e6e1, 0xa60317f9, 0x490bf590, 0xd7aabb79, 0x32b2e7d8,
0xd6fd3d51, 0x822a69ac, 0xf79a3deb, 0x1093a5b7, 0x96a9b83f, 0xc3345f2b, 0xf1fda702, 0xfd895346,
0x56c2ae32, 0xdd9e52d3, 0x86f7cf57, 0x58c320ca, 0xdfc296d4, 0x6681d69e, 0x43a27d19, 0xd37988f5,
};
TEST(QSort, QSort) {
size_t length = sizeof(test_data) / sizeof(*test_data);
qsort(test_data, length, sizeof(*test_data), uint32_t_cmp);
for (size_t idx = 1; idx < length; idx++) {
uint32_t* left = test_data + idx - 1;
uint32_t* right = test_data + idx;
int c = uint32_t_cmp(left, right);
EXPECT_LT(c, 0, "array not sorted!");
}
}