1d9a20c9a9b166e0b5beda1743a04e5ffcfcb906
1 #include "test/lib/random.hpp"
2 #include "test/lib/Connection.hpp"
4 #include <unistd.h> // getpid()
10 using namespace chrono
;
12 auto time
= duration_cast
<nanoseconds
>(system_clock::now().time_since_epoch());
13 rnd_eng
.seed(static_cast<mt19937_64::result_type
>(time
.count()));
16 unsigned random_port() {
18 auto port
= random_num(5000, 32000);
19 Connection
conn(port
);
30 string
random_port_string(const string
&) {
31 return to_string(random_port());
34 string
random_socket(const string
&prefix
) {
35 return prefix
+ to_string(random_num(1U, UINT32_MAX
)) + "@" + to_string(getpid()) + ".sock";
38 string
random_socket_or_port_string(const string
&what
) {
40 return random_socket();
43 return to_string(random_port());
46 string
random_socket_or_port_flag(const string
&binary
) {
48 return random_num(0, 1) ? "-p" : "-s";
51 char random_ascii(char min
, char max
) {
52 return static_cast<char>(random_num(min
, max
));
55 string
random_ascii_string(size_t len
, char min
, char max
) {
59 for (size_t rem
= 0; rem
< len
; ++rem
) {
60 s
+= random_ascii(min
, max
);
64 assert(strlen(s
.c_str()) == s
.size());
69 pair
<string
, string
> random_ascii_pair(size_t minlen
, size_t maxlen
) {
71 random_ascii_string(random_num(minlen
, maxlen
)),
72 random_ascii_string(random_num(minlen
, maxlen
))
78 char random_binary() {
79 return random_num(CHAR_MIN
, CHAR_MAX
);
82 string
random_binary_string(size_t len
) {
86 for (size_t rem
= 0; rem
< len
; ++rem
) {