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;
|
||||
chr->be = d->backends[focus];
|
||||
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);
|
||||
|
||||
/* 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);
|
||||
g_assert_cmpint(h1.last_event, ==, CHR_EVENT_MUX_IN);
|
||||
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");
|
||||
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 */
|
||||
qemu_chr_fe_set_handlers(&chr_be1, NULL, NULL, NULL, NULL,
|
||||
NULL, NULL, true);
|
||||
|
Loading…
Reference in New Issue
Block a user