gcc/libstdc++-v3/testsuite/26_numerics
Jonathan Wakely 58f339fc5e libstdc++: Implement std::random_device::entropy() for other sources
Currently this function only returns a non-zero value for /dev/random
and /dev/urandom. When a hardware instruction such as RDRAND is in use
it should (in theory) be perfectly random and produce 32 bits of entropy
in each 32-bit result. Add a helper function to identify the source of
randomness from the _M_func and _M_file data members, and return a
suitable value when RDRAND or RDSEED is being used.

libstdc++-v3/ChangeLog:

	* src/c++11/random.cc (which_source): New helper function.
	(random_device::_M_getentropy()): Use which_source and return
	suitable values for sources other than device files.
	* testsuite/26_numerics/random/random_device/entropy.cc: New test.
2021-10-19 17:27:06 +01:00
..
accumulate Update copyright years. 2021-01-04 10:26:59 +01:00
adjacent_difference Update copyright years. 2021-01-04 10:26:59 +01:00
bit libstdc++: Replace uses of _GLIBCXX_USE_INT128 in testsuite 2021-10-09 00:57:48 +01:00
complex Update copyright years. 2021-01-04 10:26:59 +01:00
endian Update copyright years. 2021-01-04 10:26:59 +01:00
exclusive_scan libstdc++: Remove redundant -std=gnu++17 option from algorithm tests 2021-05-10 16:22:54 +01:00
gcd libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
headers libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
inclusive_scan libstdc++: Remove redundant -std=gnu++17 option from algorithm tests 2021-05-10 16:22:54 +01:00
inner_product Update copyright years. 2021-01-04 10:26:59 +01:00
iota Update copyright years. 2021-01-04 10:26:59 +01:00
lcm libstdc++: Remove redundant -std=gnu++17 option from remaining tests 2021-05-10 16:22:54 +01:00
lerp libstdc++: Add additional overload of std::lerp [PR101870] 2021-08-12 19:46:16 +01:00
midpoint libstdc++: Make some #error strings consistent with other tests 2021-08-12 19:46:16 +01:00
numbers Update copyright years. 2021-01-04 10:26:59 +01:00
partial_sum Update copyright years. 2021-01-04 10:26:59 +01:00
pstl/numeric_ops libstdc++: Remove redundant -std=gnu++17 options from PSTL tests 2021-05-10 16:22:53 +01:00
random libstdc++: Implement std::random_device::entropy() for other sources 2021-10-19 17:27:06 +01:00
reduce libstdc++: Replace incorrect static assertion in std::reduce [PR95833] 2021-06-18 14:46:58 +01:00
slice Update copyright years. 2021-01-04 10:26:59 +01:00
slice_array Update copyright years. 2021-01-04 10:26:59 +01:00
transform_exclusive_scan libstdc++: Remove redundant -std=gnu++17 option from algorithm tests 2021-05-10 16:22:54 +01:00
transform_inclusive_scan libstdc++: Remove redundant -std=gnu++17 option from algorithm tests 2021-05-10 16:22:54 +01:00
transform_reduce libstdc++: Remove redundant -std=gnu++17 option from algorithm tests 2021-05-10 16:22:54 +01:00
valarray libstdc++: Rename tests with incorrect extension 2021-09-17 12:40:41 +01:00