aboutsummaryrefslogtreecommitdiff
path: root/tests/unit_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit_tests')
-rw-r--r--tests/unit_tests/is_hdd.cpp4
-rw-r--r--tests/unit_tests/main.cpp4
-rw-r--r--tests/unit_tests/mlocker.cpp69
-rw-r--r--tests/unit_tests/ringdb.cpp24
-rw-r--r--tests/unit_tests/wipeable_string.cpp8
5 files changed, 69 insertions, 40 deletions
diff --git a/tests/unit_tests/is_hdd.cpp b/tests/unit_tests/is_hdd.cpp
index 1be670e5e..040af4f47 100644
--- a/tests/unit_tests/is_hdd.cpp
+++ b/tests/unit_tests/is_hdd.cpp
@@ -6,12 +6,12 @@
TEST(is_hdd, linux_os_root)
{
std::string path = "/";
- EXPECT_TRUE(tools::is_hdd(path.c_str()));
+ EXPECT_TRUE(tools::is_hdd(path.c_str()) != boost::none);
}
#else
TEST(is_hdd, unknown_os)
{
std::string path = "";
- EXPECT_FALSE(tools::is_hdd(path.c_str()));
+ EXPECT_FALSE(tools::is_hdd(path.c_str()) != boost::none);
}
#endif
diff --git a/tests/unit_tests/main.cpp b/tests/unit_tests/main.cpp
index 13b62cbb4..f7251a09e 100644
--- a/tests/unit_tests/main.cpp
+++ b/tests/unit_tests/main.cpp
@@ -53,6 +53,8 @@ namespace cryptonote { template class t_cryptonote_protocol_handler<cryptonote::
int main(int argc, char** argv)
{
+ TRY_ENTRY();
+
tools::on_startup();
epee::string_tools::set_module_name_and_folder(argv[0]);
mlog_configure(mlog_get_default_log_path("unit_tests.log"), true);
@@ -76,5 +78,7 @@ int main(int argc, char** argv)
unit_test::data_dir = command_line::get_arg(vm, arg_data_dir);
+ CATCH_ENTRY_L0("main", 1);
+
return RUN_ALL_TESTS();
}
diff --git a/tests/unit_tests/mlocker.cpp b/tests/unit_tests/mlocker.cpp
index 480940374..c97dc2c1d 100644
--- a/tests/unit_tests/mlocker.cpp
+++ b/tests/unit_tests/mlocker.cpp
@@ -46,14 +46,14 @@ TEST(mlocker, distinct_1)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[8 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data), 1);
- epee::mlocker *m1 = new epee::mlocker(BASE(data) + 2 * page_size, 1);
- epee::mlocker *m2 = new epee::mlocker(BASE(data) + 3 * page_size, 1);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data), 1)};
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data) + 2 * page_size, 1)};
+ std::shared_ptr<epee::mlocker> m2{new epee::mlocker(BASE(data) + 3 * page_size, 1)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 3);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 3);
- delete m0;
- delete m1;
- delete m2;
+ m0 = NULL;
+ m1 = NULL;
+ m2 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -65,14 +65,14 @@ TEST(mlocker, distinct_full_page)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[8 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data), page_size);
- epee::mlocker *m1 = new epee::mlocker(BASE(data) + 2 * page_size, page_size);
- epee::mlocker *m2 = new epee::mlocker(BASE(data) + 3 * page_size, page_size);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data), page_size)};
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data) + 2 * page_size, page_size)};
+ std::shared_ptr<epee::mlocker> m2{new epee::mlocker(BASE(data) + 3 * page_size, page_size)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 3);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 3);
- delete m0;
- delete m1;
- delete m2;
+ m0 = NULL;
+ m1 = NULL;
+ m2 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -84,16 +84,16 @@ TEST(mlocker, identical)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[8 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data) + page_size, 32);
- epee::mlocker *m1 = new epee::mlocker(BASE(data) + page_size, 32);
- epee::mlocker *m2 = new epee::mlocker(BASE(data) + page_size, 32);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data) + page_size, 32)};
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data) + page_size, 32)};
+ std::shared_ptr<epee::mlocker> m2{new epee::mlocker(BASE(data) + page_size, 32)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 3);
- delete m1;
+ m1 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 2);
- delete m0;
- delete m2;
+ m0 = NULL;
+ m2 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -105,16 +105,16 @@ TEST(mlocker, overlapping_small)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[8 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data), 32);
- epee::mlocker *m1 = new epee::mlocker(BASE(data) + 16, 32);
- epee::mlocker *m2 = new epee::mlocker(BASE(data) + 8, 32);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data), 32)};
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data) + 16, 32)};
+ std::shared_ptr<epee::mlocker> m2{new epee::mlocker(BASE(data) + 8, 32)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 3);
- delete m1;
+ m1 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 2);
- delete m2;
- delete m0;
+ m2 = NULL;
+ m0 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -126,16 +126,16 @@ TEST(mlocker, multi_page)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[8 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data) + page_size, page_size * 3);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data) + page_size, page_size * 3)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 3);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 1);
- epee::mlocker *m1 = new epee::mlocker(BASE(data) + page_size * 7, page_size);
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data) + page_size * 7, page_size)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 4);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 2);
- delete m0;
+ m0 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 1);
- delete m1;
+ m1 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -147,10 +147,10 @@ TEST(mlocker, cross_page)
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[2 * page_size]};
- epee::mlocker *m0 = new epee::mlocker(BASE(data) + page_size - 1, 2);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data) + page_size - 1, 2)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 2);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 1);
- delete m0;
+ m0 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
@@ -158,21 +158,22 @@ TEST(mlocker, cross_page)
TEST(mlocker, redundant)
{
const size_t page_size = epee::mlocker::get_page_size();
+ ASSERT_TRUE(page_size > 0);
const size_t base_pages = epee::mlocker::get_num_locked_pages();
const size_t base_objects = epee::mlocker::get_num_locked_objects();
std::unique_ptr<char[]> data{new char[2 * page_size]};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
- epee::mlocker *m0 = new epee::mlocker(BASE(data), 32);
+ std::shared_ptr<epee::mlocker> m0{new epee::mlocker(BASE(data), 32)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 1);
- epee::mlocker *m1 = new epee::mlocker(BASE(data), 32);
+ std::shared_ptr<epee::mlocker> m1{new epee::mlocker(BASE(data), 32)};
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 2);
- delete m1;
+ m1 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 1);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 1);
- delete m0;
+ m0 = NULL;
ASSERT_EQ(epee::mlocker::get_num_locked_pages(), base_pages + 0);
ASSERT_EQ(epee::mlocker::get_num_locked_objects(), base_objects + 0);
}
diff --git a/tests/unit_tests/ringdb.cpp b/tests/unit_tests/ringdb.cpp
index 416ae0890..0d92049ac 100644
--- a/tests/unit_tests/ringdb.cpp
+++ b/tests/unit_tests/ringdb.cpp
@@ -150,6 +150,30 @@ TEST(blackball, found)
ASSERT_TRUE(ringdb.blackballed(OUTPUT_1));
}
+TEST(blackball, vector)
+{
+ RingDB ringdb;
+ std::vector<std::pair<uint64_t, uint64_t>> outputs;
+ outputs.push_back(std::make_pair(0, 1));
+ outputs.push_back(std::make_pair(10, 3));
+ outputs.push_back(std::make_pair(10, 4));
+ outputs.push_back(std::make_pair(10, 8));
+ outputs.push_back(std::make_pair(20, 0));
+ outputs.push_back(std::make_pair(20, 1));
+ outputs.push_back(std::make_pair(30, 5));
+ ASSERT_TRUE(ringdb.blackball(outputs));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(0, 1)));
+ ASSERT_FALSE(ringdb.blackballed(std::make_pair(10, 2)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(10, 3)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(10, 4)));
+ ASSERT_FALSE(ringdb.blackballed(std::make_pair(10, 5)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(10, 8)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(20, 0)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(20, 1)));
+ ASSERT_FALSE(ringdb.blackballed(std::make_pair(20, 2)));
+ ASSERT_TRUE(ringdb.blackballed(std::make_pair(30, 5)));
+}
+
TEST(blackball, unblackball)
{
RingDB ringdb;
diff --git a/tests/unit_tests/wipeable_string.cpp b/tests/unit_tests/wipeable_string.cpp
index 65718fd45..44e050c5c 100644
--- a/tests/unit_tests/wipeable_string.cpp
+++ b/tests/unit_tests/wipeable_string.cpp
@@ -194,13 +194,13 @@ TEST(wipeable_string, parse_hexstr)
ASSERT_EQ(boost::none, epee::wipeable_string("0").parse_hexstr());
ASSERT_EQ(boost::none, epee::wipeable_string("000").parse_hexstr());
- ASSERT_TRUE((s = epee::wipeable_string("").parse_hexstr()));
+ ASSERT_TRUE((s = epee::wipeable_string("").parse_hexstr()) != boost::none);
ASSERT_EQ(*s, "");
- ASSERT_TRUE((s = epee::wipeable_string("00").parse_hexstr()));
+ ASSERT_TRUE((s = epee::wipeable_string("00").parse_hexstr()) != boost::none);
ASSERT_EQ(*s, epee::wipeable_string("", 1));
- ASSERT_TRUE((s = epee::wipeable_string("41").parse_hexstr()));
+ ASSERT_TRUE((s = epee::wipeable_string("41").parse_hexstr()) != boost::none);
ASSERT_EQ(*s, epee::wipeable_string("A"));
- ASSERT_TRUE((s = epee::wipeable_string("414243").parse_hexstr()));
+ ASSERT_TRUE((s = epee::wipeable_string("414243").parse_hexstr()) != boost::none);
ASSERT_EQ(*s, epee::wipeable_string("ABC"));
}