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

Cyril Hrubis chrubis@suse.cz
Fri Mar 11 10:51:01 CET 2022


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);
 }
 
 static struct tst_test test = {
-- 
2.34.1



More information about the ltp mailing list