src: Fix bug in get_uint64
This commit is contained in:
parent
020e66b9da
commit
81add96b1e
|
@ -1158,7 +1158,7 @@ uint64_t get_uint64(const uint8_t *data) {
|
|||
n += static_cast<uint64_t>(data[1]) << 48;
|
||||
n += static_cast<uint64_t>(data[2]) << 40;
|
||||
n += static_cast<uint64_t>(data[3]) << 32;
|
||||
n += data[4] << 24;
|
||||
n += static_cast<uint64_t>(data[4]) << 24;
|
||||
n += data[5] << 16;
|
||||
n += data[6] << 8;
|
||||
n += data[7];
|
||||
|
|
|
@ -394,12 +394,22 @@ void test_util_localtime_date(void) {
|
|||
}
|
||||
|
||||
void test_util_get_uint64(void) {
|
||||
auto v = std::array<unsigned char, 8>{
|
||||
{0x01, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xab, 0xbc}};
|
||||
{
|
||||
auto v = std::array<unsigned char, 8>{
|
||||
{0x01, 0x12, 0x34, 0x56, 0xff, 0x9a, 0xab, 0xbc}};
|
||||
|
||||
auto n = util::get_uint64(v.data());
|
||||
auto n = util::get_uint64(v.data());
|
||||
|
||||
CU_ASSERT(0x01123456789aabbcULL == n);
|
||||
CU_ASSERT(0x01123456ff9aabbcULL == n);
|
||||
}
|
||||
{
|
||||
auto v = std::array<unsigned char, 8>{
|
||||
{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}};
|
||||
|
||||
auto n = util::get_uint64(v.data());
|
||||
|
||||
CU_ASSERT(0xffffffffffffffffULL == n);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace shrpx
|
||||
|
|
Loading…
Reference in New Issue