All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: peter.maydell@linaro.org
Cc: "Eduardo Habkost" <ehabkost@redhat.com>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org, "Paolo Bonzini" <pbonzini@redhat.com>,
	"Alexandre Iooss" <erdnaxe@crans.org>,
	"Mahmoud Mandour" <ma.mandourr@gmail.com>,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: [PULL 18/22] tests/plugins/insn: made arg inline not positional and parse it as bool
Date: Fri,  3 Sep 2021 10:03:35 +0100	[thread overview]
Message-ID: <20210903090339.1074887-19-alex.bennee@linaro.org> (raw)
In-Reply-To: <20210903090339.1074887-1-alex.bennee@linaro.org>

From: Mahmoud Mandour <ma.mandourr@gmail.com>

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>

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);
diff --git a/tests/tcg/i386/Makefile.softmmu-target b/tests/tcg/i386/Makefile.softmmu-target
index fa9b1b9f90..9b9038d0be 100644
--- a/tests/tcg/i386/Makefile.softmmu-target
+++ b/tests/tcg/i386/Makefile.softmmu-target
@@ -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)")
diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
index b0a2128980..a053ca3f15 100644
--- a/tests/tcg/i386/Makefile.target
+++ b/tests/tcg/i386/Makefile.target
@@ -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)")
 
diff --git a/tests/tcg/x86_64/Makefile.softmmu-target b/tests/tcg/x86_64/Makefile.softmmu-target
index 9896319f0e..2afa3298bf 100644
--- a/tests/tcg/x86_64/Makefile.softmmu-target
+++ b/tests/tcg/x86_64/Makefile.softmmu-target
@@ -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)")
-- 
2.30.2



  parent reply	other threads:[~2021-09-03  9:18 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-03  9:03 [PULL 00/22] testing and plugin updates Alex Bennée
2021-09-03  9:03 ` [PULL 01/22] plugins/execlog: removed unintended "s" at the end of log lines Alex Bennée
2021-09-03  9:03 ` [PULL 02/22] gitlab-ci: Merge "build-disabled" with "build-without-default-features" Alex Bennée
2021-09-03  9:03 ` [PULL 03/22] gitlab-ci: Remove superfluous "dnf install" statement Alex Bennée
2021-09-03  9:03 ` [PULL 04/22] gitlab-ci: Fix ..._RUNNER_AVAILABLE variables and document them Alex Bennée
2021-09-03  9:03 ` [PULL 05/22] plugins: do not limit exported symbols if modules are active Alex Bennée
2021-09-03  9:03 ` [PULL 06/22] plugins/cache: supported multicore cache modelling Alex Bennée
2021-09-03  9:03 ` [PULL 07/22] plugins: sort exported symbol list Alex Bennée
2021-09-03  9:03 ` [PULL 08/22] docs/devel/tcg-plugins: added cores arg to cache plugin Alex Bennée
2021-09-03  9:03 ` [PULL 09/22] plugins: allow plugin arguments to be passed directly Alex Bennée
2021-09-03  9:03 ` [PULL 10/22] plugins/api: added a boolean parsing plugin api Alex Bennée
2021-09-03  9:03 ` [PULL 11/22] plugins/hotpages: introduce sortby arg and parsed bool args correctly Alex Bennée
2021-09-03  9:03 ` [PULL 12/22] plugins/hotblocks: Added correct boolean argument parsing Alex Bennée
2021-09-03  9:03 ` [PULL 13/22] plugins/lockstep: make socket path not positional & parse bool arg Alex Bennée
2021-09-03  9:03 ` [PULL 14/22] plugins/hwprofile: adapt to the new plugin arguments scheme Alex Bennée
2021-09-03  9:03 ` [PULL 15/22] plugins/howvec: adapting to the new argument passing scheme Alex Bennée
2021-09-03  9:03 ` [PULL 16/22] docs/tcg-plugins: new passing parameters scheme for cache docs Alex Bennée
2021-09-03  9:03 ` [PULL 17/22] tests/plugins/bb: adapt to the new arg passing scheme Alex Bennée
2021-09-03  9:03 ` Alex Bennée [this message]
2021-09-03  9:03 ` [PULL 19/22] tests/plugins/mem: introduce "track" arg and make args not positional Alex Bennée
2021-09-03  9:03 ` [PULL 20/22] tests/plugins/syscalls: adhere to new arg-passing scheme Alex Bennée
2021-09-03  9:03 ` [PULL 21/22] docs/deprecated: deprecate passing plugin args through `arg=` Alex Bennée
2021-09-03  9:03 ` [PULL 22/22] docs/devel: be consistent about example plugin names Alex Bennée
2021-09-04 18:20 ` [PULL 00/22] testing and plugin updates Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210903090339.1074887-19-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=ehabkost@redhat.com \
    --cc=erdnaxe@crans.org \
    --cc=ma.mandourr@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.