[LTP] [PATCH] pty/pty07: Restore active console after the testrun

Martin Doucha mdoucha@suse.cz
Fri Mar 11 10:56:47 CET 2022


Hi,

On 11. 03. 22 10:51, Cyril Hrubis wrote:
> The test, as a side effect, switches to a different console during the
> run, which may confuse both users and automated test systems.
> 
> Fix that by saving the console active at the start of the test and
> restore it in the test cleanup.
> 
> Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> ---
>  testcases/kernel/pty/pty07.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/testcases/kernel/pty/pty07.c b/testcases/kernel/pty/pty07.c
> index 462569c4a..af2dccb32 100644
> --- a/testcases/kernel/pty/pty07.c
> +++ b/testcases/kernel/pty/pty07.c
> @@ -40,6 +40,8 @@ static int test_tty_port = 8;
>  static int fd = -1;
>  static struct tst_fzsync_pair fzp;
>  
> +static unsigned short vt_active;
> +
>  static void *open_close(void *unused)
>  {
>  	int i;
> @@ -76,16 +78,27 @@ static void do_test(void)
>  
>  static void setup(void)
>  {
> +	struct vt_stat stat;
> +
>  	sprintf(tty_path, "/dev/tty%d", test_tty_port);
>  	fd = SAFE_OPEN(tty_path, O_RDWR);
> +	SAFE_IOCTL(fd, VT_GETSTATE, &stat);
> +	vt_active = stat.v_active;
> +
> +	tst_res(TINFO, "Saving active console %i", vt_active);
> +
>  	tst_fzsync_pair_init(&fzp);
>  }
>  
>  static void cleanup(void)
>  {
> -	tst_fzsync_pair_cleanup(&fzp);
> -	if (fd >= 0)
> +	if (fd >= 0) {
> +		tst_res(TINFO, "Restoring active console");
> +		SAFE_IOCTL(fd, VT_ACTIVATE, vt_active);
>  		SAFE_CLOSE(fd);
> +	}
> +
> +	tst_fzsync_pair_cleanup(&fzp);

If you move the fzsync cleanup to the end of cleanup(), you can end up
with the open_close() thread racing against fd cleanup.

>  }
>  
>  static struct tst_test test = {


-- 
Martin Doucha   mdoucha@suse.cz
QA Engineer for Software Maintenance
SUSE LINUX, s.r.o.
CORSO IIa
Krizikova 148/34
186 00 Prague 8
Czech Republic


More information about the ltp mailing list