From dbb17853368c11b2a9a4a19c6e38f8ef02d2f258 Mon Sep 17 00:00:00 2001 From: Matthias Wachs Date: Wed, 28 Nov 2012 16:14:35 +0000 Subject: [PATCH] network test --- src/sysmon/Makefile.am | 17 +++- src/sysmon/test_glibtop_network.c | 89 +++++++++++++++++++ ...{test_glibtop.c => test_glibtop_process.c} | 16 +++- 3 files changed, 116 insertions(+), 6 deletions(-) create mode 100644 src/sysmon/test_glibtop_network.c rename src/sysmon/{test_glibtop.c => test_glibtop_process.c} (82%) diff --git a/src/sysmon/Makefile.am b/src/sysmon/Makefile.am index 4c4cb1a5b..0dc5383c3 100644 --- a/src/sysmon/Makefile.am +++ b/src/sysmon/Makefile.am @@ -19,7 +19,8 @@ libexec_PROGRAMS = \ gnunet_daemon_sysmon check_PROGRAMS = \ - test_glibtop + test_glibtop_process \ + test_glibtop_network gnunet_daemon_sysmon_SOURCES = \ gnunet-daemon-sysmon.c @@ -28,9 +29,17 @@ gnunet_daemon_sysmon_LDADD = \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(GN_LIBINTL) -test_glibtop_SOURCES = \ - test_glibtop.c -test_glibtop_LDADD = \ +test_glibtop_process_SOURCES = \ + test_glibtop_process.c +test_glibtop_process_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(top_builddir)/src/statistics/libgnunetstatistics.la \ + -lgtop-2.0 \ + $(GN_LIBINTL) + +test_glibtop_network_SOURCES = \ + test_glibtop_network.c +test_glibtop_network_LDADD = \ $(top_builddir)/src/util/libgnunetutil.la \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ -lgtop-2.0 \ diff --git a/src/sysmon/test_glibtop_network.c b/src/sysmon/test_glibtop_network.c new file mode 100644 index 000000000..e07b44d93 --- /dev/null +++ b/src/sysmon/test_glibtop_network.c @@ -0,0 +1,89 @@ +/* + This file is part of GNUnet. + (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 Christian Grothoff (and other contributing authors) + + GNUnet is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + GNUnet is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNUnet; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ + +/** + * @file sysmon/test_glibtop_process.c + * @brief a brief test for glibtop + * @author Matthias Wachs + */ + +#include "platform.h" + +#include +#include +#include +#include + +static int ret; + + +static void +print_netlist () +{ + glibtop_netlist netlist; + glibtop_netload netload; + int i; + char ** tmp; + uint8_t *address; + uint8_t *netmask; + + tmp = glibtop_get_netlist (&netlist); + + printf ("Network information: %u devices\n", netlist.number); + for (i = 0; i < netlist.number; ++i) + { + printf ("Device %i: %s\n", i, tmp[i]); + glibtop_get_netload (&netload, tmp[i]); + address = (uint8_t *) &netload.address; + netmask = (uint8_t *) &netload.subnet; + printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 subnet", netmask[0], netmask[1], netmask[2],netmask[3]); + printf ("\t%-50s: %u.%u.%u.%u\n", "IPv4 address", address[0], address[1], address[2],address[3]); + + printf ("\t%-50s: %lu\n", "packets in", netload.packets_in); + printf ("\t%-50s: %lu\n", "packets out", netload.packets_out); + printf ("\t%-50s: %lu\n", "packets total", netload.packets_total); + } +} + +/** + * The main function. + * + * @param argc number of arguments from the command line + * @param argv command line arguments + * @return 0 ok, 1 on error + */ +int +main (int argc, char *const *argv) +{ + if (NULL == glibtop_init()) + { + fprintf (stderr, "Could not init gliptop!\n"); + return 1; + } + + /* Network information */ + print_netlist (); + + glibtop_close(); + return ret; +} + +/* end of ttest_glibtop_process.c */ + diff --git a/src/sysmon/test_glibtop.c b/src/sysmon/test_glibtop_process.c similarity index 82% rename from src/sysmon/test_glibtop.c rename to src/sysmon/test_glibtop_process.c index b5deb8c53..30702b8a3 100644 --- a/src/sysmon/test_glibtop.c +++ b/src/sysmon/test_glibtop_process.c @@ -19,7 +19,7 @@ */ /** - * @file sysmon/test_glibtop.c + * @file sysmon/test_glibtop_process.c * @brief a brief test for glibtop * @author Matthias Wachs */ @@ -31,6 +31,7 @@ #include #include #include +#include #include static int ret; @@ -42,6 +43,7 @@ static void print_pids(guint64 which, guint64 arg) glibtop_proclist proc_list; glibtop_proc_args proc_args; glibtop_proc_mem proc_mem; + glibtop_proc_time proc_time; char *argss; /* get process list */ @@ -69,12 +71,21 @@ static void print_pids(guint64 which, guint64 arg) printf ("\targument string: %s\n", argss); g_free (argss); + /* get memory info */ glibtop_get_proc_mem (&proc_mem, pids[i]); + printf ("\tMemory information:\n"); printf ("\t%-50s: %lu\n", "total # of pages of memory", proc_mem.size); printf ("\t%-50s: %lu\n", "number of pages of virtual memory",proc_mem.vsize); printf ("\t%-50s: %lu\n", "number of resident set", proc_mem.resident); printf ("\t%-50s: %lu\n", "number of pages of shared (mmap'd) memory", proc_mem.share); printf ("\t%-50s: %lu\n", "resident set size", proc_mem.rss); + + /* get time info */ + glibtop_get_proc_time (&proc_time, pids[i]); + printf ("\tTime information:\n"); + printf ("\t%-50s: %lu\n", "real time accumulated by process", proc_time.rtime); + printf ("\t%-50s: %lu\n", "user-mode CPU time accumulated by process",proc_time.utime); + printf ("\t%-50s: %lu\n", "kernel-mode CPU time accumulated by process", proc_time.stime); } if (NULL != pids) @@ -84,6 +95,7 @@ static void print_pids(guint64 which, guint64 arg) } } + /** * The main function. * @@ -107,5 +119,5 @@ main (int argc, char *const *argv) return ret; } -/* end of test_glibtop.c */ +/* end of test_glibtop_process.c */ -- 2.25.1