1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

celldb: add test for load nonexisting cell, test thread safeness of CellUsageTree, fixes

This commit is contained in:
birydrad 2025-01-15 14:25:25 +00:00
parent c863c42ed1
commit 597f3b7020
7 changed files with 130 additions and 61 deletions

View file

@ -774,8 +774,15 @@ class MetaStorage {
CHECK(p.first.size() != CellTraits::hash_bytes);
}
}
std::vector<std::pair<std::string, std::string>> meta_get_all() const {
return td::transform(meta_, [](const auto &p) { return std::make_pair(p.first, p.second); });
std::vector<std::pair<std::string, std::string>> meta_get_all(size_t max_count) const {
std::vector<std::pair<std::string, std::string>> res;
for (const auto &[k, v] : meta_) {
if (res.size() >= max_count) {
break;
}
res.emplace_back(k, v);
}
return res;
}
KeyValue::GetStatus meta_get(td::Slice key, std::string &value) const {
auto lock = local_access_.lock();
@ -814,8 +821,8 @@ class InMemoryBagOfCellsDb : public DynamicBagOfCellsDb {
: storage_(std::move(storage)), meta_storage_(std::move(meta_storage)) {
}
td::Result<std::vector<std::pair<std::string, std::string>>> meta_get_all() const override {
return meta_storage_->meta_get_all();
td::Result<std::vector<std::pair<std::string, std::string>>> meta_get_all(size_t max_count) const override {
return meta_storage_->meta_get_all(max_count);
}
td::Result<KeyValue::GetStatus> meta_get(td::Slice key, std::string &value) override {
CHECK(key.size() != CellTraits::hash_bytes);