tests: fix tests

This commit is contained in:
Crypto City 2022-05-17 10:40:31 +00:00
parent 21a7c0ab85
commit 1bf09dfa66
3 changed files with 40 additions and 8 deletions

View File

@ -57,7 +57,7 @@ private:
};
public:
TestDB() { m_open = true; item_id = ITEM_FIRST_USER; }
TestDB() { m_open = true; }
virtual void add_block( const cryptonote::block& blk
, size_t block_weight
@ -103,14 +103,24 @@ public:
virtual void set_hard_fork_version(uint64_t height, uint8_t version) override { if (height >= hf.size()) hf.resize(height + 1); hf[height] = version; }
virtual uint8_t get_hard_fork_version(uint64_t height) const override { if (height >= hf.size()) return 255; return hf[height]; }
virtual uint32_t allocate_new_cc_custom_item(uint32_t creator, uint64_t creation_height, const std::string &name, bool is_group, bool is_public, uint32_t group, const std::string &primary_description, const std::string &secondary_description, uint64_t gold, const std::string &coin_design, const std::vector<uint64_t> &user_data, const crypto::hash &hash) { return item_id++; }
virtual uint32_t allocate_new_cc_custom_item(uint32_t creator, uint64_t creation_height, const std::string &name, bool is_group, bool is_public, uint32_t group, const std::string &primary_description, const std::string &secondary_description, uint64_t gold, const std::string &coin_design, const std::vector<uint64_t> &user_data, const crypto::hash &hash) {
size_t idx;
for (idx = 0; idx < custom_items.size(); ++idx)
if (!custom_items[idx])
break;
if (idx == custom_items.size())
custom_items.push_back(true);
custom_items[idx] = true;
return ITEM_FIRST_USER + idx;
}
virtual void delete_cc_custom_item(uint32_t id) { custom_items[id - ITEM_FIRST_USER] = false; }
virtual bool get_cc_city_data(uint32_t id, cryptonote::cc_city_data_t &cd) const { cd = {}; return true; }
private:
std::vector<block_t> blocks;
std::vector<uint8_t> hf;
uint32_t item_id;
std::vector<bool> custom_items;
};
}

View File

@ -398,6 +398,15 @@ public:
return true;
}
virtual bool get_cc_city_treasury(uint32_t id, uint32_t &treasury) const override
{
cryptonote::cc_city_data_t ccd;
if (!get_cc_city_data(id, ccd))
return false;
treasury = ccd.treasury;
return true;
}
virtual void delete_cc_city(uint32_t id) override
{
state.cities[id].in_use = false;
@ -745,8 +754,11 @@ public:
uint32_t allocate_new_cc_custom_item(uint32_t creator, uint64_t creation_height, const std::string &name, bool is_group, bool is_public, uint32_t group, const std::string &primary_description, const std::string &secondary_description, uint64_t gold, const std::string &coin_design, const std::vector<uint64_t> &user_data, const crypto::hash &hash)
{
uint32_t actual_id;
state.items.push_back({});
actual_id = state.items.size() - 1;
for (actual_id = 0; actual_id < state.items.size(); ++actual_id)
if (!state.items[actual_id].in_use)
break;
if (actual_id == state.items.size())
state.items.push_back({});
state.items[actual_id] = {true, creator, creation_height, name, false, is_group, group, primary_description, secondary_description, user_data};
return actual_id + ITEM_FIRST_USER;
}

View File

@ -49,7 +49,7 @@ private:
};
public:
TestDB() { m_open = true; item_id = ITEM_FIRST_USER; }
TestDB() { m_open = true; }
virtual void add_block( const cryptonote::block& blk
, size_t block_weight
@ -93,13 +93,23 @@ public:
virtual cryptonote::block get_top_block() const { cryptonote::block b; b.major_version = b.minor_version = 14; return b; }
virtual void pop_block(cryptonote::block &blk, std::vector<cryptonote::transaction> &txs) override { blocks.pop_back(); }
virtual uint32_t allocate_new_cc_custom_item(uint32_t creator, uint64_t creation_height, const std::string &name, bool is_group, bool is_public, uint32_t group, const std::string &primary_description, const std::string &secondary_description, uint64_t gold, const std::string &coin_design, const std::vector<uint64_t> &user_data, const crypto::hash &hash) { return item_id++; }
virtual uint32_t allocate_new_cc_custom_item(uint32_t creator, uint64_t creation_height, const std::string &name, bool is_group, bool is_public, uint32_t group, const std::string &primary_description, const std::string &secondary_description, uint64_t gold, const std::string &coin_design, const std::vector<uint64_t> &user_data, const crypto::hash &hash) {
size_t idx;
for (idx = 0; idx < custom_items.size(); ++idx)
if (!custom_items[idx])
break;
if (idx == custom_items.size())
custom_items.push_back(true);
custom_items[idx] = true;
return ITEM_FIRST_USER + idx;
}
virtual void delete_cc_custom_item(uint32_t id) { custom_items[id - ITEM_FIRST_USER] = false; }
virtual bool get_cc_city_data(uint32_t id, cryptonote::cc_city_data_t &cd) const { cd = {}; return true; }
private:
std::vector<block_t> blocks;
uint32_t item_id;
std::vector<bool> custom_items;
};
static uint32_t lcg_seed = 0;