1 #include "quiche/common/quiche_random.h"
2
3 #include "quiche/common/platform/api/quiche_test.h"
4
5 namespace quiche {
6 namespace {
7
TEST(QuicheRandom,RandBytes)8 TEST(QuicheRandom, RandBytes) {
9 unsigned char buf1[16];
10 unsigned char buf2[16];
11 memset(buf1, 0xaf, sizeof(buf1));
12 memset(buf2, 0xaf, sizeof(buf2));
13 ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
14
15 auto rng = QuicheRandom::GetInstance();
16 rng->RandBytes(buf1, sizeof(buf1));
17 EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
18 }
19
TEST(QuicheRandom,RandUint64)20 TEST(QuicheRandom, RandUint64) {
21 auto rng = QuicheRandom::GetInstance();
22 uint64_t value1 = rng->RandUint64();
23 uint64_t value2 = rng->RandUint64();
24 EXPECT_NE(value1, value2);
25 }
26
TEST(QuicheRandom,InsecureRandBytes)27 TEST(QuicheRandom, InsecureRandBytes) {
28 unsigned char buf1[16];
29 unsigned char buf2[16];
30 memset(buf1, 0xaf, sizeof(buf1));
31 memset(buf2, 0xaf, sizeof(buf2));
32 ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1)));
33
34 auto rng = QuicheRandom::GetInstance();
35 rng->InsecureRandBytes(buf1, sizeof(buf1));
36 EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1)));
37 }
38
TEST(QuicheRandom,InsecureRandUint64)39 TEST(QuicheRandom, InsecureRandUint64) {
40 auto rng = QuicheRandom::GetInstance();
41 uint64_t value1 = rng->InsecureRandUint64();
42 uint64_t value2 = rng->InsecureRandUint64();
43 EXPECT_NE(value1, value2);
44 }
45
46 } // namespace
47 } // namespace quiche
48