From 7f892499d0af649861c9a4c06ffc778eba00635c Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 1 Jul 2010 07:50:28 +0000 Subject: new tst --- src/statistics/Makefile.am | 9 ++- src/statistics/test_statistics_api_loop.c | 130 ++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 src/statistics/test_statistics_api_loop.c diff --git a/src/statistics/Makefile.am b/src/statistics/Makefile.am index 4a924c5b5..0e2e4d727 100644 --- a/src/statistics/Makefile.am +++ b/src/statistics/Makefile.am @@ -42,7 +42,8 @@ gnunet_service_statistics_LDADD = \ check_PROGRAMS = \ - test_statistics_api + test_statistics_api \ + test_statistics_api_loop TESTS = $(check_PROGRAMS) $(check_SCRIPTS) @@ -52,6 +53,12 @@ test_statistics_api_LDADD = \ $(top_builddir)/src/statistics/libgnunetstatistics.la \ $(top_builddir)/src/util/libgnunetutil.la +test_statistics_api_loop_SOURCES = \ + test_statistics_api_loop.c +test_statistics_api_loop_LDADD = \ + $(top_builddir)/src/statistics/libgnunetstatistics.la \ + $(top_builddir)/src/util/libgnunetutil.la + check_SCRIPTS = \ test_gnunet_statistics.sh diff --git a/src/statistics/test_statistics_api_loop.c b/src/statistics/test_statistics_api_loop.c new file mode 100644 index 000000000..b70e92bdc --- /dev/null +++ b/src/statistics/test_statistics_api_loop.c @@ -0,0 +1,130 @@ +/* + This file is part of GNUnet. + (C) 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 2, 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 statistics/test_statistics_api_loop.c + * @brief testcase for statistics_api.c + */ +#include "platform.h" +#include "gnunet_common.h" +#include "gnunet_getopt_lib.h" +#include "gnunet_os_lib.h" +#include "gnunet_program_lib.h" +#include "gnunet_scheduler_lib.h" +#include "gnunet_statistics_service.h" + +#define VERBOSE GNUNET_NO + +#define START_SERVICE GNUNET_YES + +#define ROUNDS (1024 * 1024) + +static int +check_1 (void *cls, + const char *subsystem, + const char *name, uint64_t value, int is_persistent) +{ + GNUNET_assert (0 == strcmp (name, "test-0")); + GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api-loop")); + GNUNET_assert (is_persistent == GNUNET_NO); + return GNUNET_OK; +} + +static struct GNUNET_STATISTICS_Handle *h; + +static void +next (void *cls, int success) +{ + int *ok = cls; + + GNUNET_STATISTICS_destroy (h, GNUNET_NO); + GNUNET_assert (success == GNUNET_OK); + *ok = 0; +} + +static void +run (void *cls, + struct GNUNET_SCHEDULER_Handle *sched, + char *const *args, + const char *cfgfile, + const struct GNUNET_CONFIGURATION_Handle *cfg) +{ + int i; + char name[128]; + + h = GNUNET_STATISTICS_create (sched, "test-statistics-api-loop", cfg); + for (i=0;i