diff options
Diffstat (limited to 'host/tests')
-rw-r--r-- | host/tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | host/tests/isatty_test.cpp | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/host/tests/CMakeLists.txt b/host/tests/CMakeLists.txt index a7d2120aa..769c09796 100644 --- a/host/tests/CMakeLists.txt +++ b/host/tests/CMakeLists.txt @@ -34,6 +34,7 @@ set(test_sources fp_compare_delta_test.cpp fp_compare_epsilon_test.cpp gain_group_test.cpp + isatty_test.cpp log_test.cpp math_test.cpp narrow_cast_test.cpp diff --git a/host/tests/isatty_test.cpp b/host/tests/isatty_test.cpp new file mode 100644 index 000000000..dfeebfd25 --- /dev/null +++ b/host/tests/isatty_test.cpp @@ -0,0 +1,32 @@ +// +// Copyright 2019 Ettus Research, a National Instruments Brand +// +// SPDX-License-Identifier: GPL-3.0-or-later +// + +#include <uhdlib/utils/isatty.hpp> +#include <boost/test/unit_test.hpp> +#include <iostream> +#include <stdio.h> + +BOOST_AUTO_TEST_CASE(test_isatty) +{ + // We can't really pass or fail based on the result, because it depends on + // how the tests are executed. We'll just run it and see it doesn't crash. + if (uhd::is_a_tty(2)) { + std::cout << "stderr is a TTY" << std::endl; + } else { + std::cout << "stderr is not a TTY" << std::endl; + } + + FILE* tmp_file = std::tmpfile(); +#ifdef UHD_PLATFORM_WIN32 + BOOST_REQUIRE(!uhd::is_a_tty(_fileno(tmp_file))); +#elif _POSIX_C_SOURCE >= _200112L + BOOST_REQUIRE(!uhd::is_a_tty(fileno(tmp_file))); +#else + // I got 99 problems but dealing with portability ain't one + BOOST_REQUIRE(!uhd::is_a_tty(99)); +#endif +} + |