[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