mux: fix ctrl-a b again
Commitfb5e19d2e1
originally fixed the regression, but was inadvertently broken again in merge commit2d6752d38d
. Fixes: https://bugs.launchpad.net/qemu/+bug/1654137 Cc: qemu-stable@nongnu.org Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20180515152500.19460-3-f4bug@amsat.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d4c8fcd91a
commit
eeaa671505
@ -304,6 +304,7 @@ void mux_set_focus(Chardev *chr, int focus)
|
|||||||
}
|
}
|
||||||
|
|
||||||
d->focus = focus;
|
d->focus = focus;
|
||||||
|
chr->be = d->backends[focus];
|
||||||
mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
|
mux_chr_send_event(d, d->focus, CHR_EVENT_MUX_IN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -214,6 +214,10 @@ static void char_mux_test(void)
|
|||||||
g_assert_cmpint(h2.last_event, ==, -1);
|
g_assert_cmpint(h2.last_event, ==, -1);
|
||||||
|
|
||||||
/* switch focus */
|
/* switch focus */
|
||||||
|
qemu_chr_be_write(base, (void *)"\1b", 2);
|
||||||
|
g_assert_cmpint(h1.last_event, ==, 42);
|
||||||
|
g_assert_cmpint(h2.last_event, ==, CHR_EVENT_BREAK);
|
||||||
|
|
||||||
qemu_chr_be_write(base, (void *)"\1c", 2);
|
qemu_chr_be_write(base, (void *)"\1c", 2);
|
||||||
g_assert_cmpint(h1.last_event, ==, CHR_EVENT_MUX_IN);
|
g_assert_cmpint(h1.last_event, ==, CHR_EVENT_MUX_IN);
|
||||||
g_assert_cmpint(h2.last_event, ==, CHR_EVENT_MUX_OUT);
|
g_assert_cmpint(h2.last_event, ==, CHR_EVENT_MUX_OUT);
|
||||||
@ -227,6 +231,10 @@ static void char_mux_test(void)
|
|||||||
g_assert_cmpstr(h1.read_buf, ==, "hello");
|
g_assert_cmpstr(h1.read_buf, ==, "hello");
|
||||||
h1.read_count = 0;
|
h1.read_count = 0;
|
||||||
|
|
||||||
|
qemu_chr_be_write(base, (void *)"\1b", 2);
|
||||||
|
g_assert_cmpint(h1.last_event, ==, CHR_EVENT_BREAK);
|
||||||
|
g_assert_cmpint(h2.last_event, ==, CHR_EVENT_MUX_OUT);
|
||||||
|
|
||||||
/* remove first handler */
|
/* remove first handler */
|
||||||
qemu_chr_fe_set_handlers(&chr_be1, NULL, NULL, NULL, NULL,
|
qemu_chr_fe_set_handlers(&chr_be1, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, true);
|
NULL, NULL, true);
|
||||||
|
Loading…
Reference in New Issue
Block a user