• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // Official repository: https://github.com/boostorg/beast
8 //
9 
10 // Test that header file is self-contained.
11 #include <boost/beast/websocket/detail/prng.hpp>
12 
13 #include <boost/beast/_experimental/unit_test/suite.hpp>
14 
15 namespace boost {
16 namespace beast {
17 namespace websocket {
18 namespace detail {
19 
20 #ifdef BOOST_BEAST_TEST_STATIC_PRNG_SEED
21 auto prng_init = []()
__anonb68c27ac0102() 22 {
23     // Workaround for https://bugs.launchpad.net/ubuntu/+source/valgrind/+bug/1501545
24     std::seed_seq seq{{0xDEAD, 0xBEEF}};
25     detail::prng_seed(&seq);
26     return 0;
27 }();
28 #endif // BOOST_BEAST_TEST_STATIC_PRNG_SEED
29 
30 class prng_test
31     : public beast::unit_test::suite
32 {
33 public:
34 #if 0
35     char const* name() const noexcept //override
36     {
37         return "boost.beast.websocket.detail.prng";
38     }
39 #endif
40 
41     template <class F>
42     void
testPrng(F const & f)43     testPrng(F const& f)
44     {
45         auto const mn = (std::numeric_limits<std::uint32_t>::min)();
46         auto const mx = (std::numeric_limits<std::uint32_t>::max)();
47 
48         {
49             auto v = f()();
50             BEAST_EXPECT(
51                 v >= mn &&
52                 v <= mx);
53         }
54         {
55             auto v = f()();
56             BEAST_EXPECT(
57                 v >= mn &&
58                 v <= mx);
59         }
60     }
61 
62     void
run()63     run() override
64     {
65         testPrng([]{ return make_prng(true); });
66         testPrng([]{ return make_prng(false); });
67     }
68 };
69 
70 //static prng_test t;
71 BEAST_DEFINE_TESTSUITE(beast,websocket,prng);
72 
73 } // detail
74 } // websocket
75 } // beast
76 } // boost
77