Steve Sistare <[email protected]> writes:

> Refactor qtest_spawn_qemu and create a subroutine to create a QTestState
> object, to be used in a subsequent patch.
>
> Signed-off-by: Steve Sistare <[email protected]>
> ---
>  tests/qtest/libqtest.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c
> index 551bc8c..3fa9317 100644
> --- a/tests/qtest/libqtest.c
> +++ b/tests/qtest/libqtest.c
> @@ -409,22 +409,29 @@ static pid_t qtest_create_process(char *cmd)
>  }
>  #endif /* _WIN32 */
>  
> -static QTestState *qtest_spawn_qemu(const char *qemu_bin, const char *args)
> +static QTestState *qtest_create_test_state(int pid)
>  {
>      QTestState *s = g_new0(QTestState, 1);
> +
> +    s->qemu_pid = pid;
> +    qtest_add_abrt_handler(kill_qemu_hook_func, s);
> +    return s;
> +}
> +
> +static QTestState *qtest_spawn_qemu(const char *qemu_bin, const char *args)
> +{
> +    int pid;
>      g_autoptr(GString) command = g_string_new("");
>  
>      g_string_printf(command, CMD_EXEC "%s %s", qemu_bin, args);
>  
> -    qtest_add_abrt_handler(kill_qemu_hook_func, s);
> -
>      if (!silence_spawn_log) {
>          g_test_message("starting QEMU: %s", command->str);
>      }
>  
>  #ifndef _WIN32
> -    s->qemu_pid = fork();
> -    if (s->qemu_pid == 0) {
> +    pid = fork();
> +    if (pid == 0) {
>  #ifdef __linux__
>          /*
>           * Although we register a ABRT handler to kill off QEMU
> @@ -447,10 +454,10 @@ static QTestState *qtest_spawn_qemu(const char 
> *qemu_bin, const char *args)
>          exit(1);
>      }
>  #else
> -    s->qemu_pid = qtest_create_process(command->str);
> +    pid = qtest_create_process(command->str);
>  #endif /* _WIN32 */
>  
> -    return s;
> +    return qtest_create_test_state(pid);
>  }
>  
>  static char *qtest_socket_path(const char *suffix)

Reviewed-by: Fabiano Rosas <[email protected]>

Reply via email to