xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/common/quiche_random_test.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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