aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fs/Makefile.am11
-rw-r--r--src/fs/fs.conf.in4
-rw-r--r--src/fs/fs_test_lib_data.conf2
-rw-r--r--src/fs/gnunet-service-fs.c17
-rw-r--r--src/fs/perf_gnunet_service_fs_p2p.c42
-rw-r--r--src/fs/test_gnunet_service_fs_migration.c35
-rw-r--r--src/fs/test_gnunet_service_fs_p2p.c61
-rw-r--r--src/fs/test_gnunet_service_fs_p2p_stream.conf15
8 files changed, 87 insertions, 100 deletions
diff --git a/src/fs/Makefile.am b/src/fs/Makefile.am
index 2164f9c6cf..2ccb55e499 100644
--- a/src/fs/Makefile.am
+++ b/src/fs/Makefile.am
@@ -235,6 +235,7 @@ check_PROGRAMS = \
test_fs_uri \
test_gnunet_service_fs_migration \
test_gnunet_service_fs_p2p \
+ test_gnunet_service_fs_p2p_stream \
$(FS_BENCHMARKS)
test_plugin_block_fs_SOURCES = \
@@ -279,6 +280,7 @@ TESTS = \
test_fs_test_lib \
test_gnunet_service_fs_migration \
test_gnunet_service_fs_p2p \
+ test_gnunet_service_fs_p2p_stream \
perf_gnunet_service_fs_p2p \
perf_gnunet_service_fs_p2p_index \
perf_gnunet_service_fs_p2p_respect \
@@ -433,6 +435,14 @@ test_gnunet_service_fs_p2p_LDADD = \
$(top_builddir)/src/fs/libgnunetfs.la \
$(top_builddir)/src/util/libgnunetutil.la
+test_gnunet_service_fs_p2p_stream_SOURCES = \
+ test_gnunet_service_fs_p2p.c
+test_gnunet_service_fs_p2p_stream_LDADD = \
+ $(top_builddir)/src/fs/libgnunetfstest.a \
+ $(top_builddir)/src/testbed/libgnunettestbed.la \
+ $(top_builddir)/src/fs/libgnunetfs.la \
+ $(top_builddir)/src/util/libgnunetutil.la
+
test_gnunet_service_fs_migration_SOURCES = \
test_gnunet_service_fs_migration.c
test_gnunet_service_fs_migration_LDADD = \
@@ -513,6 +523,7 @@ EXTRA_DIST = \
test_fs_unindex_data.conf \
test_fs_uri_data.conf \
test_gnunet_service_fs_migration_data.conf \
+ test_gnunet_service_fs_p2p_stream.conf \
test_gnunet_fs_idx_data.conf \
test_gnunet_fs_ns_data.conf \
test_gnunet_fs_psd_data.conf \
diff --git a/src/fs/fs.conf.in b/src/fs/fs.conf.in
index e134659b09..ceb0a9ea20 100644
--- a/src/fs/fs.conf.in
+++ b/src/fs/fs.conf.in
@@ -50,6 +50,10 @@ EXPECTED_NEIGHBOUR_COUNT = 128
# Enable monkey?
# PREFIX = @MONKEYPREFIX@
+# Disable anonymous file-sharing (but keep non-anonymous transfers)?
+# This option is mostly for testing.
+DISABLE_ANON_TRANSFER = NO
+
[gnunet-auto-share]
BINARY = gnunet-auto-share
diff --git a/src/fs/fs_test_lib_data.conf b/src/fs/fs_test_lib_data.conf
index e6c2abd3a7..c846068a78 100644
--- a/src/fs/fs_test_lib_data.conf
+++ b/src/fs/fs_test_lib_data.conf
@@ -9,3 +9,5 @@ WAN_QUOTA_OUT = 3932160
[datastore]
QUOTA = 2 GB
+[testbed]
+OVERLAY_TOPOLOGY = CLIQUE
diff --git a/src/fs/gnunet-service-fs.c b/src/fs/gnunet-service-fs.c
index 125a14118d..37f020806e 100644
--- a/src/fs/gnunet-service-fs.c
+++ b/src/fs/gnunet-service-fs.c
@@ -562,6 +562,9 @@ static int
main_init (struct GNUNET_SERVER_Handle *server,
const struct GNUNET_CONFIGURATION_Handle *c)
{
+ static const struct GNUNET_CORE_MessageHandler no_p2p_handlers[] = {
+ {NULL, 0, 0}
+ };
static const struct GNUNET_CORE_MessageHandler p2p_handlers[] = {
{&handle_p2p_get,
GNUNET_MESSAGE_TYPE_FS_GET, 0},
@@ -584,11 +587,21 @@ main_init (struct GNUNET_SERVER_Handle *server,
0},
{NULL, NULL, 0, 0}
};
-
+ int anon_p2p_off;
+
+ /* this option is really only for testcases that need to disable
+ _anonymous_ file-sharing for some reason */
+ anon_p2p_off = (GNUNET_YES ==
+ GNUNET_CONFIGURATION_get_value_yesno (GSF_cfg,
+ "fs",
+ "DISABLE_ANON_TRANSFER"));
GSF_core =
GNUNET_CORE_connect (GSF_cfg, NULL, &peer_init_handler,
&peer_connect_handler, &GSF_peer_disconnect_handler_,
- NULL, GNUNET_NO, NULL, GNUNET_NO, p2p_handlers);
+ NULL, GNUNET_NO, NULL, GNUNET_NO,
+ (GNUNET_YES == anon_p2p_off)
+ ? no_p2p_handlers
+ : p2p_handlers);
if (NULL == GSF_core)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
diff --git a/src/fs/perf_gnunet_service_fs_p2p.c b/src/fs/perf_gnunet_service_fs_p2p.c
index 9844006e50..dadeaba6ff 100644
--- a/src/fs/perf_gnunet_service_fs_p2p.c
+++ b/src/fs/perf_gnunet_service_fs_p2p.c
@@ -294,21 +294,17 @@ do_download (void *cls, const struct GNUNET_FS_Uri *uri)
static void
-do_publish (void *cls,
- struct GNUNET_TESTBED_Operation *op,
- const char *emsg)
+do_publish (void *cls,
+ unsigned int num_peers,
+ struct GNUNET_TESTBED_Peer **peers)
{
+ unsigned int i;
int do_index;
int anonymity;
-
- GNUNET_TESTBED_operation_done (op);
- if (NULL != emsg)
- {
- GNUNET_SCHEDULER_shutdown ();
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Error trying to connect: %s\n", emsg);
- ok = 1;
- return;
- }
+
+ GNUNET_assert (NUM_DAEMONS == num_peers);
+ for (i=0;i<num_peers;i++)
+ daemons[i] = peers[i];
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n",
(unsigned long long) FILESIZE);
if (NULL != strstr (progname, "index"))
@@ -319,32 +315,12 @@ do_publish (void *cls,
anonymity = 0;
else
anonymity = 1;
-
GNUNET_FS_TEST_publish (daemons[NUM_DAEMONS - 1], TIMEOUT, anonymity,
do_index, FILESIZE, SEED, VERBOSE, &do_download,
NULL);
}
-static void
-do_connect (void *cls,
- unsigned int num_peers,
- struct GNUNET_TESTBED_Peer **peers)
-{
- unsigned int i;
-
- GNUNET_assert (NUM_DAEMONS == num_peers);
- for (i=0;i<num_peers;i++)
- daemons[i] = peers[i];
- GNUNET_TESTBED_overlay_connect (NULL,
- &do_publish,
- NULL,
- peers[0],
- peers[1]);
- // FIXME: was supposed to connect in line...
-}
-
-
int
main (int argc, char *argv[])
{
@@ -353,7 +329,7 @@ main (int argc, char *argv[])
"perf_gnunet_service_fs_p2p.conf",
NUM_DAEMONS,
0, NULL, NULL,
- &do_connect, NULL);
+ &do_publish, NULL);
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
return ok;
}
diff --git a/src/fs/test_gnunet_service_fs_migration.c b/src/fs/test_gnunet_service_fs_migration.c
index 550c79c4bc..5165934f07 100644
--- a/src/fs/test_gnunet_service_fs_migration.c
+++ b/src/fs/test_gnunet_service_fs_migration.c
@@ -142,30 +142,6 @@ do_wait (void *cls, const struct GNUNET_FS_Uri *uri)
static void
do_publish (void *cls,
- struct GNUNET_TESTBED_Operation *oparg,
- const char *emsg)
-{
- GNUNET_assert (op == oparg);
- GNUNET_TESTBED_operation_done (op);
- op = NULL;
- if (NULL != emsg)
- {
- GNUNET_SCHEDULER_shutdown ();
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Error connecting peers: %s\n",
- emsg);
- ok = 1;
- return;
- }
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n",
- (unsigned long long) FILESIZE);
- GNUNET_FS_TEST_publish (daemons[1], TIMEOUT, 1, GNUNET_NO, FILESIZE, SEED,
- VERBOSE, &do_wait, NULL);
-}
-
-
-static void
-do_connect (void *cls,
unsigned int num_peers,
struct GNUNET_TESTBED_Peer **peers)
{
@@ -174,11 +150,10 @@ do_connect (void *cls,
GNUNET_assert (2 == num_peers);
for (i=0;i<num_peers;i++)
daemons[i] = peers[i];
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Daemons started, will now try to connect them\n");
- op = GNUNET_TESTBED_overlay_connect (NULL,
- &do_publish, NULL,
- daemons[0], daemons[1]);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n",
+ (unsigned long long) FILESIZE);
+ GNUNET_FS_TEST_publish (daemons[1], TIMEOUT, 1, GNUNET_NO, FILESIZE, SEED,
+ VERBOSE, &do_wait, NULL);
}
@@ -189,7 +164,7 @@ main (int argc, char *argv[])
"fs_test_lib_data.conf",
2,
0, NULL, NULL,
- &do_connect,
+ &do_publish,
NULL);
GNUNET_DISK_directory_remove ("/tmp/test-gnunet-service-fs-migration/");
return ok;
diff --git a/src/fs/test_gnunet_service_fs_p2p.c b/src/fs/test_gnunet_service_fs_p2p.c
index 218f16b014..34326fa708 100644
--- a/src/fs/test_gnunet_service_fs_p2p.c
+++ b/src/fs/test_gnunet_service_fs_p2p.c
@@ -42,14 +42,16 @@
#define SEED 42
+static const char *progname;
+
+static unsigned int anonymity_level;
+
static struct GNUNET_TESTBED_Peer *daemons[NUM_DAEMONS];
static int ok;
static struct GNUNET_TIME_Absolute start_time;
-static struct GNUNET_TESTBED_Operation *op;
-
static void
do_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
@@ -94,62 +96,51 @@ do_download (void *cls, const struct GNUNET_FS_Uri *uri)
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Downloading %llu bytes\n",
(unsigned long long) FILESIZE);
start_time = GNUNET_TIME_absolute_get ();
- GNUNET_FS_TEST_download (daemons[0], TIMEOUT, 1, SEED, uri, VERBOSE, &do_stop,
+ GNUNET_FS_TEST_download (daemons[0], TIMEOUT,
+ anonymity_level, SEED, uri,
+ VERBOSE, &do_stop,
NULL);
}
static void
do_publish (void *cls,
- struct GNUNET_TESTBED_Operation *opret,
- const char *emsg)
-{
- GNUNET_assert (op == opret);
- GNUNET_TESTBED_operation_done (op);
- op = NULL;
-
- if (NULL != emsg)
- {
- GNUNET_SCHEDULER_shutdown ();
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
- "Timeout during connect attempt, shutting down with error: %s\n",
- emsg);
- ok = 1;
- return;
- }
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n",
- (unsigned long long) FILESIZE);
- GNUNET_FS_TEST_publish (daemons[1], TIMEOUT, 1, GNUNET_NO, FILESIZE, SEED,
- VERBOSE, &do_download, NULL);
-}
-
-
-static void
-do_connect (void *cls,
unsigned int num_peers,
struct GNUNET_TESTBED_Peer **peers)
{
unsigned int i;
+ if (NULL != strstr (progname, "stream"))
+ anonymity_level = 0;
+ else
+ anonymity_level = 1;
GNUNET_assert (NUM_DAEMONS == num_peers);
for (i=0;i<num_peers;i++)
daemons[i] = peers[i];
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Daemons started, will now try to connect them\n");
- op = GNUNET_TESTBED_overlay_connect (NULL,
- &do_publish, NULL,
- daemons[0], daemons[1]);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n",
+ (unsigned long long) FILESIZE);
+ GNUNET_FS_TEST_publish (daemons[1], TIMEOUT,
+ anonymity_level, GNUNET_NO,
+ FILESIZE, SEED,
+ VERBOSE, &do_download, NULL);
}
int
main (int argc, char *argv[])
{
+ const char *config;
+
+ progname = argv[0];
+ if (NULL != strstr (progname, "stream"))
+ config = "test_gnunet_service_fs_p2p_stream.conf";
+ else
+ config = "fs_test_lib_data.conf";
GNUNET_TESTBED_test_run ("test-gnunet-service-fs-p2p",
- "fs_test_lib_data.conf",
+ config,
NUM_DAEMONS,
0, NULL, NULL,
- &do_connect, NULL);
+ &do_publish, NULL);
GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-lib/");
return ok;
}
diff --git a/src/fs/test_gnunet_service_fs_p2p_stream.conf b/src/fs/test_gnunet_service_fs_p2p_stream.conf
new file mode 100644
index 0000000000..607367a866
--- /dev/null
+++ b/src/fs/test_gnunet_service_fs_p2p_stream.conf
@@ -0,0 +1,15 @@
+@INLINE@ test_fs_defaults.conf
+[PATHS]
+SERVICEHOME = /tmp/test-gnunet-test-fs-lib/
+
+
+[ats]
+WAN_QUOTA_IN = 3932160
+WAN_QUOTA_OUT = 3932160
+
+[fs]
+# FIXME: this option needs to be set for the
+# testcase to truly work; however, as the code
+# is not finished, not setting the option should
+# allow the test to at least pass for now...
+# DISABLE_ANON_TRANSFER = YES