[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r26985 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r26985 - gnunet/src/testbed |
Date: |
Wed, 24 Apr 2013 14:40:19 +0200 |
Author: harsha
Date: 2013-04-24 14:40:19 +0200 (Wed, 24 Apr 2013)
New Revision: 26985
Modified:
gnunet/src/testbed/test_testbed_logger_api.c
Log:
- test harder by checking the data file size
Modified: gnunet/src/testbed/test_testbed_logger_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_logger_api.c 2013-04-24 12:20:58 UTC
(rev 26984)
+++ gnunet/src/testbed/test_testbed_logger_api.c 2013-04-24 12:40:19 UTC
(rev 26985)
@@ -44,8 +44,12 @@
/**
* Opaque handle for the logging service
*/
-struct GNUNET_TESTBED_LOGGER_Handle *h;
+static struct GNUNET_TESTBED_LOGGER_Handle *h;
+static struct GNUNET_TESTING_Peer *peer;
+
+static char *search_dir;
+
/**
* Abort task identifier
*/
@@ -85,6 +89,7 @@
{
CANCEL_TASK (abort_task);
CANCEL_TASK (write_task);
+ GNUNET_free_non_null (search_dir);
GNUNET_SCHEDULER_shutdown ();
}
@@ -100,7 +105,53 @@
#define BSIZE 1024
+
/**
+ * Function called to iterate over a directory.
+ *
+ * @param cls closure
+ * @param di argument to pass to "GNUNET_DISK_directory_iterator_next" to
+ * get called on the next entry (or finish cleanly);
+ * NULL on error (will be the last call in that case)
+ * @param filename complete filename (absolute path)
+ * @param dirname directory name (absolute path)
+ */
+static void
+iterator_cb (void *cls, struct GNUNET_DISK_DirectoryIterator *di,
+ const char *filename, const char *dirname)
+{
+ const char *fn;
+ size_t len;
+ uint64_t fs;
+ int cancel;
+
+ cancel = GNUNET_NO;
+ if (NULL == filename)
+ goto iteration_cont;
+ len = strlen (filename);
+ if (len < 5) /* log file: `pid'.dat */
+ goto iteration_cont;
+ fn = filename + len;
+ if (0 != strcasecmp (".dat", fn - 4))
+ goto iteration_cont;
+ if (GNUNET_OK != GNUNET_DISK_file_size (filename, &fs,
+ GNUNET_NO, GNUNET_YES))
+ goto iteration_cont;
+ if ((BSIZE * 2) != fs) /* The file size should be equal to what we
+ have written */
+ goto iteration_cont;
+
+ cancel = GNUNET_YES;
+ result = GNUNET_OK;
+
+ iteration_cont:
+ if ( (NULL != di) &&
+ (GNUNET_YES != GNUNET_DISK_directory_iterator_next (di, cancel)) )
+ return;
+ shutdown_now ();
+}
+
+/**
* Functions of this type are called to notify a successful transmission of the
* message to the logger service
*
@@ -112,6 +163,10 @@
{
FAIL_TEST (&write_task == cls, return);
FAIL_TEST ((BSIZE * 2) == size, return);
+ FAIL_TEST (GNUNET_OK == GNUNET_TESTING_peer_stop (peer), return);
+ FAIL_TEST (GNUNET_YES == GNUNET_DISK_directory_iterator_start
+ (GNUNET_SCHEDULER_PRIORITY_DEFAULT, search_dir,
+ &iterator_cb, NULL), return);
result = GNUNET_OK;
shutdown_now ();
}
@@ -144,9 +199,13 @@
*/
static void
test_main (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg,
- struct GNUNET_TESTING_Peer *peer)
+ struct GNUNET_TESTING_Peer *p)
{
FAIL_TEST (NULL != (h = GNUNET_TESTBED_LOGGER_connect (cfg)), return);
+ FAIL_TEST (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string
+ (cfg, "testbed-logger", "dir", &search_dir), return);
+ search_dir = GNUNET_CONFIGURATION_expand_dollar (cfg, search_dir);
+ peer = p;
write_task = GNUNET_SCHEDULER_add_now (&do_write, NULL);
abort_task = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECS (10),
&do_abort, NULL);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r26985 - gnunet/src/testbed,
gnunet <=