summaryrefslogtreecommitdiff
path: root/tests/test-char.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2017-06-07 22:26:38 +0400
committerMarc-André Lureau <marcandre.lureau@redhat.com>2017-06-08 17:58:13 +0400
commit27d4c3789ddde40e1c7280150b46eb20a6a892e6 (patch)
tree73d61624a2b76ab5719b35588ed0993891a72556 /tests/test-char.c
parent73119c2864cfd193b2883f833b598e381f7d29d7 (diff)
downloadqemu-27d4c3789ddde40e1c7280150b46eb20a6a892e6.tar.gz
test-char: start a /char/serial test
Quite limited test, to check that the chardev can be created with a path and with the tty alias. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'tests/test-char.c')
-rw-r--r--tests/test-char.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test-char.c b/tests/test-char.c
index dfe856cb85..9e361c8d09 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -450,6 +450,32 @@ static void char_udp_test(void)
g_free(tmp);
}
+#ifdef HAVE_CHARDEV_SERIAL
+static void char_serial_test(void)
+{
+ QemuOpts *opts;
+ Chardev *chr;
+
+ opts = qemu_opts_create(qemu_find_opts("chardev"), "serial-id",
+ 1, &error_abort);
+ qemu_opt_set(opts, "backend", "serial", &error_abort);
+ qemu_opt_set(opts, "path", "/dev/null", &error_abort);
+
+ chr = qemu_chr_new_from_opts(opts, NULL);
+ g_assert_nonnull(chr);
+ /* TODO: add more tests with a pty */
+ object_unparent(OBJECT(chr));
+
+ /* test tty alias */
+ qemu_opt_set(opts, "backend", "tty", &error_abort);
+ chr = qemu_chr_new_from_opts(opts, NULL);
+ g_assert_nonnull(chr);
+ object_unparent(OBJECT(chr));
+
+ qemu_opts_del(opts);
+}
+#endif
+
static void char_file_test(void)
{
char *tmp_path = g_dir_make_tmp("qemu-test-char.XXXXXX", NULL);
@@ -597,6 +623,9 @@ int main(int argc, char **argv)
g_test_add_func("/char/file", char_file_test);
g_test_add_func("/char/socket", char_socket_test);
g_test_add_func("/char/udp", char_udp_test);
+#ifdef HAVE_CHARDEV_SERIAL
+ g_test_add_func("/char/serial", char_serial_test);
+#endif
return g_test_run();
}