|
|
@ -44,30 +44,6 @@ TEST(ShortCode, validity) { |
|
|
|
SHOULD_PANIC(ShortCode::from_string("Z9EFV")) // out of short code range
|
|
|
|
} |
|
|
|
|
|
|
|
TEST(ShortCode, speed_up) { |
|
|
|
std::thread threads[4]; |
|
|
|
|
|
|
|
/// speed up to normal mode
|
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::NOT_INIT); |
|
|
|
for (auto &t : threads) { |
|
|
|
t = std::thread(ShortCode::speed_up, ShortCode::NORMAL); |
|
|
|
} |
|
|
|
usleep(1000); // wait 1ms -> avoid mutex unlocked
|
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::BUILDING); |
|
|
|
for (auto &t : threads) { t.join(); } |
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::AVAILABLE); |
|
|
|
|
|
|
|
/// speed up to fast mode
|
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::NOT_INIT); |
|
|
|
for (auto &t : threads) { |
|
|
|
t = std::thread(ShortCode::speed_up, ShortCode::FAST); |
|
|
|
} |
|
|
|
usleep(1000); // wait 1ms -> avoid mutex unlocked
|
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::BUILDING); |
|
|
|
for (auto &t : threads) { t.join(); } |
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::AVAILABLE); |
|
|
|
} |
|
|
|
|
|
|
|
TEST(ShortCode, DISABLED_global) { |
|
|
|
auto check = [](uint32_t start, uint32_t end) -> std::vector<uint64_t> { |
|
|
|
std::vector<uint64_t> archive; |
|
|
@ -101,6 +77,30 @@ TEST(ShortCode, DISABLED_global) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
TEST(ShortCode, speed_up) { |
|
|
|
std::thread threads[4]; |
|
|
|
|
|
|
|
/// speed up to normal mode
|
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::NOT_INIT); |
|
|
|
for (auto &t : threads) { |
|
|
|
t = std::thread(ShortCode::speed_up, ShortCode::NORMAL); |
|
|
|
} |
|
|
|
usleep(1000); // wait 1ms -> avoid mutex unlocked
|
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::BUILDING); |
|
|
|
for (auto &t : threads) { t.join(); } |
|
|
|
EXPECT_EQ(BasicRanges::status(), BasicRanges::AVAILABLE); |
|
|
|
|
|
|
|
/// speed up to fast mode
|
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::NOT_INIT); |
|
|
|
for (auto &t : threads) { |
|
|
|
t = std::thread(ShortCode::speed_up, ShortCode::FAST); |
|
|
|
} |
|
|
|
usleep(1000); // wait 1ms -> avoid mutex unlocked
|
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::BUILDING); |
|
|
|
for (auto &t : threads) { t.join(); } |
|
|
|
EXPECT_EQ(AllCases::status(), AllCases::AVAILABLE); |
|
|
|
} |
|
|
|
|
|
|
|
TEST(ShortCode, code_verify) { // test all layout
|
|
|
|
auto test = [](uint64_t head) { |
|
|
|
for (const auto &range : AllCases::fetch()[head]) { |
|
|
|