diff options
| author | Martin Hořeňovský | 2023-12-10 21:37:12 +0100 |
|---|---|---|
| committer | Martin Hořeňovský | 2023-12-10 21:37:12 +0100 |
| commit | b7d70ddcd609a798048f055cf8f5b6803ac06e52 (patch) | |
| tree | 75f8d672977915efe8fa5334dc9bf9529d1874b0 /src/catch2/internal | |
| parent | a6f22c51699b78116cac54a4ac95bbed710efbd4 (diff) | |
| download | catch3-b7d70ddcd609a798048f055cf8f5b6803ac06e52.tar.gz | |
Ensure we always read 32 bit seed from std::random_device
Diffstat (limited to 'src/catch2/internal')
| -rw-r--r-- | src/catch2/internal/catch_random_seed_generation.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/catch2/internal/catch_random_seed_generation.cpp b/src/catch2/internal/catch_random_seed_generation.cpp index 40c468cb..fdc3fa19 100644 --- a/src/catch2/internal/catch_random_seed_generation.cpp +++ b/src/catch2/internal/catch_random_seed_generation.cpp @@ -9,6 +9,7 @@ #include <catch2/internal/catch_random_seed_generation.hpp> #include <catch2/internal/catch_enforce.hpp> +#include <catch2/internal/catch_random_integer_helpers.hpp> #include <ctime> #include <random> @@ -21,10 +22,10 @@ namespace Catch { return static_cast<std::uint32_t>( 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::uint32_t>( std::random_device{}() ); + case GenerateFrom::RandomDevice: { + std::random_device rd; + return Detail::fillBitsFrom<std::uint32_t>( rd ); + } default: CATCH_ERROR("Unknown generation method"); |