Skip to content
Snippets Groups Projects
Commit b33eab6a authored by dmitriy.gerasimov's avatar dmitriy.gerasimov
Browse files

Merge branch 'feature-2302'

parents ffe03a44 af486d61
No related branches found
No related tags found
No related merge requests found
...@@ -10,7 +10,7 @@ node-alias=addr-%node_addr% ...@@ -10,7 +10,7 @@ node-alias=addr-%node_addr%
gdb_groups_prefix=kelvin.testnet gdb_groups_prefix=kelvin.testnet
seed_nodes_ipv4=[159.89.228.115,165.227.17.239,104.248.89.205,157.230.240.104,167.99.87.197,46.101.149.240,159.89.122.48] seed_nodes_ipv4=[159.89.228.115,165.227.17.239,104.248.89.205,157.230.240.104,167.99.87.197,46.101.149.240,159.89.122.48]
seed_nodes_aliases=[kelvin.testnet.root.0,kelvin.testnet.root.1,kelvin.testnet.root.2,kelvin.testnet.root.3,kelvin.testnet.root.4,kelvin.testnet.root.5,kelvin.testnet.root.6] seed_nodes_aliases=[kelvin.testnet.root.0,kelvin.testnet.root.1,kelvin.testnet.root.2,kelvin.testnet.root.3,kelvin.testnet.root.4,kelvin.testnet.root.5,kelvin.testnet.root.6]
seed_nodes_addr=[ffff::0000::0000::0001,ffff::0000::0000::0002,ffff::0000::0000::0003,ffff::0000::0000::0004,ffff::0000::0000::0005,ffff::0000::0000::0006,ffff::0000::0000::0007] seed_nodes_addrs=[ffff::0000::0000::0001,ffff::0000::0000::0002,ffff::0000::0000::0003,ffff::0000::0000::0004,ffff::0000::0000::0005,ffff::0000::0000::0006,ffff::0000::0000::0007]
#[dag-poa] #[dag-poa]
#events-sign-cert=mycert #events-sign-cert=mycert
......
Subproject commit d40599923167e43addcc61696b8ea75b2e2abcd7 Subproject commit 5b72cc303107680535c4591313033611b01c4a0b
Subproject commit 28b6050053ea76b24a5dbb5b41fdaac60610dd28 Subproject commit d5d15ff217801c17bbdb57aca9f6614a8b868113
Subproject commit a3eff15ef836881074bc4b5122d4d46b14f44678 Subproject commit 739a61ab34c856df96b58f1917f9bd93e0a33b95
Subproject commit 15c4ba05ada6cc0b8d4a56c58978ae1e2b095702 Subproject commit ff63d762657f9687173db825705b8bf4b958abee
Subproject commit d07e3f3df873e93d64d9bb90737c059eea6c31ad Subproject commit 688472966c733da5b555e28f2b23311b3cf60cf2
...@@ -10,7 +10,7 @@ file(GLOB HEADERS *.h) ...@@ -10,7 +10,7 @@ file(GLOB HEADERS *.h)
add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS}) add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
target_link_libraries(${PROJECT_NAME} dap_core) target_link_libraries(${PROJECT_NAME} dap_core dap_test dap_chain_global_db)
add_test( add_test(
NAME kelvin_node_test NAME kelvin_node_test
......
#include <time.h>
#include <unistd.h>
#include "dap_common.h"
#include "dap_strfuncs.h"
//#include "dap_list.h"
#include "dap_chain_global_db.h"
#include "dap_chain_global_db_driver.h"
#include "dap_global_db_test.h"
#define DB_FILE "./base.sqlite"
static void test_create_db(void)
{
unlink(DB_FILE);
int res = dap_db_driver_init("sqlite", DB_FILE);
dap_assert(!res, "Test init global_db");
}
static void test_write_read_one(void)
{
dap_store_obj_t *l_store_obj = DAP_NEW_Z(dap_store_obj_t);
size_t l_store_count = 1;
l_store_obj->type = 'a';
l_store_obj->key = dap_strdup("key");
l_store_obj->group = dap_strdup("section.1");
l_store_obj->timestamp = time(NULL);
l_store_obj->value_len = rand() % 100;
l_store_obj->value = DAP_NEW_SIZE(uint8_t, l_store_obj->value_len);
for(size_t i = 0; i < l_store_obj->value_len; i++) {
l_store_obj->value[i] = rand();
}
int ret = dap_chain_global_db_driver_add(l_store_obj, l_store_count);
dap_store_obj_t *l_store_obj2 = dap_chain_global_db_driver_read(l_store_obj->group, l_store_obj->key, NULL);
dap_assert_PIF(l_store_obj2, "Read global_db entry");
// compare l_store_obj and l_store_obj
if(l_store_obj->timestamp == l_store_obj2->timestamp &&
l_store_obj->value_len == l_store_obj2->value_len &&
l_store_obj->value && l_store_obj2->value &&
!memcmp(l_store_obj->value, l_store_obj2->value, l_store_obj->value_len)) {
dap_assert_PIF(1, "Check read entry");
}
else {
dap_assert_PIF(0, "Check read entry");
}
dap_store_obj_free(l_store_obj, 1);
dap_store_obj_free(l_store_obj2, 1);
dap_assert(1, "Test dap_global_db one record");
}
static void test_close_db(void)
{
dap_db_driver_deinit();//dap_chain_global_db_deinit();
dap_assert(1, "Test close global_db");
}
static void test_write_db_count(void)
{
int a_count = 20000;
dap_store_obj_t *l_store_obj = DAP_NEW_Z_SIZE(dap_store_obj_t, sizeof(dap_store_obj_t) * a_count);
size_t l_store_count = 1;
for(size_t n = 0; n < a_count; n++) {
dap_store_obj_t *l_store_obj_cur = l_store_obj + n;
l_store_obj_cur->type = 'a';
l_store_obj_cur->key = dap_strdup_printf("key_%d", rand());
l_store_obj_cur->group = dap_strdup("section.1");
l_store_obj_cur->timestamp = time(NULL);
l_store_obj_cur->value_len = 10 + rand() % 100;
l_store_obj_cur->value = DAP_NEW_SIZE(uint8_t, l_store_obj_cur->value_len);
for(size_t i = 0; i < l_store_obj_cur->value_len; i++) {
l_store_obj_cur->value[i] = rand();
}
}
//dap_test_msg("Start test write dap_global_db %d record", a_count);
int ret = dap_chain_global_db_driver_add(l_store_obj, a_count);
//dap_test_msg("Read first record");
dap_store_obj_t *l_store_obj2 = dap_chain_global_db_driver_read(l_store_obj->group, l_store_obj->key, NULL);
dap_store_obj_free(l_store_obj2, 1);
//dap_test_msg("Start test read dap_global_db %d record", a_count);
for(size_t n = 1; n < a_count; n++) {
dap_store_obj_t *l_store_obj2 = dap_chain_global_db_driver_read(l_store_obj->group, l_store_obj->key, NULL);
dap_assert_PIF(l_store_obj2, "Read data");
// compare l_store_obj and l_store_obj
if(l_store_obj->timestamp == l_store_obj2->timestamp &&
l_store_obj->value_len == l_store_obj2->value_len &&
l_store_obj->value && l_store_obj2->value &&
!memcmp(l_store_obj->value, l_store_obj2->value, l_store_obj->value_len)) {
;
}
else {
dap_assert_PIF(0, "Check read entry");
}
dap_store_obj_free(l_store_obj2, 1);
}
//dap_assert_PIF(1, "Read global_db entry");
dap_store_obj_free(l_store_obj, a_count);
//dap_usleep(5 * DAP_USEC_PER_SEC);
//dap_assert(1, "Test dap_global_db");
}
void dap_global_db_tests_run(void)
{
dap_print_module_name("dap_global_db");
unlink(DB_FILE);
test_create_db();
test_write_read_one();
// test_write_db_count(1000000);
benchmark_mgs_time("Read and Write in global_db 20000 records",
benchmark_test_time(test_write_db_count, 1));
//dap_assert(1, "Test dap_global_db: write and read 20000 records");
/*
benchmark_mgs_time("Read and Write in global_db 100 times",
benchmark_test_time(test_write_db_count, 1));
dap_assert(1, "Test dap_global_db 100 records");
*/
// benchmark_mgs_rate("Read and Write in global_db",
// benchmark_test_rate(test_write_db_count, 2000));
//dap_usleep(2 * DAP_USEC_PER_SEC);
test_close_db();
}
#pragma once
#include "libdap-test/dap_test.h"
extern void dap_global_db_tests_run(void);
#include "dap_global_db_test.h"
#include "dap_common.h" #include "dap_common.h"
int main(void) { int main(void) {
// switch off debug info from library // switch off debug info from library
set_log_level(L_CRITICAL); dap_log_level_set(L_CRITICAL);
dap_global_db_tests_run();
return 0; return 0;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment