diff mbox

[v1,repost] qtest: fix qtest log fd should be initialized before qtest chardev

Message ID 1413944807-12112-1-git-send-email-john.liuli@huawei.com
State New
Headers show

Commit Message

john.liuli Oct. 22, 2014, 2:26 a.m. UTC
From: Li Liu <john.liuli@huawei.com>

qtest_log_fp should be inited before qemu_chr_add_handlers.
If not the log dumped from callback functions may be lost.

easy to reproduce it by command:
"QTEST_LOG=1 QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64
gtester -k --verbose -m=quick tests/qdev-monitor-test"

The log "[I xxxxxx] OPENED" should be printed out by
qtest_event, but does not.

Signed-off-by: Li Liu <john.liuli@huawei.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 qtest.c |    9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Paolo Bonzini Oct. 22, 2014, 6:33 a.m. UTC | #1
On 10/22/2014 04:26 AM, john.liuli wrote:
> From: Li Liu <john.liuli@huawei.com>
> 
> qtest_log_fp should be inited before qemu_chr_add_handlers.
> If not the log dumped from callback functions may be lost.
> 
> easy to reproduce it by command:
> "QTEST_LOG=1 QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64
> gtester -k --verbose -m=quick tests/qdev-monitor-test"
> 
> The log "[I xxxxxx] OPENED" should be printed out by
> qtest_event, but does not.
> 
> Signed-off-by: Li Liu <john.liuli@huawei.com>
> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
>  qtest.c |    9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/qtest.c b/qtest.c
> index ef0d991..2a33d98 100644
> --- a/qtest.c
> +++ b/qtest.c
> @@ -537,11 +537,6 @@ void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
>          return;
>      }
>  
> -    qemu_chr_add_handlers(chr, qtest_can_read, qtest_read, qtest_event, chr);
> -    qemu_chr_fe_set_echo(chr, true);
> -
> -    inbuf = g_string_new("");
> -
>      if (qtest_log) {
>          if (strcmp(qtest_log, "none") != 0) {
>              qtest_log_fp = fopen(qtest_log, "w+");
> @@ -550,6 +545,10 @@ void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
>          qtest_log_fp = stderr;
>      }
>  
> +    qemu_chr_add_handlers(chr, qtest_can_read, qtest_read, qtest_event, chr);
> +    qemu_chr_fe_set_echo(chr, true);
> +
> +    inbuf = g_string_new("");
>      qtest_chr = chr;
>  }
>  
> 

Thanks, applying.

Paolo
diff mbox

Patch

diff --git a/qtest.c b/qtest.c
index ef0d991..2a33d98 100644
--- a/qtest.c
+++ b/qtest.c
@@ -537,11 +537,6 @@  void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
         return;
     }
 
-    qemu_chr_add_handlers(chr, qtest_can_read, qtest_read, qtest_event, chr);
-    qemu_chr_fe_set_echo(chr, true);
-
-    inbuf = g_string_new("");
-
     if (qtest_log) {
         if (strcmp(qtest_log, "none") != 0) {
             qtest_log_fp = fopen(qtest_log, "w+");
@@ -550,6 +545,10 @@  void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
         qtest_log_fp = stderr;
     }
 
+    qemu_chr_add_handlers(chr, qtest_can_read, qtest_read, qtest_event, chr);
+    qemu_chr_fe_set_echo(chr, true);
+
+    inbuf = g_string_new("");
     qtest_chr = chr;
 }