mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
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>
This commit is contained in:
parent
30b95b4452
commit
0163ce3179
4 changed files with 15 additions and 5 deletions
|
@ -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);
|
||||
|
|
|
@ -38,7 +38,7 @@ run-plugin-%-with-libinsn.so:
|
|||
$(call run-test, $@, \
|
||||
$(QEMU) -monitor none -display none \
|
||||
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)arg=inline \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
|
||||
-d plugin -D $*-with-libinsn.so.pout \
|
||||
$(QEMU_OPTS) $*, \
|
||||
"$* on $(TARGET_NAME)")
|
||||
|
|
|
@ -61,7 +61,7 @@ endif
|
|||
# non-inline runs will trigger the duplicate instruction heuristics in libinsn.so
|
||||
run-plugin-%-with-libinsn.so:
|
||||
$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)arg=inline \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
|
||||
-d plugin -D $*-with-libinsn.so.pout $*, \
|
||||
"$* (inline) on $(TARGET_NAME)")
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ run-plugin-%-with-libinsn.so:
|
|||
$(call run-test, $@, \
|
||||
$(QEMU) -monitor none -display none \
|
||||
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)arg=inline \
|
||||
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
|
||||
-d plugin -D $*-with-libinsn.so.pout \
|
||||
$(QEMU_OPTS) $*, \
|
||||
"$* on $(TARGET_NAME)")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue