// Copyright Catch2 Authors // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // https://www.boost.org/LICENSE_1_0.txt) // SPDX-License-Identifier: BSL-1.0 #include #include #include #include namespace Catch { std::uint32_t generateRandomSeed( GenerateFrom from ) { switch ( from ) { case GenerateFrom::Time: return static_cast( std::time( nullptr ) ); case GenerateFrom::Default: case GenerateFrom::RandomDevice: // In theory, a platform could have random_device that returns just // 16 bits. That is still some randomness, so we don't care too much return static_cast( std::random_device{}() ); default: CATCH_ERROR("Unknown generation method"); } } } // end namespace Catch