[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