On 25/03/21 08:03 -0300, Alexandre Oliva wrote:
On Mar 24, 2021, Jonathan Wakely <jwak...@redhat.com> wrote:

diff --git a/libstdc++-v3/testsuite/util/testsuite_random.h 
b/libstdc++-v3/testsuite/util/testsuite_random.h
index 0b670bfb771..c8323078492 100644
--- a/libstdc++-v3/testsuite/util/testsuite_random.h
+++ b/libstdc++-v3/testsuite/util/testsuite_random.h
@@ -197,6 +197,19 @@ namespace __gnu_test
   }
 #endif

+  // Check whether TOKEN can construct a std::random_device successfully.
+  inline bool
+  random_device_available(const std::string& token) noexcept
+  {
+    try {
+      std::random_device dev(token);
+      return true;
+    } catch (...) {
+      std::printf("random_device(\"%s\") not available\n", token);

Another nit: I'm seeing line noise (do people still use this term? :-)
in libstdc++.log where unavailable random_device tokens should appear.
I suspect the token has to be converted to a C string in the call above.

Doh, the function took a const char* then I changed it to std::string
because some of the callers wanted to pass a std::string. I'll fix it
in my branch.


Reply via email to