From: Matthias Wachs Date: Wed, 28 Nov 2012 16:14:35 +0000 (+0000) Subject: network test X-Git-Tag: initial-import-from-subversion-38251~10688 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=dbb17853368c11b2a9a4a19c6e38f8ef02d2f258;p=oweals%2Fgnunet.git network test --- 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.c b/src/sysmon/test_glibtop.c deleted file mode 100644 index b5deb8c53..000000000 --- a/src/sysmon/test_glibtop.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - 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.c - * @brief a brief test for glibtop - * @author Matthias Wachs - */ - -#include "platform.h" - -#include -#include -#include -#include -#include -#include - -static int ret; - -static void print_pids(guint64 which, guint64 arg) -{ - pid_t *pids = NULL; - unsigned i; - glibtop_proclist proc_list; - glibtop_proc_args proc_args; - glibtop_proc_mem proc_mem; - char *argss; - - /* get process list */ - pids = glibtop_get_proclist(&proc_list, which, arg); - if (NULL == pids) - { - fprintf (stderr, "Could not retrieve process list!\n"); - ret = 1; - return; - } - - printf("Found %lu processes\n", (unsigned long) proc_list.number); - for (i = 0; i < proc_list.number; ++i) - { - printf("PID %u:\n", pids[i]); - - /* get process args */ - argss = glibtop_get_proc_args (&proc_args, pids[i], 1024); - if (NULL == argss) - { - fprintf (stderr, "Could not retrieve process args!\n"); - ret = 1; - return; - } - printf ("\targument string: %s\n", argss); - g_free (argss); - - glibtop_get_proc_mem (&proc_mem, pids[i]); - 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); - } - - if (NULL != pids) - { - g_free(pids); - pids = NULL; - } -} - -/** - * 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; - } - - /* Print all processes */ - print_pids(GLIBTOP_KERN_PROC_ALL, 0); - - glibtop_close(); - return ret; -} - -/* end of test_glibtop.c */ - 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_process.c b/src/sysmon/test_glibtop_process.c new file mode 100644 index 000000000..30702b8a3 --- /dev/null +++ b/src/sysmon/test_glibtop_process.c @@ -0,0 +1,123 @@ +/* + 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 +#include +#include +#include + +static int ret; + +static void print_pids(guint64 which, guint64 arg) +{ + pid_t *pids = NULL; + unsigned i; + glibtop_proclist proc_list; + glibtop_proc_args proc_args; + glibtop_proc_mem proc_mem; + glibtop_proc_time proc_time; + char *argss; + + /* get process list */ + pids = glibtop_get_proclist(&proc_list, which, arg); + if (NULL == pids) + { + fprintf (stderr, "Could not retrieve process list!\n"); + ret = 1; + return; + } + + printf("Found %lu processes\n", (unsigned long) proc_list.number); + for (i = 0; i < proc_list.number; ++i) + { + printf("PID %u:\n", pids[i]); + + /* get process args */ + argss = glibtop_get_proc_args (&proc_args, pids[i], 1024); + if (NULL == argss) + { + fprintf (stderr, "Could not retrieve process args!\n"); + ret = 1; + return; + } + 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) + { + g_free(pids); + pids = NULL; + } +} + + +/** + * 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; + } + + /* Print all processes */ + print_pids(GLIBTOP_KERN_PROC_ALL, 0); + + glibtop_close(); + return ret; +} + +/* end of test_glibtop_process.c */ +