diff --git a/src/utils/string.hpp b/src/utils/string.hpp index 5ba59aafc..2f3af73c2 100644 --- a/src/utils/string.hpp +++ b/src/utils/string.hpp @@ -1,11 +1,11 @@ #pragma once -#include #include #include #include #include #include +#include #include #include #include @@ -210,9 +210,12 @@ inline std::string RandomString(size_t length) { "0123456789" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "abcdefghijklmnopqrstuvwxyz"; + static thread_local std::mt19937 pseudo_rand_gen{std::random_device{}()}; + static thread_local std::uniform_int_distribution rand_dist{ + 0, strlen(charset) - 1}; std::string str(length, 0); for (size_t i = 0; i < length; ++i) - str[i] = charset[rand() % strlen(charset)]; + str[i] = charset[rand_dist(pseudo_rand_gen)]; return str; } } // namespace utils diff --git a/tests/unit/durability.cpp b/tests/unit/durability.cpp index fa23c3a92..f995c0ebd 100644 --- a/tests/unit/durability.cpp +++ b/tests/unit/durability.cpp @@ -1,5 +1,3 @@ -#include -#include #include #include #include @@ -299,7 +297,6 @@ class Durability : public ::testing::Test { durability_dir_ = tmp_dir_ / utils::RandomString(24); snapshot_dir_ = durability_dir_ / durability::kSnapshotDir; wal_dir_ = durability_dir_ / durability::kWalDir; - srand(time(NULL)); FLAGS_wal_rotate_ops_count = 1000; CleanDurability(); }