aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorStefan Fritsch <sf@sfritsch.de>2017-06-11 09:48:17 +0200
committerDr. David Alan Gilbert <dgilbert@redhat.com>2017-06-29 17:14:11 +0100
commitbd1d5ad9f9a1347d6f4338f294253617c565c89a (patch)
tree0c6c05f44eae0cca3dae76962669e524a3d5125f /tests
parent18f0828278c62bf5b50ec24a012073cd79535481 (diff)
downloadqemu-bd1d5ad9f9a1347d6f4338f294253617c565c89a.zip
qemu-bd1d5ad9f9a1347d6f4338f294253617c565c89a.tar.gz
qemu-bd1d5ad9f9a1347d6f4338f294253617c565c89a.tar.bz2
Add chardev-send-break monitor command
Sending a break on a serial console can be useful for debugging the guest. But not all chardev backends support sending breaks (only telnet and mux do). The chardev-send-break command allows to send a break even if using other backends. Signed-off-by: Stefan Fritsch <sf@sfritsch.de> Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20170611074817.13621-1-sf@sfritsch.de> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Use 'send a break' in all 3 pieces of text as suggested by eblake
Diffstat (limited to 'tests')
-rw-r--r--tests/test-char.c12
-rw-r--r--tests/test-hmp.c1
2 files changed, 11 insertions, 2 deletions
diff --git a/tests/test-char.c b/tests/test-char.c
index 9e361c8..87c724c 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);
diff --git a/tests/test-hmp.c b/tests/test-hmp.c
index 99e35ec..6dfa0c3 100644
--- a/tests/test-hmp.c
+++ b/tests/test-hmp.c
@@ -22,6 +22,7 @@ static int verbose;
static const char *hmp_cmds[] = {
"boot_set ndc",
"chardev-add null,id=testchardev1",
+ "chardev-send-break testchardev2",
"chardev-remove testchardev1",
"commit all",
"cpu-add 1",