[glib] gio: Add a count to the resolver test for number of enumerators
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] gio: Add a count to the resolver test for number of enumerators
- Date: Tue, 7 Dec 2010 18:39:48 +0000 (UTC)
commit ca38bddd6e5dc18db8fd8695d88c4de5183c7fe9
Author: Benjamin Otte <otte redhat com>
Date: Tue Dec 7 17:55:03 2010 +0100
gio: Add a count to the resolver test for number of enumerators
This adds the nice stress-test feature of having 5 enumerators running
at the same time. Yay!
gio/tests/resolver.c | 40 ++++++++++++++++++++++++++--------------
1 files changed, 26 insertions(+), 14 deletions(-)
---
diff --git a/gio/tests/resolver.c b/gio/tests/resolver.c
index 64bc67e..0b2a3fd 100644
--- a/gio/tests/resolver.c
+++ b/gio/tests/resolver.c
@@ -41,11 +41,12 @@ static void G_GNUC_NORETURN
usage (void)
{
fprintf (stderr, "Usage: resolver [-t] [-s] [hostname | IP | service/protocol/domain ] ...\n");
- fprintf (stderr, " resolver [-t] [-s] -c [hostname | IP | service/protocol/domain ]\n");
+ fprintf (stderr, " resolver [-t] [-s] -c NUMBER [hostname | IP | service/protocol/domain ]\n");
fprintf (stderr, " Use -t to enable threading.\n");
fprintf (stderr, " Use -s to do synchronous lookups.\n");
fprintf (stderr, " Both together will result in simultaneous lookups in multiple threads\n");
- fprintf (stderr, " Use -c (and only a single resolvable argument) to test GSocketConnectable.\n");
+ fprintf (stderr, " Use -c NUMBER(and only a single resolvable argument) to test GSocketConnectable.\n");
+ fprintf (stderr, " The given NUMBER determines how often the connectable will be enumerated.\n");
exit (1);
}
@@ -360,7 +361,7 @@ do_async_connectable (GSocketAddressEnumerator *enumerator)
}
static void
-do_connectable (const char *arg, gboolean synchronous)
+do_connectable (const char *arg, gboolean synchronous, guint count)
{
char **parts;
GSocketConnectable *connectable;
@@ -400,13 +401,17 @@ do_connectable (const char *arg, gboolean synchronous)
connectable = g_network_address_new (arg, port);
}
- enumerator = g_socket_connectable_enumerate (connectable);
- g_object_unref (connectable);
+ while (count--)
+ {
+ enumerator = g_socket_connectable_enumerate (connectable);
- if (synchronous)
- do_sync_connectable (enumerator);
- else
- do_async_connectable (enumerator);
+ if (synchronous)
+ do_sync_connectable (enumerator);
+ else
+ do_async_connectable (enumerator);
+ }
+
+ g_object_unref (connectable);
}
#ifdef G_OS_UNIX
@@ -434,7 +439,7 @@ int
main (int argc, char **argv)
{
gboolean threaded = FALSE, synchronous = FALSE;
- gboolean use_connectable = FALSE;
+ guint connectable_count = 0;
#ifdef G_OS_UNIX
GIOChannel *chan;
guint watch;
@@ -453,7 +458,11 @@ main (int argc, char **argv)
else if (!strcmp (argv[1], "-s"))
synchronous = TRUE;
else if (!strcmp (argv[1], "-c"))
- use_connectable = TRUE;
+ {
+ connectable_count = atoi (argv[2]);
+ argv++;
+ argc--;
+ }
else
usage ();
@@ -462,7 +471,7 @@ main (int argc, char **argv)
}
g_type_init ();
- if (argc < 2 || (argc > 2 && use_connectable))
+ if (argc < 2 || (argc > 2 && connectable_count))
usage ();
resolver = g_resolver_get_default ();
@@ -488,8 +497,11 @@ main (int argc, char **argv)
nlookups = argc - 1;
loop = g_main_loop_new (NULL, TRUE);
- if (use_connectable)
- do_connectable (argv[1], synchronous);
+ if (connectable_count)
+ {
+ nlookups = connectable_count;
+ do_connectable (argv[1], synchronous, connectable_count);
+ }
else
{
if (threaded && synchronous)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]