summaryrefslogtreecommitdiff
path: root/tests/xmlrpc-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/xmlrpc-test.c')
-rw-r--r--tests/xmlrpc-test.c48
1 files changed, 33 insertions, 15 deletions
diff --git a/tests/xmlrpc-test.c b/tests/xmlrpc-test.c
index 3a7b20ad..46eee266 100644
--- a/tests/xmlrpc-test.c
+++ b/tests/xmlrpc-test.c
@@ -5,8 +5,6 @@
#include "test-utils.h"
-#ifdef HAVE_PHP_XMLRPC
-
#ifdef G_GNUC_BEGIN_IGNORE_DEPRECATIONS
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
#endif
@@ -16,6 +14,18 @@ static const char *default_uri = "http://127.0.0.1:47524/xmlrpc-server.php";
static const char *uri = NULL;
static gboolean server_test = FALSE;
+#ifdef HAVE_PHP_XMLRPC
+#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER
+#else
+#define SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER \
+ G_STMT_START { \
+ if (!server_test) { \
+ g_test_skip ("php-xmlrpc is not available"); \
+ return; \
+ } \
+ } G_STMT_END
+#endif
+
static const char *const value_type[] = {
"BAD",
"int",
@@ -105,6 +115,8 @@ test_sum (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "sum (array of int -> int): ");
ints = g_value_array_new (10);
@@ -139,6 +151,8 @@ test_countBools (void)
gboolean val, ok;
GHashTable *result;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "countBools (array of boolean -> struct of ints): ");
bools = g_value_array_new (10);
@@ -182,6 +196,8 @@ test_md5sum (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "md5sum (base64 -> base64)\n");
data = g_byte_array_new ();
@@ -216,6 +232,8 @@ test_dateChange (void)
GValue retval;
gboolean ok;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "dateChange (date, struct of ints -> time)\n");
date = soup_date_new (1970 + (g_random_int_range (0, 50)),
@@ -323,6 +341,8 @@ test_echo (void)
GValue retval;
int i;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "echo (array of string -> array of string):\n");
originals = g_value_array_new (N_ECHO_STRINGS);
@@ -376,6 +396,8 @@ test_ping (gconstpointer include_params)
char *out;
gboolean ret;
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "ping (void (%s) -> string)\n",
include_params ? "empty <params>" : "no <params>");
@@ -443,6 +465,8 @@ do_bad_xmlrpc (const char *body)
static void
test_fault_malformed (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "malformed request: ");
do_bad_xmlrpc ("<methodCall/>");
@@ -451,6 +475,8 @@ test_fault_malformed (void)
static void
test_fault_method (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "request to non-existent method: ");
do_bad_xmlrpc ("<methodCall><methodName>no_such_method</methodName><params><param><value><int>1</int></value></param></params></methodCall>");
@@ -459,6 +485,8 @@ test_fault_method (void)
static void
test_fault_args (void)
{
+ SOUP_TEST_SKIP_IF_NO_XMLRPC_SERVER;
+
debug_printf (1, "request with invalid args: ");
do_bad_xmlrpc ("<methodCall><methodName>sum</methodName><params><param><value><int>1</int></value></param></params></methodCall>");
@@ -493,9 +521,9 @@ main (int argc, char **argv)
g_test_add_func ("/xmlrpc/echo", test_echo);
g_test_add_data_func ("/xmlrpc/ping/empty-params", GINT_TO_POINTER (TRUE), test_ping);
g_test_add_data_func ("/xmlrpc/ping/no-params", GINT_TO_POINTER (FALSE), test_ping);
- g_test_add_func ("/xmlrpc/fault_malformed", test_fault_malformed);
- g_test_add_func ("/xmlrpc/fault_method", test_fault_method);
- g_test_add_func ("/xmlrpc/fault_args", test_fault_args);
+ g_test_add_func ("/xmlrpc/fault/malformed", test_fault_malformed);
+ g_test_add_func ("/xmlrpc/fault/method", test_fault_method);
+ g_test_add_func ("/xmlrpc/fault/args", test_fault_args);
ret = g_test_run ();
@@ -504,13 +532,3 @@ main (int argc, char **argv)
test_cleanup ();
return ret;
}
-
-#else /* HAVE_PHP_XMLRPC */
-
-int
-main (int argc, char **argv)
-{
- return 77; /* SKIP */
-}
-
-#endif