mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-05-31 00:05:13 +02:00
Update to leveldb upstream using subtree merge
This commit is contained in:
@@ -2,13 +2,14 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||
|
||||
#include "util/coding.h"
|
||||
#include <vector>
|
||||
|
||||
#include "util/coding.h"
|
||||
#include "util/testharness.h"
|
||||
|
||||
namespace leveldb {
|
||||
|
||||
class Coding { };
|
||||
class Coding {};
|
||||
|
||||
TEST(Coding, Fixed32) {
|
||||
std::string s;
|
||||
@@ -38,15 +39,15 @@ TEST(Coding, Fixed64) {
|
||||
uint64_t v = static_cast<uint64_t>(1) << power;
|
||||
uint64_t actual;
|
||||
actual = DecodeFixed64(p);
|
||||
ASSERT_EQ(v-1, actual);
|
||||
ASSERT_EQ(v - 1, actual);
|
||||
p += sizeof(uint64_t);
|
||||
|
||||
actual = DecodeFixed64(p);
|
||||
ASSERT_EQ(v+0, actual);
|
||||
ASSERT_EQ(v + 0, actual);
|
||||
p += sizeof(uint64_t);
|
||||
|
||||
actual = DecodeFixed64(p);
|
||||
ASSERT_EQ(v+1, actual);
|
||||
ASSERT_EQ(v + 1, actual);
|
||||
p += sizeof(uint64_t);
|
||||
}
|
||||
}
|
||||
@@ -88,7 +89,7 @@ TEST(Coding, Varint32) {
|
||||
uint32_t actual;
|
||||
const char* start = p;
|
||||
p = GetVarint32Ptr(p, limit, &actual);
|
||||
ASSERT_TRUE(p != NULL);
|
||||
ASSERT_TRUE(p != nullptr);
|
||||
ASSERT_EQ(expected, actual);
|
||||
ASSERT_EQ(VarintLength(actual), p - start);
|
||||
}
|
||||
@@ -107,8 +108,8 @@ TEST(Coding, Varint64) {
|
||||
// Test values near powers of two
|
||||
const uint64_t power = 1ull << k;
|
||||
values.push_back(power);
|
||||
values.push_back(power-1);
|
||||
values.push_back(power+1);
|
||||
values.push_back(power - 1);
|
||||
values.push_back(power + 1);
|
||||
}
|
||||
|
||||
std::string s;
|
||||
@@ -123,19 +124,18 @@ TEST(Coding, Varint64) {
|
||||
uint64_t actual;
|
||||
const char* start = p;
|
||||
p = GetVarint64Ptr(p, limit, &actual);
|
||||
ASSERT_TRUE(p != NULL);
|
||||
ASSERT_TRUE(p != nullptr);
|
||||
ASSERT_EQ(values[i], actual);
|
||||
ASSERT_EQ(VarintLength(actual), p - start);
|
||||
}
|
||||
ASSERT_EQ(p, limit);
|
||||
|
||||
}
|
||||
|
||||
TEST(Coding, Varint32Overflow) {
|
||||
uint32_t result;
|
||||
std::string input("\x81\x82\x83\x84\x85\x11");
|
||||
ASSERT_TRUE(GetVarint32Ptr(input.data(), input.data() + input.size(), &result)
|
||||
== NULL);
|
||||
ASSERT_TRUE(GetVarint32Ptr(input.data(), input.data() + input.size(),
|
||||
&result) == nullptr);
|
||||
}
|
||||
|
||||
TEST(Coding, Varint32Truncation) {
|
||||
@@ -144,17 +144,18 @@ TEST(Coding, Varint32Truncation) {
|
||||
PutVarint32(&s, large_value);
|
||||
uint32_t result;
|
||||
for (size_t len = 0; len < s.size() - 1; len++) {
|
||||
ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + len, &result) == NULL);
|
||||
ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + len, &result) == nullptr);
|
||||
}
|
||||
ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + s.size(), &result) != NULL);
|
||||
ASSERT_TRUE(GetVarint32Ptr(s.data(), s.data() + s.size(), &result) !=
|
||||
nullptr);
|
||||
ASSERT_EQ(large_value, result);
|
||||
}
|
||||
|
||||
TEST(Coding, Varint64Overflow) {
|
||||
uint64_t result;
|
||||
std::string input("\x81\x82\x83\x84\x85\x81\x82\x83\x84\x85\x11");
|
||||
ASSERT_TRUE(GetVarint64Ptr(input.data(), input.data() + input.size(), &result)
|
||||
== NULL);
|
||||
ASSERT_TRUE(GetVarint64Ptr(input.data(), input.data() + input.size(),
|
||||
&result) == nullptr);
|
||||
}
|
||||
|
||||
TEST(Coding, Varint64Truncation) {
|
||||
@@ -163,9 +164,10 @@ TEST(Coding, Varint64Truncation) {
|
||||
PutVarint64(&s, large_value);
|
||||
uint64_t result;
|
||||
for (size_t len = 0; len < s.size() - 1; len++) {
|
||||
ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + len, &result) == NULL);
|
||||
ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + len, &result) == nullptr);
|
||||
}
|
||||
ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + s.size(), &result) != NULL);
|
||||
ASSERT_TRUE(GetVarint64Ptr(s.data(), s.data() + s.size(), &result) !=
|
||||
nullptr);
|
||||
ASSERT_EQ(large_value, result);
|
||||
}
|
||||
|
||||
@@ -191,6 +193,4 @@ TEST(Coding, Strings) {
|
||||
|
||||
} // namespace leveldb
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
return leveldb::test::RunAllTests();
|
||||
}
|
||||
int main(int argc, char** argv) { return leveldb::test::RunAllTests(); }
|
||||
|
||||
Reference in New Issue
Block a user