Provide random-device option for --rng-seed and make it default

This commit is contained in:
Martin Hořeňovský 2021-10-08 21:32:03 +02:00
parent 200a487cf2
commit ed1f343a41
No known key found for this signature in database
GPG key ID: DE48307B8B0D381A
7 changed files with 24 additions and 17 deletions

View file

@ -15,7 +15,6 @@
#include <catch2/interfaces/catch_interfaces_reporter.hpp>
#include <fstream>
#include <ctime>
#include <string>
namespace Catch {
@ -74,7 +73,10 @@ namespace Catch {
};
auto const setRngSeed = [&]( std::string const& seed ) {
if( seed == "time" ) {
config.rngSeed = static_cast<unsigned int>(std::time(nullptr));
config.rngSeed = generateRandomSeed(GenerateFrom::Time);
return ParserResult::ok(ParseResultType::Matched);
} else if (seed == "random-device") {
config.rngSeed = generateRandomSeed(GenerateFrom::RandomDevice);
return ParserResult::ok(ParseResultType::Matched);
}
@ -211,7 +213,7 @@ namespace Catch {
| Opt( setTestOrder, "decl|lex|rand" )
["--order"]
( "test case order (defaults to decl)" )
| Opt( setRngSeed, "'time'|number" )
| Opt( setRngSeed, "'time'|'random-device'|number" )
["--rng-seed"]
( "set a specific seed for random numbers" )
| Opt( setColourUsage, "yes|no" )