Skip to content

Commit a95befa

Browse files
committed
Fix sanitizer issue in test code.
1 parent 8d29d95 commit a95befa

File tree

1 file changed

+7
-17
lines changed

1 file changed

+7
-17
lines changed

tests/hash_generator_testing.h

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ std::mt19937_64* GetSharedRng() {
7676
}
7777

7878

79-
enum Enum {
79+
enum Enum : uint64_t {
8080
kEnumEmpty,
8181
kEnumDeleted,
8282
};
@@ -96,34 +96,24 @@ struct Generator;
9696
template <class T>
9797
struct Generator<T, typename std::enable_if<std::is_integral<T>::value>::type> {
9898
T operator()() const {
99-
std::uniform_int_distribution<T> dist;
100-
return dist(*GetSharedRng());
99+
std::uniform_int_distribution<T> dist;
100+
return dist(*GetSharedRng());
101101
}
102102
};
103103

104104
template <>
105105
struct Generator<Enum> {
106106
Enum operator()() const {
107-
std::uniform_int_distribution<typename std::underlying_type<Enum>::type> dist;
108-
109-
while (true) {
110-
auto variate = dist(*GetSharedRng());
111-
if (variate != kEnumEmpty && variate != kEnumDeleted)
112-
return static_cast<Enum>(variate);
113-
}
107+
std::uniform_int_distribution<typename std::underlying_type<Enum>::type> dist;
108+
return static_cast<Enum>(dist(*GetSharedRng()));
114109
}
115110
};
116111

117112
template <>
118113
struct Generator<EnumClass> {
119114
EnumClass operator()() const {
120-
std::uniform_int_distribution<
121-
typename std::underlying_type<EnumClass>::type> dist;
122-
while (true) {
123-
EnumClass variate = static_cast<EnumClass>(dist(*GetSharedRng()));
124-
if (variate != EnumClass::kEmpty && variate != EnumClass::kDeleted)
125-
return static_cast<EnumClass>(variate);
126-
}
115+
std::uniform_int_distribution<typename std::underlying_type<EnumClass>::type> dist;
116+
return static_cast<EnumClass>(dist(*GetSharedRng()));
127117
}
128118
};
129119

0 commit comments

Comments
 (0)