aboutsummaryrefslogtreecommitdiff
path: root/tests/test-char.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-char.c')
-rw-r--r--tests/test-char.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/tests/test-char.c b/tests/test-char.c
index 9e361c8d09..87c724c5c2 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -53,7 +53,9 @@ static void fe_event(void *opaque, int event)
FeHandler *h = opaque;
h->last_event = event;
- quit = true;
+ if (event != CHR_EVENT_BREAK) {
+ quit = true;
+ }
}
#ifdef CONFIG_HAS_GLIB_SUBPROCESS_TESTS
@@ -517,7 +519,7 @@ static void char_file_test(void)
file.in = fifo;
file.has_in = true;
- chr = qemu_chardev_new(NULL, TYPE_CHARDEV_FILE, &backend,
+ chr = qemu_chardev_new("label-file", TYPE_CHARDEV_FILE, &backend,
&error_abort);
qemu_chr_fe_init(&be, chr, &error_abort);
@@ -527,6 +529,12 @@ static void char_file_test(void)
fe_event,
&fe, NULL, true);
+ g_assert_cmpint(fe.last_event, !=, CHR_EVENT_BREAK);
+ qmp_chardev_send_break("label-foo", NULL);
+ g_assert_cmpint(fe.last_event, !=, CHR_EVENT_BREAK);
+ qmp_chardev_send_break("label-file", NULL);
+ g_assert_cmpint(fe.last_event, ==, CHR_EVENT_BREAK);
+
main_loop();
close(fd);