aboutsummaryrefslogtreecommitdiff
path: root/tests/plugin
diff options
context:
space:
mode:
authorMahmoud Mandour <ma.mandourr@gmail.com>2021-07-30 15:58:14 +0200
committerAlex Bennée <alex.bennee@linaro.org>2021-09-02 11:29:34 +0100
commit0163ce31794b5debcf2527b8156a78dabc45b802 (patch)
treedcb27dc8c47f6a5e77ae22ecc490b327fb7ec1a6 /tests/plugin
parent30b95b44523dbe0f0a0ad2cd23232dbb0c1c6a69 (diff)
tests/plugins/insn: made arg inline not positional and parse it as bool
Made argument "inline" not positional, this has two benefits. First is that we adhere to how QEMU passes args generally, by taking the last value of an argument and drop the others. And the second is that this sets up a framework for potentially adding new args easily. Signed-off-by: Mahmoud Mandour <ma.mandourr@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20210730135817.17816-11-ma.mandourr@gmail.com> [AJB: fix check-tcg tests calling arg=inline] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Diffstat (limited to 'tests/plugin')
-rw-r--r--tests/plugin/insn.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/plugin/insn.c b/tests/plugin/insn.c
index c253980ec8..0f6a1938c1 100644
--- a/tests/plugin/insn.c
+++ b/tests/plugin/insn.c
@@ -62,8 +62,18 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
const qemu_info_t *info,
int argc, char **argv)
{
- if (argc && !strcmp(argv[0], "inline")) {
- do_inline = true;
+ for (int i = 0; i < argc; i++) {
+ char *opt = argv[i];
+ g_autofree char **tokens = g_strsplit(opt, "=", 2);
+ if (g_strcmp0(tokens[0], "inline") == 0) {
+ if (!qemu_plugin_bool_parse(tokens[0], tokens[1], &do_inline)) {
+ fprintf(stderr, "boolean argument parsing failed: %s\n", opt);
+ return -1;
+ }
+ } else {
+ fprintf(stderr, "option parsing failed: %s\n", opt);
+ return -1;
+ }
}
qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);