1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "net/quic/crypto/quic_random.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace net { 10 namespace test { 11 12 TEST(QuicRandomTest, RandBytes) { 13 unsigned char buf1[16]; 14 unsigned char buf2[16]; 15 memset(buf1, 0xaf, sizeof(buf1)); 16 memset(buf2, 0xaf, sizeof(buf2)); 17 ASSERT_EQ(0, memcmp(buf1, buf2, sizeof(buf1))); 18 19 QuicRandom* rng = QuicRandom::GetInstance(); 20 rng->RandBytes(buf1, sizeof(buf1)); 21 EXPECT_NE(0, memcmp(buf1, buf2, sizeof(buf1))); 22 } 23 24 TEST(QuicRandomTest, RandUint64) { 25 QuicRandom* rng = QuicRandom::GetInstance(); 26 uint64 value1 = rng->RandUint64(); 27 uint64 value2 = rng->RandUint64(); 28 EXPECT_NE(value1, value2); 29 } 30 31 TEST(QuicRandomTest, Reseed) { 32 char buf[1024]; 33 memset(buf, 0xaf, sizeof(buf)); 34 35 QuicRandom* rng = QuicRandom::GetInstance(); 36 rng->Reseed(buf, sizeof(buf)); 37 } 38 39 } // namespace test 40 } // namespace net 41