[igt-dev] [PATCH i-g-t] lib: Reset errno to 0 after isatty
Petri Latvala
petri.latvala at intel.com
Wed Apr 10 09:55:46 UTC 2019
On Tue, Apr 09, 2019 at 05:21:41PM +0300, Arkadiusz Hiler wrote:
> Since igt_assert family of functions logs last errno we get a lot of
> those: "Last errno: 25, Inappropriate ioctl for device"
>
> isatty() seems to be the biggest offender in that area, so this patch
> should limit amount of confusing messages significantly.
>
> Cc: Martin Peres <martin.peres at linux.intel.com>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
> ---
> lib/igt_aux.c | 12 +++++++++---
> lib/igt_core.c | 2 ++
> 2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_aux.c b/lib/igt_aux.c
> index 266aa832..a3c904d7 100644
> --- a/lib/igt_aux.c
> +++ b/lib/igt_aux.c
> @@ -631,8 +631,10 @@ static void igt_interactive_info(const char *format, ...)
> {
> va_list args;
>
> - if (!isatty(STDERR_FILENO) || __igt_plain_output)
> + if (!isatty(STDERR_FILENO) || __igt_plain_output) {
> + errno = 0; /* otherwise would be either ENOTTY or EBADF */
> return;
> + }
>
> if (igt_log_level > IGT_LOG_INFO)
> return;
> @@ -984,8 +986,10 @@ void igt_debug_wait_for_keypress(const char *var)
> {
> struct termios oldt, newt;
>
> - if (!isatty(STDIN_FILENO))
> + if (!isatty(STDIN_FILENO)) {
> + errno = 0; /* otherwise would be either ENOTTY or EBADF */
> return;
> + }
>
> if (!igt_interactive_debug)
> return;
> @@ -1030,8 +1034,10 @@ void igt_debug_manual_check(const char *var, const char *expected)
> struct termios oldt, newt;
> char key;
>
> - if (!isatty(STDIN_FILENO))
> + if (!isatty(STDIN_FILENO)) {
> + errno = 0; /* otherwise would be either ENOTTY or EBADF */
> return;
> + }
>
> if (!igt_interactive_debug)
> return;
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index 6eb4798e..ae03e909 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -630,6 +630,8 @@ static void common_init_env(void)
> if (!isatty(STDOUT_FILENO) || getenv("IGT_PLAIN_OUTPUT"))
> __igt_plain_output = true;
>
> + errno = 0; /* otherwise may be either ENOTTY or EBADF because of isatty */
> +
> if (!__igt_plain_output)
> setlocale(LC_ALL, "");
>
> --
> 2.20.1
>
More information about the igt-dev
mailing list