Skip to content

Commit

Permalink
tests: numa: add case for QMP command query-cpus
Browse files Browse the repository at this point in the history
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Message-Id: <1494415802-227633-13-git-send-email-imammedo@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
  • Loading branch information
Igor Mammedov authored and ehabkost committed May 11, 2017
1 parent afed5a5 commit 6accfb7
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 14 deletions.
14 changes: 0 additions & 14 deletions numa.c
Expand Up @@ -737,20 +737,6 @@ MemdevList *qmp_query_memdev(Error **errp)
return list;
}

int numa_get_node_for_cpu(int idx)
{
int i;

assert(idx < max_cpus);

for (i = 0; i < nb_numa_nodes; i++) {
if (test_bit(idx, numa_info[i].node_cpu)) {
break;
}
}
return i;
}

void ram_block_notifier_add(RAMBlockNotifier *n)
{
QLIST_INSERT_HEAD(&ram_list.ramblock_notifiers, n, next);
Expand Down
45 changes: 45 additions & 0 deletions tests/numa-test.c
Expand Up @@ -87,6 +87,50 @@ static void test_mon_partial(const void *data)
g_free(cli);
}

static QList *get_cpus(QDict **resp)
{
*resp = qmp("{ 'execute': 'query-cpus' }");
g_assert(*resp);
g_assert(qdict_haskey(*resp, "return"));
return qdict_get_qlist(*resp, "return");
}

static void test_query_cpus(const void *data)
{
char *cli;
QDict *resp;
QList *cpus;
const QObject *e;

cli = make_cli(data, "-smp 8 -numa node,cpus=0-3 -numa node,cpus=4-7");
qtest_start(cli);
cpus = get_cpus(&resp);
g_assert(cpus);

while ((e = qlist_pop(cpus))) {
QDict *cpu, *props;
int64_t cpu_idx, node;

cpu = qobject_to_qdict(e);
g_assert(qdict_haskey(cpu, "CPU"));
g_assert(qdict_haskey(cpu, "props"));

cpu_idx = qdict_get_int(cpu, "CPU");
props = qdict_get_qdict(cpu, "props");
g_assert(qdict_haskey(props, "node-id"));
node = qdict_get_int(props, "node-id");
if (cpu_idx >= 0 && cpu_idx < 4) {
g_assert_cmpint(node, ==, 0);
} else {
g_assert_cmpint(node, ==, 1);
}
}

QDECREF(resp);
qtest_end();
g_free(cli);
}

int main(int argc, char **argv)
{
const char *args = NULL;
Expand All @@ -101,6 +145,7 @@ int main(int argc, char **argv)
qtest_add_data_func("/numa/mon/default", args, test_mon_default);
qtest_add_data_func("/numa/mon/cpus/explicit", args, test_mon_explicit);
qtest_add_data_func("/numa/mon/cpus/partial", args, test_mon_partial);
qtest_add_data_func("/numa/qmp/cpus/query-cpus", args, test_query_cpus);

return g_test_run();
}

0 comments on commit 6accfb7

Please sign in to comment.