* [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04
@ 2015-12-04 17:56 Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 1/4] tests: Fix check-report-qtest-% target Andreas Färber
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Andreas Färber @ 2015-12-04 17:56 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Andreas Färber, Marc-André Lureau,
Markus Armbruster
Hello Peter,
This is my QOM (devices) patch queue for 2.5. Please pull.
v2 squashes a fix by Markus.
Regards,
Andreas
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
The following changes since commit 4c65fed8bdf96780735dbdb92a8bd0d6b6526cc3:
ui: vnc: avoid floating point exception (2015-12-03 13:34:50 +0000)
are available in the git repository at:
git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-peter
for you to fetch changes up to 0d2cd785ef1282b14687f9f7f4b63ae4a2430be3:
qom-test: Fix qmp() leaks (2015-12-04 18:29:31 +0100)
----------------------------------------------------------------
QOM infrastructure fixes and device conversions
* Documentation update
* qom-test and related fixes
----------------------------------------------------------------
Andreas Färber (1):
tests: Fix check-report-qtest-% target
Cao jin (1):
qom: Update documentation comment of struct Object
Marc-André Lureau (1):
qom-test: Fix qmp() leaks
Markus Armbruster (1):
tests: Use proper functions types instead of void (*fn)
include/qom/object.h | 3 ---
tests/Makefile | 4 ++--
tests/ide-test.c | 4 ++--
tests/libqtest.c | 14 ++++++++++----
tests/libqtest.h | 7 ++++---
tests/qom-test.c | 21 ++++++++++++++-------
tests/vhost-user-test.c | 3 ++-
7 files changed, 34 insertions(+), 22 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL v2 1/4] tests: Fix check-report-qtest-% target
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
@ 2015-12-04 17:56 ` Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 2/4] qom: Update documentation comment of struct Object Andreas Färber
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2015-12-04 17:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber
Commit e253c28 ("tests: Fix how qom-test is run") introduced
$(qtest-generic-y) and used it for check-qtest-% target, but did not
update check-report-qtest-%. This causes check-report-qtest-aarch64.xml
target to fail with a gtester usage error for lack of test arguments.
Fix this by adding $(qtest-generic-y) in check-report-qtest-%.
Also add it in check-clean target, spotted by Markus.
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
tests/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/Makefile b/tests/Makefile
index 0ef00a1..a1d03b4 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -612,7 +612,7 @@ $(patsubst %, check-%, $(check-unit-y)): check-%: %
$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y)
$(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
QTEST_QEMU_IMG=qemu-img$(EXESUF) \
- gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@")
+ gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y) $(check-qtest-generic-y),"GTESTER $@")
check-report-unit.xml: $(check-unit-y)
$(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@")
@@ -660,7 +660,7 @@ check: check-qapi-schema check-unit check-qtest
check-clean:
$(MAKE) -C tests/tcg clean
rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
- rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)))
+ rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y))
clean: check-clean
--
2.6.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL v2 2/4] qom: Update documentation comment of struct Object
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 1/4] tests: Fix check-report-qtest-% target Andreas Färber
@ 2015-12-04 17:56 ` Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 3/4] tests: Use proper functions types instead of void (*fn) Andreas Färber
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2015-12-04 17:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Cao jin, Andreas Färber
From: Cao jin <caoj.fnst@cn.fujitsu.com>
It doesn't have "GSList *interfaces" anymore, drop the paragraph.
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
include/qom/object.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/qom/object.h b/include/qom/object.h
index f172fea..4509166 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -394,9 +394,6 @@ struct ObjectClass
* As a result, #Object contains a reference to the objects type as its
* first member. This allows identification of the real type of the object at
* run time.
- *
- * #Object also contains a list of #Interfaces that this object
- * implements.
*/
struct Object
{
--
2.6.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL v2 3/4] tests: Use proper functions types instead of void (*fn)
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 1/4] tests: Fix check-report-qtest-% target Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 2/4] qom: Update documentation comment of struct Object Andreas Färber
@ 2015-12-04 17:56 ` Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 4/4] qom-test: Fix qmp() leaks Andreas Färber
2015-12-07 11:04 ` [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2015-12-04 17:56 UTC (permalink / raw)
To: qemu-devel
Cc: John Snow, Markus Armbruster, open list:IDE, Andreas Färber
From: Markus Armbruster <armbru@redhat.com>
We have several function parameters declared as void (*fn). This is
just a stupid way to write void *, and the only purpose writing it
like that could serve is obscuring the sin of bypassing the type
system without need.
The original sin is commit 49ee359: its qtest_add_func() is a wrapper
for g_test_add_func(). Fix the parameter type to match
g_test_add_func()'s. This uncovers type errors in ide-test.c; fix
them.
Commit 7949c0e faithfully repeated the sin for qtest_add_data_func().
Fix it the same way, along with a harmless type error uncovered in
vhost-user-test.c.
Commit 063c23d repeated it for qtest_add_abrt_handler(). The screwy
parameter gets assigned to GHook member func, so change its type to
match. Requires wrapping kill_qemu() to keep the type checker happy.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
[AF/armbru: Inline GTestFunc/GTestDataFunc typedef for old GLib]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
tests/ide-test.c | 4 ++--
tests/libqtest.c | 14 ++++++++++----
tests/libqtest.h | 7 ++++---
tests/vhost-user-test.c | 3 ++-
4 files changed, 18 insertions(+), 10 deletions(-)
diff --git a/tests/ide-test.c b/tests/ide-test.c
index c3aacd2..b864701 100644
--- a/tests/ide-test.c
+++ b/tests/ide-test.c
@@ -593,12 +593,12 @@ static void test_flush_nodev(void)
ide_test_quit();
}
-static void test_pci_retry_flush(const char *machine)
+static void test_pci_retry_flush(void)
{
test_retry_flush("pc");
}
-static void test_isa_retry_flush(const char *machine)
+static void test_isa_retry_flush(void)
{
test_retry_flush("isapc");
}
diff --git a/tests/libqtest.c b/tests/libqtest.c
index 9753161..fa314e1 100644
--- a/tests/libqtest.c
+++ b/tests/libqtest.c
@@ -110,6 +110,11 @@ static void kill_qemu(QTestState *s)
}
}
+static void kill_qemu_hook_func(void *s)
+{
+ kill_qemu(s);
+}
+
static void sigabrt_handler(int signo)
{
g_hook_list_invoke(&abrt_hooks, FALSE);
@@ -133,7 +138,7 @@ static void cleanup_sigabrt_handler(void)
sigaction(SIGABRT, &sigact_old, NULL);
}
-void qtest_add_abrt_handler(void (*fn), const void *data)
+void qtest_add_abrt_handler(GHookFunc fn, const void *data)
{
GHook *hook;
@@ -170,7 +175,7 @@ QTestState *qtest_init(const char *extra_args)
sock = init_socket(socket_path);
qmpsock = init_socket(qmp_socket_path);
- qtest_add_abrt_handler(kill_qemu, s);
+ qtest_add_abrt_handler(kill_qemu_hook_func, s);
s->qemu_pid = fork();
if (s->qemu_pid == 0) {
@@ -755,14 +760,15 @@ void qtest_memread(QTestState *s, uint64_t addr, void *data, size_t size)
g_strfreev(args);
}
-void qtest_add_func(const char *str, void (*fn))
+void qtest_add_func(const char *str, void (*fn)(void))
{
gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
g_test_add_func(path, fn);
g_free(path);
}
-void qtest_add_data_func(const char *str, const void *data, void (*fn))
+void qtest_add_data_func(const char *str, const void *data,
+ void (*fn)(const void *))
{
gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str);
g_test_add_data_func(path, data, fn);
diff --git a/tests/libqtest.h b/tests/libqtest.h
index df08745..ebdd5bb 100644
--- a/tests/libqtest.h
+++ b/tests/libqtest.h
@@ -416,7 +416,7 @@ const char *qtest_get_arch(void);
* The path is prefixed with the architecture under test, as
* returned by qtest_get_arch().
*/
-void qtest_add_func(const char *str, void (*fn));
+void qtest_add_func(const char *str, void (*fn)(void));
/**
* qtest_add_data_func:
@@ -428,7 +428,8 @@ void qtest_add_func(const char *str, void (*fn));
* The path is prefixed with the architecture under test, as
* returned by qtest_get_arch().
*/
-void qtest_add_data_func(const char *str, const void *data, void (*fn));
+void qtest_add_data_func(const char *str, const void *data,
+ void (*fn)(const void *));
/**
* qtest_add:
@@ -450,7 +451,7 @@ void qtest_add_data_func(const char *str, const void *data, void (*fn));
g_free(path); \
} while (0)
-void qtest_add_abrt_handler(void (*fn), const void *data);
+void qtest_add_abrt_handler(GHookFunc fn, const void *data);
/**
* qtest_start:
diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c
index 29de739..991fd85 100644
--- a/tests/vhost-user-test.c
+++ b/tests/vhost-user-test.c
@@ -173,8 +173,9 @@ static void wait_for_fds(TestServer *s)
g_mutex_unlock(&s->data_mutex);
}
-static void read_guest_mem(TestServer *s)
+static void read_guest_mem(const void *data)
{
+ TestServer *s = (void *)data;
uint32_t *guest_mem;
int i, j;
size_t size;
--
2.6.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PULL v2 4/4] qom-test: Fix qmp() leaks
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
` (2 preceding siblings ...)
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 3/4] tests: Use proper functions types instead of void (*fn) Andreas Färber
@ 2015-12-04 17:56 ` Andreas Färber
2015-12-07 11:04 ` [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2015-12-04 17:56 UTC (permalink / raw)
To: qemu-devel; +Cc: Marc-André Lureau, Markus Armbruster, Andreas Färber
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Before this patch ASAN reported:
SUMMARY: AddressSanitizer: 677165875 byte(s) leaked in 1272437 allocation(s)
After this patch:
SUMMARY: AddressSanitizer: 465 byte(s) leaked in 32 allocation(s)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <1448551895-871-1-git-send-email-marcandre.lureau@redhat.com>
[Straightforwardly rebased onto the previous patch]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
tests/qom-test.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/tests/qom-test.c b/tests/qom-test.c
index fde04e7..3e5e873 100644
--- a/tests/qom-test.c
+++ b/tests/qom-test.c
@@ -47,7 +47,7 @@ static bool is_blacklisted(const char *arch, const char *mach)
static void test_properties(const char *path, bool recurse)
{
char *child_path;
- QDict *response, *tuple;
+ QDict *response, *tuple, *tmp;
QList *list;
QListEntry *entry;
@@ -57,6 +57,7 @@ static void test_properties(const char *path, bool recurse)
g_assert(response);
if (!recurse) {
+ QDECREF(response);
return;
}
@@ -75,14 +76,16 @@ static void test_properties(const char *path, bool recurse)
} else {
const char *prop = qdict_get_str(tuple, "name");
g_test_message("Testing property %s.%s", path, prop);
- response = qmp("{ 'execute': 'qom-get',"
- " 'arguments': { 'path': %s,"
- " 'property': %s } }",
- path, prop);
+ tmp = qmp("{ 'execute': 'qom-get',"
+ " 'arguments': { 'path': %s,"
+ " 'property': %s } }",
+ path, prop);
/* qom-get may fail but should not, e.g., segfault. */
- g_assert(response);
+ g_assert(tmp);
+ QDECREF(tmp);
}
}
+ QDECREF(response);
}
static void test_machine(gconstpointer data)
@@ -98,9 +101,11 @@ static void test_machine(gconstpointer data)
response = qmp("{ 'execute': 'quit' }");
g_assert(qdict_haskey(response, "return"));
+ QDECREF(response);
qtest_end();
g_free(args);
+ g_free((void *)machine);
}
static void add_machine_test_cases(void)
@@ -129,10 +134,12 @@ static void add_machine_test_cases(void)
mname = qstring_get_str(qstr);
if (!is_blacklisted(arch, mname)) {
path = g_strdup_printf("qom/%s", mname);
- qtest_add_data_func(path, mname, test_machine);
+ qtest_add_data_func(path, g_strdup(mname), test_machine);
}
}
+
qtest_end();
+ QDECREF(response);
}
int main(int argc, char **argv)
--
2.6.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
` (3 preceding siblings ...)
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 4/4] qom-test: Fix qmp() leaks Andreas Färber
@ 2015-12-07 11:04 ` Peter Maydell
4 siblings, 0 replies; 6+ messages in thread
From: Peter Maydell @ 2015-12-07 11:04 UTC (permalink / raw)
To: Andreas Färber
Cc: Marc-André Lureau, QEMU Developers, Markus Armbruster
On 4 December 2015 at 17:56, Andreas Färber <afaerber@suse.de> wrote:
> Hello Peter,
>
> This is my QOM (devices) patch queue for 2.5. Please pull.
>
> v2 squashes a fix by Markus.
>
> Regards,
> Andreas
>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Markus Armbruster <armbru@redhat.com>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> The following changes since commit 4c65fed8bdf96780735dbdb92a8bd0d6b6526cc3:
>
> ui: vnc: avoid floating point exception (2015-12-03 13:34:50 +0000)
>
> are available in the git repository at:
>
> git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-peter
>
> for you to fetch changes up to 0d2cd785ef1282b14687f9f7f4b63ae4a2430be3:
>
> qom-test: Fix qmp() leaks (2015-12-04 18:29:31 +0100)
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-12-07 11:04 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-04 17:56 [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 1/4] tests: Fix check-report-qtest-% target Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 2/4] qom: Update documentation comment of struct Object Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 3/4] tests: Use proper functions types instead of void (*fn) Andreas Färber
2015-12-04 17:56 ` [Qemu-devel] [PULL v2 4/4] qom-test: Fix qmp() leaks Andreas Färber
2015-12-07 11:04 ` [Qemu-devel] [PULL for-2.5 v2 0/4] QOM devices patch queue 2015-12-04 Peter Maydell
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.