aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-10-20 09:04:20 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-10-20 09:04:20 +0100
commitf52dd72dc1a679529e13e51a7b57e787455f92f0 (patch)
treee31523f403f063da2978028d4636d5df12bfc56f /include
parent26c7be842637ee65a79cd77f96a99c23ddcd90ad (diff)
parente853ea1cc68716c3d9c22d04578020c6dd743306 (diff)
downloadqemu-f52dd72dc1a679529e13e51a7b57e787455f92f0.zip
qemu-f52dd72dc1a679529e13e51a7b57e787455f92f0.tar.gz
qemu-f52dd72dc1a679529e13e51a7b57e787455f92f0.tar.bz2
Merge remote-tracking branch 'remotes/mdroth/tags/qga-pull-2015-10-14-v4-tag' into staging
qemu-ga patch queue * add unit tests for qemu-ga * add guest-exec support for posix/w32 guests * added 'qemu-ga' target for w32. this allows us to do full MSI build, without overloading 'qemu-ga.exe' target with uneeded dependencies. * number of s/g_new/g_malloc/ conversions for qga v2: * commit message and qapi documentation spelling fixes * rename 'inp-data' guest-exec param to 'input-data' v3: * fix OSX build errors for test-qga by using PRId64 format in place of glib's, and dropping use of G_SPAWN_DEFAULT macro for glib 2.22 compat * fix win32 build warnings for 32-bit builds by avoid int casts of process HANDLEs v4: * assert connect_qga() doesn't fail * only enable test-qga for linux hosts * allow get-memory-block-info* to fail if memory blocks aren't exposed in sysfs # gpg: Signature made Tue 20 Oct 2015 00:33:43 BST using RSA key ID F108B584 # gpg: Good signature from "Michael Roth <flukshun@gmail.com>" # gpg: aka "Michael Roth <mdroth@utexas.edu>" # gpg: aka "Michael Roth <mdroth@linux.vnet.ibm.com>" * remotes/mdroth/tags/qga-pull-2015-10-14-v4-tag: qga: fix uninitialized value warning for win32 qga: guest-exec simple stdin/stdout/stderr redirection qga: handle G_IO_STATUS_AGAIN in ga_channel_write_all() qga: handle possible SIGPIPE in guest-file-write qga: guest exec functionality qga: drop guest_file_init helper and replace it with static initializers tests: add a local test for guest agent qga: guest-get-memory-blocks shouldn't fail for unexposed memory blocks glib-compat: add 2.38/2.40/2.46 asserts qtest: add a few fd-level qmp helpers qga: do not override configuration verbosity qga: add QGA_CONF environment variable qga: Use g_new() & friends where that makes obvious sense build: qemu-ga: add 'qemu-ga' build target for w32 Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include')
-rw-r--r--include/glib-compat.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/include/glib-compat.h b/include/glib-compat.h
index 318e000..fb25f43 100644
--- a/include/glib-compat.h
+++ b/include/glib-compat.h
@@ -165,4 +165,65 @@ static inline GThread *g_thread_new(const char *name,
#define CompatGCond GCond
#endif /* glib 2.31 */
+#ifndef g_assert_true
+#define g_assert_true(expr) \
+ do { \
+ if (G_LIKELY(expr)) { \
+ } else { \
+ g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "'" #expr "' should be TRUE"); \
+ } \
+ } while (0)
+#endif
+
+#ifndef g_assert_false
+#define g_assert_false(expr) \
+ do { \
+ if (G_LIKELY(!(expr))) { \
+ } else { \
+ g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "'" #expr "' should be FALSE"); \
+ } \
+ } while (0)
+#endif
+
+#ifndef g_assert_null
+#define g_assert_null(expr) \
+ do { \
+ if (G_LIKELY((expr) == NULL)) { \
+ } else { \
+ g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "'" #expr "' should be NULL"); \
+ } \
+ } while (0)
+#endif
+
+#ifndef g_assert_nonnull
+#define g_assert_nonnull(expr) \
+ do { \
+ if (G_LIKELY((expr) != NULL)) { \
+ } else { \
+ g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "'" #expr "' should not be NULL"); \
+ } \
+ } while (0)
+#endif
+
+#ifndef g_assert_cmpmem
+#define g_assert_cmpmem(m1, l1, m2, l2) \
+ do { \
+ gconstpointer __m1 = m1, __m2 = m2; \
+ int __l1 = l1, __l2 = l2; \
+ if (__l1 != __l2) { \
+ g_assertion_message_cmpnum( \
+ G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", __l1, "==", \
+ __l2, 'i'); \
+ } else if (memcmp(__m1, __m2, __l1) != 0) { \
+ g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
+ "assertion failed (" #m1 " == " #m2 ")"); \
+ } \
+ } while (0)
+#endif
+
#endif