Commit a22528b918 fixed an issue that is exposed by means of the
"set-numa-node" QMP command (introduced in f3be67812). This adds a
test that pretty much maps the steps documented on the fix.
Additionally, given that 'set-numa-node' is only allowed in
'preconfig' state, a specific check for that was added a separate
test.
Tests: a22528b918c7d29795129b5a64c4cb44bb57a44d
Reference: f3be67812c226162f86ce92634bd913714445420
CC: Igor Mammedov <address@hidden>
CC: Markus Armbruster <address@hidden>
Signed-off-by: Cleber Rosa <address@hidden>
---
tests/acceptance/set_numa_node.py | 41 +++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 tests/acceptance/set_numa_node.py
diff --git a/tests/acceptance/set_numa_node.py
b/tests/acceptance/set_numa_node.py
new file mode 100644
index 0000000000..0c55315231
--- /dev/null
+++ b/tests/acceptance/set_numa_node.py
@@ -0,0 +1,41 @@
+# Tests for QMP set-numa-node related behavior and regressions
+#
+# Copyright (c) 2018 Red Hat, Inc.
+#
+# Author:
+# Cleber Rosa <address@hidden>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later. See the COPYING file in the top-level directory.
+
+from avocado_qemu import Test
+
+
+class SetNumaNode(Test):
+ """
+ :avocado: enable
+ :avocado: tags=quick,numa
+ """
+ def test_numa_not_supported(self):
+ self.vm.add_args('-nodefaults', '-S', '-preconfig')
+ self.vm.set_machine('none')
+ self.vm.launch()
+ res = self.vm.qmp('set-numa-node', type='node')
+ self.assertIsNotNone(res, 'Unexpected empty QMP response to
"set-numa-node"')
+ self.assertEqual(res['error']['class'], 'GenericError')
+ self.assertEqual(res['error']['desc'],
+ 'NUMA is not supported by this machine-type')
+ self.assertTrue(self.vm.is_running())
+ self.vm.qmp('x-exit-preconfig')
+ self.vm.shutdown()
+ self.assertEqual(self.vm.exitcode(), 0)
+
+ def test_no_preconfig(self):
+ self.vm.add_args('-nodefaults', '-S')
+ self.vm.set_machine('none')
+ self.vm.launch()
+ res = self.vm.qmp('set-numa-node', type='node')
+ self.assertIsNotNone(res, 'Unexpected empty QMP response to
"set-numa-node"')
+ self.assertEqual(res['error']['class'], 'GenericError')
+ self.assertEqual(res['error']['desc'],
+ "The command is permitted only in 'preconfig' state")