Signed-off-by: Juan Quintela <quintela@redhat.com>
---
tests/migration-test.c | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/tests/migration-test.c b/tests/migration-test.c
index c429a13403..be598d3257 100644
--- a/tests/migration-test.c
+++ b/tests/migration-test.c
@@ -354,17 +354,37 @@ static void cleanup(const char *filename)
g_free(path);
}
-static void migrate_set_downtime(QTestState *who, const char *value)
+static void migrate_check_parameter(QTestState *who, const char *parameter,
+ const char *value)
+{
+ QDict *rsp, *rsp_return;
+ const char *result;
+
+ rsp = wait_command(who, "{ 'execute': 'query-migrate-parameters' }");
+ rsp_return = qdict_get_qdict(rsp, "return");
+ result = g_strdup_printf("%" PRId64,
+ qdict_get_try_int(rsp_return, parameter, -1));
+ g_assert_cmpstr(result, ==, value);
+ QDECREF(rsp);
+}
+
+static void migrate_set_downtime(QTestState *who, const double value)
{
QDict *rsp;
gchar *cmd;
+ char *expected;
+ int64_t result_int;
cmd = g_strdup_printf("{ 'execute': 'migrate_set_downtime',"
- "'arguments': { 'value': %s } }", value);
+ "'arguments': { 'value': %g } }", value);
rsp = qtest_qmp(who, cmd);
g_free(cmd);
g_assert(qdict_haskey(rsp, "return"));
QDECREF(rsp);
+ result_int = value * 1000L;
+ expected = g_strdup_printf("%" PRId64, result_int);
+ migrate_check_parameter(who, "downtime-limit", expected);
+ g_free(expected);
}
static void migrate_set_speed(QTestState *who, const char *value)
@@ -378,6 +398,7 @@ static void migrate_set_speed(QTestState *who, const char *value)
g_free(cmd);
g_assert(qdict_haskey(rsp, "return"));
QDECREF(rsp);
+ migrate_check_parameter(who, "max-bandwidth", value);
}
static void migrate_set_capability(QTestState *who, const char *capability,
@@ -509,7 +530,7 @@ static void test_migrate(void)
* machine, so also set the downtime.
*/
migrate_set_speed(from, "100000000");
- migrate_set_downtime(from, "0.001");
+ migrate_set_downtime(from, 0.001);
/* Wait for the first serial output from the source */
wait_for_serial("src_serial");
--
2.13.6
* Juan Quintela (quintela@redhat.com) wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> tests/migration-test.c | 27 ++++++++++++++++++++++++---
> 1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/tests/migration-test.c b/tests/migration-test.c
> index c429a13403..be598d3257 100644
> --- a/tests/migration-test.c
> +++ b/tests/migration-test.c
> @@ -354,17 +354,37 @@ static void cleanup(const char *filename)
> g_free(path);
> }
>
> -static void migrate_set_downtime(QTestState *who, const char *value)
> +static void migrate_check_parameter(QTestState *who, const char *parameter,
> + const char *value)
> +{
> + QDict *rsp, *rsp_return;
> + const char *result;
> +
> + rsp = wait_command(who, "{ 'execute': 'query-migrate-parameters' }");
> + rsp_return = qdict_get_qdict(rsp, "return");
> + result = g_strdup_printf("%" PRId64,
> + qdict_get_try_int(rsp_return, parameter, -1));
> + g_assert_cmpstr(result, ==, value);
> + QDECREF(rsp);
> +}
> +
> +static void migrate_set_downtime(QTestState *who, const double value)
> {
> QDict *rsp;
> gchar *cmd;
> + char *expected;
> + int64_t result_int;
>
> cmd = g_strdup_printf("{ 'execute': 'migrate_set_downtime',"
> - "'arguments': { 'value': %s } }", value);
> + "'arguments': { 'value': %g } }", value);
I wonder if that will hit any FP representation problems for some
values?
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> rsp = qtest_qmp(who, cmd);
> g_free(cmd);
> g_assert(qdict_haskey(rsp, "return"));
> QDECREF(rsp);
> + result_int = value * 1000L;
> + expected = g_strdup_printf("%" PRId64, result_int);
> + migrate_check_parameter(who, "downtime-limit", expected);
> + g_free(expected);
> }
>
> static void migrate_set_speed(QTestState *who, const char *value)
> @@ -378,6 +398,7 @@ static void migrate_set_speed(QTestState *who, const char *value)
> g_free(cmd);
> g_assert(qdict_haskey(rsp, "return"));
> QDECREF(rsp);
> + migrate_check_parameter(who, "max-bandwidth", value);
> }
>
> static void migrate_set_capability(QTestState *who, const char *capability,
> @@ -509,7 +530,7 @@ static void test_migrate(void)
> * machine, so also set the downtime.
> */
> migrate_set_speed(from, "100000000");
> - migrate_set_downtime(from, "0.001");
> + migrate_set_downtime(from, 0.001);
>
> /* Wait for the first serial output from the source */
> wait_for_serial("src_serial");
> --
> 2.13.6
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
"Dr. David Alan Gilbert" <dgilbert@redhat.com> wrote:
> * Juan Quintela (quintela@redhat.com) wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> tests/migration-test.c | 27 ++++++++++++++++++++++++---
>> 1 file changed, 24 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/migration-test.c b/tests/migration-test.c
>> index c429a13403..be598d3257 100644
>> --- a/tests/migration-test.c
>> +++ b/tests/migration-test.c
>> @@ -354,17 +354,37 @@ static void cleanup(const char *filename)
>> g_free(path);
>> }
>>
>> -static void migrate_set_downtime(QTestState *who, const char *value)
>> +static void migrate_check_parameter(QTestState *who, const char *parameter,
>> + const char *value)
>> +{
>> + QDict *rsp, *rsp_return;
>> + const char *result;
>> +
>> + rsp = wait_command(who, "{ 'execute': 'query-migrate-parameters' }");
>> + rsp_return = qdict_get_qdict(rsp, "return");
>> + result = g_strdup_printf("%" PRId64,
>> + qdict_get_try_int(rsp_return, parameter, -1));
>> + g_assert_cmpstr(result, ==, value);
>> + QDECREF(rsp);
>> +}
>> +
>> +static void migrate_set_downtime(QTestState *who, const double value)
>> {
>> QDict *rsp;
>> gchar *cmd;
>> + char *expected;
>> + int64_t result_int;
>>
>> cmd = g_strdup_printf("{ 'execute': 'migrate_set_downtime',"
>> - "'arguments': { 'value': %s } }", value);
>> + "'arguments': { 'value': %g } }", value);
>
> I wonder if that will hit any FP representation problems for some
> values?
This is a deprecated function, so .....
Thanks, Juan.
On Thu, Oct 26, 2017 at 09:52:17AM +0200, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> tests/migration-test.c | 27 ++++++++++++++++++++++++---
> 1 file changed, 24 insertions(+), 3 deletions(-)
>
> diff --git a/tests/migration-test.c b/tests/migration-test.c
> index c429a13403..be598d3257 100644
> --- a/tests/migration-test.c
> +++ b/tests/migration-test.c
> @@ -354,17 +354,37 @@ static void cleanup(const char *filename)
> g_free(path);
> }
>
> -static void migrate_set_downtime(QTestState *who, const char *value)
> +static void migrate_check_parameter(QTestState *who, const char *parameter,
> + const char *value)
> +{
> + QDict *rsp, *rsp_return;
> + const char *result;
> +
> + rsp = wait_command(who, "{ 'execute': 'query-migrate-parameters' }");
> + rsp_return = qdict_get_qdict(rsp, "return");
> + result = g_strdup_printf("%" PRId64,
> + qdict_get_try_int(rsp_return, parameter, -1));
> + g_assert_cmpstr(result, ==, value);
> + QDECREF(rsp);
Maybe we need to free "result" as well? I see a pull request already,
so maybe another fix patch on top. Thanks,
> +}
> +
> +static void migrate_set_downtime(QTestState *who, const double value)
> {
> QDict *rsp;
> gchar *cmd;
> + char *expected;
> + int64_t result_int;
>
> cmd = g_strdup_printf("{ 'execute': 'migrate_set_downtime',"
> - "'arguments': { 'value': %s } }", value);
> + "'arguments': { 'value': %g } }", value);
> rsp = qtest_qmp(who, cmd);
> g_free(cmd);
> g_assert(qdict_haskey(rsp, "return"));
> QDECREF(rsp);
> + result_int = value * 1000L;
> + expected = g_strdup_printf("%" PRId64, result_int);
> + migrate_check_parameter(who, "downtime-limit", expected);
> + g_free(expected);
> }
>
> static void migrate_set_speed(QTestState *who, const char *value)
> @@ -378,6 +398,7 @@ static void migrate_set_speed(QTestState *who, const char *value)
> g_free(cmd);
> g_assert(qdict_haskey(rsp, "return"));
> QDECREF(rsp);
> + migrate_check_parameter(who, "max-bandwidth", value);
> }
>
> static void migrate_set_capability(QTestState *who, const char *capability,
> @@ -509,7 +530,7 @@ static void test_migrate(void)
> * machine, so also set the downtime.
> */
> migrate_set_speed(from, "100000000");
> - migrate_set_downtime(from, "0.001");
> + migrate_set_downtime(from, 0.001);
>
> /* Wait for the first serial output from the source */
> wait_for_serial("src_serial");
> --
> 2.13.6
>
--
Peter Xu
Peter Xu <peterx@redhat.com> wrote:
> On Thu, Oct 26, 2017 at 09:52:17AM +0200, Juan Quintela wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> tests/migration-test.c | 27 ++++++++++++++++++++++++---
>> 1 file changed, 24 insertions(+), 3 deletions(-)
>>
>> diff --git a/tests/migration-test.c b/tests/migration-test.c
>> index c429a13403..be598d3257 100644
>> --- a/tests/migration-test.c
>> +++ b/tests/migration-test.c
>> @@ -354,17 +354,37 @@ static void cleanup(const char *filename)
>> g_free(path);
>> }
>>
>> -static void migrate_set_downtime(QTestState *who, const char *value)
>> +static void migrate_check_parameter(QTestState *who, const char *parameter,
>> + const char *value)
>> +{
>> + QDict *rsp, *rsp_return;
>> + const char *result;
>> +
>> + rsp = wait_command(who, "{ 'execute': 'query-migrate-parameters' }");
>> + rsp_return = qdict_get_qdict(rsp, "return");
>> + result = g_strdup_printf("%" PRId64,
>> + qdict_get_try_int(rsp_return, parameter, -1));
>> + g_assert_cmpstr(result, ==, value);
>> + QDECREF(rsp);
>
> Maybe we need to free "result" as well? I see a pull request already,
> so maybe another fix patch on top. Thanks,
Done, thanks.
>
>> +}
>> +
>> +static void migrate_set_downtime(QTestState *who, const double value)
>> {
>> QDict *rsp;
>> gchar *cmd;
>> + char *expected;
>> + int64_t result_int;
>>
>> cmd = g_strdup_printf("{ 'execute': 'migrate_set_downtime',"
>> - "'arguments': { 'value': %s } }", value);
>> + "'arguments': { 'value': %g } }", value);
>> rsp = qtest_qmp(who, cmd);
>> g_free(cmd);
>> g_assert(qdict_haskey(rsp, "return"));
>> QDECREF(rsp);
>> + result_int = value * 1000L;
>> + expected = g_strdup_printf("%" PRId64, result_int);
>> + migrate_check_parameter(who, "downtime-limit", expected);
>> + g_free(expected);
>> }
>>
>> static void migrate_set_speed(QTestState *who, const char *value)
>> @@ -378,6 +398,7 @@ static void migrate_set_speed(QTestState *who, const char *value)
>> g_free(cmd);
>> g_assert(qdict_haskey(rsp, "return"));
>> QDECREF(rsp);
>> + migrate_check_parameter(who, "max-bandwidth", value);
>> }
>>
>> static void migrate_set_capability(QTestState *who, const char *capability,
>> @@ -509,7 +530,7 @@ static void test_migrate(void)
>> * machine, so also set the downtime.
>> */
>> migrate_set_speed(from, "100000000");
>> - migrate_set_downtime(from, "0.001");
>> + migrate_set_downtime(from, 0.001);
>>
>> /* Wait for the first serial output from the source */
>> wait_for_serial("src_serial");
>> --
>> 2.13.6
>>
© 2016 - 2025 Red Hat, Inc.