projects
/
oweals
/
gnunet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix #4545: create directory for log file if it does not exist
[oweals/gnunet.git]
/
src
/
util
/
test_scheduler_delay.c
diff --git
a/src/util/test_scheduler_delay.c
b/src/util/test_scheduler_delay.c
index 9cbf7d90f36eb2abf613fdb45c776d6367c7b3f3..93568cd81b3b6e79f833ca0b5f1cfca0e7d15f39 100644
(file)
--- a/
src/util/test_scheduler_delay.c
+++ b/
src/util/test_scheduler_delay.c
@@
-1,6
+1,6
@@
/*
This file is part of GNUnet.
/*
This file is part of GNUnet.
- (C) 2001, 2002, 2003, 2004, 2006 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2001-2013 GNUnet e.V.
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
@@
-14,21
+14,17
@@
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
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., 5
9 Temple Place - Suite 330
,
- Boston, MA 0211
1-1307
, USA.
+ Free Software Foundation, Inc., 5
1 Franklin Street, Fifth Floor
,
+ Boston, MA 0211
0-1301
, USA.
*/
/**
* @file util/test_scheduler_delay.c
* @brief testcase for delay of scheduler, measures how
*/
/**
* @file util/test_scheduler_delay.c
* @brief testcase for delay of scheduler, measures how
- * precise the timers are. Expect values between
10 and 20
ms on
+ * precise the timers are. Expect values between
0.2 and 2
ms on
* modern machines.
*/
#include "platform.h"
* modern machines.
*/
#include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_scheduler_lib.h"
-#include "gnunet_time_lib.h"
-
-#define VERBOSE GNUNET_EXTRA_LOGGING
+#include "gnunet_util_lib.h"
static struct GNUNET_TIME_Absolute target;
static struct GNUNET_TIME_Absolute target;
@@
-38,27
+34,27
@@
static unsigned long long cumDelta;
#define INCR 47
#define INCR 47
-#define MAXV 1500
+#define MAXV 5000
+
/**
* Signature of the main function of a task.
*
* @param cls closure
/**
* Signature of the main function of a task.
*
* @param cls closure
- * @param tc context
*/
static void
*/
static void
-test_task (void *cls
, const struct GNUNET_SCHEDULER_TaskContext *tc
)
+test_task (void *cls)
{
struct GNUNET_TIME_Absolute now;
now = GNUNET_TIME_absolute_get ();
{
struct GNUNET_TIME_Absolute now;
now = GNUNET_TIME_absolute_get ();
- if (now.abs_value
> target.abs_value
)
- cumDelta += (now.abs_value
- target.abs_value
);
+ if (now.abs_value
_us > target.abs_value_us
)
+ cumDelta += (now.abs_value
_us - target.abs_value_us
);
else
else
- cumDelta += (target.abs_value
- now.abs_value
);
+ cumDelta += (target.abs_value
_us - now.abs_value_us
);
target =
GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply
target =
GNUNET_TIME_relative_to_absolute (GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_MI
LLI
SECONDS, i));
+ (GNUNET_TIME_UNIT_MI
CRO
SECONDS, i));
FPRINTF (stderr, "%s", ".");
if (i > MAXV)
{
FPRINTF (stderr, "%s", ".");
if (i > MAXV)
{
@@
-66,38
+62,33
@@
test_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
return;
}
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
return;
}
GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
- (GNUNET_TIME_UNIT_MILLISECONDS, i), &test_task,
+ (GNUNET_TIME_UNIT_MICROSECONDS, i),
+ &test_task,
NULL);
i += INCR;
}
NULL);
i += INCR;
}
-static int
-check ()
+
+int
+main (int argc, char *argv[])
{
{
+ GNUNET_log_setup ("test-scheduler-delay",
+ "WARNING",
+ NULL);
target = GNUNET_TIME_absolute_get ();
GNUNET_SCHEDULER_run (&test_task, NULL);
target = GNUNET_TIME_absolute_get ();
GNUNET_SCHEDULER_run (&test_task, NULL);
- FPRINTF (stdout, "Sleep precision: %llu ms. ",
- cumDelta / 1000 / (MAXV / INCR));
- if (cumDelta <= 10 * MAXV / INCR)
+ FPRINTF (stdout,
+ "Sleep precision: %llu microseconds (average delta). ",
+ cumDelta / (MAXV / INCR));
+ if (cumDelta <= 500 * MAXV / INCR)
FPRINTF (stdout, "%s", "Timer precision is excellent.\n");
FPRINTF (stdout, "%s", "Timer precision is excellent.\n");
- else if (cumDelta <= 50
* MAXV / INCR) /* 50
ms average deviation */
+ else if (cumDelta <= 50
00 * MAXV / INCR) /* 5
ms average deviation */
FPRINTF (stdout, "%s", "Timer precision is good.\n");
FPRINTF (stdout, "%s", "Timer precision is good.\n");
- else if (cumDelta > 250 * MAXV / INCR)
+ else if (cumDelta > 250
00
* MAXV / INCR)
FPRINTF (stdout, "%s", "Timer precision is awful.\n");
else
FPRINTF (stdout, "%s", "Timer precision is acceptable.\n");
return 0;
}
FPRINTF (stdout, "%s", "Timer precision is awful.\n");
else
FPRINTF (stdout, "%s", "Timer precision is acceptable.\n");
return 0;
}
-int
-main (int argc, char *argv[])
-{
- int ret;
-
- GNUNET_log_setup ("test-scheduler-delay", "WARNING", NULL);
- ret = check ();
-
- return ret;
-}
-
/* end of test_scheduler_delay.c */
/* end of test_scheduler_delay.c */