diff options
author | Eric Fiselier <eric@efcs.ca> | 2014-12-20 01:40:03 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2014-12-20 01:40:03 +0000 |
commit | 5a83710e371fe68a06e6e3876c6a2c8b820a8976 (patch) | |
tree | afde4c82ad6704681781c5cd49baa3fbd05c85db /libcxx/test/numerics/rand/rand.device/ctor.pass.cpp | |
parent | f11e8eab527fba316c64112f6e05de1a79693a3e (diff) | |
download | bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.tar.gz bcm5719-llvm-5a83710e371fe68a06e6e3876c6a2c8b820a8976.zip |
Move test into test/std subdirectory.
llvm-svn: 224658
Diffstat (limited to 'libcxx/test/numerics/rand/rand.device/ctor.pass.cpp')
-rw-r--r-- | libcxx/test/numerics/rand/rand.device/ctor.pass.cpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/libcxx/test/numerics/rand/rand.device/ctor.pass.cpp b/libcxx/test/numerics/rand/rand.device/ctor.pass.cpp deleted file mode 100644 index 2d9bc2ff8f1..00000000000 --- a/libcxx/test/numerics/rand/rand.device/ctor.pass.cpp +++ /dev/null @@ -1,85 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <random> - -// class random_device; - -// explicit random_device(const string& token = implementation-defined); - -// For the following ctors, the standard states: "The semantics and default -// value of the token parameter are implementation-defined". Implementations -// therefore aren't required to accept any string, but the default shouldn't -// throw. - -#include <random> -#include <cassert> -#include <unistd.h> - -bool is_valid_random_device(const std::string &token) { -#if defined(_WIN32) - return true; -#elif defined(_LIBCPP_USING_NACL_RANDOM) - return token == "/dev/urandom"; -#else // !defined(_WIN32) && !defined(_LIBCPP_USING_NACL_RANDOM) - // Not an exhaustive list: they're the only tokens that are tested below. - return token == "/dev/urandom" || token == "/dev/random"; -#endif // defined(_WIN32) || defined(_LIBCPP_USING_NACL_RANDOM) -} - -void check_random_device_valid(const std::string &token) { - std::random_device r(token); -} - -void check_random_device_invalid(const std::string &token) { - try { - std::random_device r(token); - assert(false); - } catch (const std::system_error &e) { - } -} - -int main() { - { std::random_device r; } - - { - int ec; - ec = close(STDIN_FILENO); - assert(!ec); - ec = close(STDOUT_FILENO); - assert(!ec); - ec = close(STDERR_FILENO); - assert(!ec); - std::random_device r; - } - - { - std::string token = "wrong file"; - if (is_valid_random_device(token)) - check_random_device_valid(token); - else - check_random_device_invalid(token); - } - - { - std::string token = "/dev/urandom"; - if (is_valid_random_device(token)) - check_random_device_valid(token); - else - check_random_device_invalid(token); - } - - { - std::string token = "/dev/random"; - if (is_valid_random_device(token)) - check_random_device_valid(token); - else - check_random_device_invalid(token); - } -} |