additional tests
authorChristian Grothoff <christian@grothoff.org>
Mon, 5 Apr 2010 21:28:05 +0000 (21:28 +0000)
committerChristian Grothoff <christian@grothoff.org>
Mon, 5 Apr 2010 21:28:05 +0000 (21:28 +0000)
12 files changed:
src/fs/Makefile.am
src/fs/fs_download.c
src/fs/fs_namespace.c
src/fs/gnunet-service-fs_drq.c
src/fs/gnunet-service-fs_indexing.c
src/fs/test_fs_namespace.c
src/fs/test_gnunet_fs.py [deleted file]
src/fs/test_gnunet_fs_idx.py [new file with mode: 0755]
src/fs/test_gnunet_fs_ns.py [new file with mode: 0755]
src/fs/test_gnunet_fs_psd.py [new file with mode: 0755]
src/fs/test_gnunet_fs_rec.py [new file with mode: 0755]
src/fs/test_gnunet_fs_rec_data.tgz [new file with mode: 0644]

index 53a6a1b416954b1d064e9bc8085775799607e334..a96273f9cbb4e92b51182fc10c5b714c784d3077 100644 (file)
@@ -132,7 +132,10 @@ check_PROGRAMS = \
 
 if HAVE_PYTHON_PEXPECT
 check_SCRIPTS = \
- test_gnunet_fs.py
+ test_gnunet_fs_psd.py \
+ test_gnunet_fs_rec.py \
+ test_gnunet_fs_ns.py \
+ test_gnunet_fs_idx.py
 endif
 
 TESTS = $(check_SCRIPTS) \
@@ -258,4 +261,6 @@ EXTRA_DIST = \
   test_fs_publish_data.conf \
   test_fs_search_data.conf \
   test_fs_unindex_data.conf \
-  test_fs_uri_data.conf
+  test_fs_uri_data.conf \
+  test_gnunet_fs_data.conf \
+  test_gnunet_fs_rec_data.tgz
index c86759c5f14390d0efe9b1f8f25992b4035faf97..b8e4de813ea84f4b27d3c55d70851d90e0d0c222 100644 (file)
@@ -906,7 +906,6 @@ process_result_with_request (void *cls,
                                           dc);         
            
     }
-
   pi.status = GNUNET_FS_STATUS_DOWNLOAD_PROGRESS;
   make_download_status (&pi, dc);
   pi.value.download.specifics.progress.data = pt;
@@ -1324,7 +1323,7 @@ GNUNET_FS_download_start (struct GNUNET_FS_Handle *h,
   dc->length = length;
   dc->anonymity = anonymity;
   dc->options = options;
-  dc->active = GNUNET_CONTAINER_multihashmap_create (2 * (length / DBLOCK_SIZE));
+  dc->active = GNUNET_CONTAINER_multihashmap_create (1 + 2 * (length / DBLOCK_SIZE));
   dc->treedepth = GNUNET_FS_compute_depth (GNUNET_ntohll(dc->uri->data.chk.file_length));
 #if DEBUG_DOWNLOAD
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
index 96e1f4f3f6d227c37a4379624966f7e101252ca9..46208030579f7b2c73e9234ea12f4080783b6982 100644 (file)
@@ -170,7 +170,6 @@ advertisement_cont (void *cls,
       GNUNET_free (ac);
       return;
     }
-
   keyword = ac->ksk_uri->data.ksk.keywords[ac->pos++];
   /* first character of keyword indicates if it is
      mandatory or not -- ignore for hashing */
index b83a125471aba4a094e822128f1621e38cc1c1f2..dea29df7ecee351d886310c6a03c4617910d3800 100644 (file)
@@ -26,7 +26,7 @@
 #include "platform.h"
 #include "gnunet-service-fs_drq.h"
 
-#define DEBUG_DRQ GNUNET_NO
+#define DEBUG_DRQ GNUNET_YES
 
 /**
  * Signature of a function that is called whenever a datastore
index 5bae211baa6d516cf88d91765a56f036694b0e98..4041997423d89df7f1b0efd4c1554ca0337aff30 100644 (file)
@@ -35,7 +35,7 @@
 #include "gnunet-service-fs_indexing.h"
 #include "fs.h"
 
-#define DEBUG_FS GNUNET_NO
+#define DEBUG_FS GNUNET_YES
 
 /**
  * In-memory information about indexed files (also available
index 2f3aabbf6c82391057a9c83aa7311de01631ab6f..91306a64c232b6147c69309050483eadc52e3eb0 100644 (file)
@@ -303,8 +303,8 @@ sks_cont (void *cls,
 
 static void
 adv_cont (void *cls,
-             const struct GNUNET_FS_Uri *uri,
-             const char *emsg)
+         const struct GNUNET_FS_Uri *uri,
+         const char *emsg)
 {
   struct GNUNET_CONTAINER_MetaData *meta;
   struct GNUNET_FS_Namespace *ns;
@@ -361,6 +361,7 @@ testNamespace ()
   struct GNUNET_FS_Namespace *ns;
   struct GNUNET_TIME_Absolute expiration;
   struct GNUNET_CONTAINER_MetaData *meta;
+  struct GNUNET_FS_Uri *ksk_uri;
   int ok;
 
   ns = GNUNET_FS_namespace_create (fs,
@@ -378,13 +379,16 @@ testNamespace ()
   fprintf (stderr, "Advertising namespace root...\n");
   expiration = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_MINUTES);
   meta = GNUNET_CONTAINER_meta_data_create ();
+  ksk_uri = GNUNET_FS_uri_parse ("gnunet://fs/ksk/testnsa", NULL);
   GNUNET_FS_namespace_advertise (fs,
+                                ksk_uri,
                                 ns,
                                 meta,
                                 1, 1,
                                 expiration,                                       
                                 "root",
                                 &adv_cont, NULL);
+  GNUNET_FS_uri_destroy (ksk_uri);
   GNUNET_FS_namespace_delete (ns, GNUNET_NO);
   GNUNET_CONTAINER_meta_data_destroy (meta);
 }
diff --git a/src/fs/test_gnunet_fs.py b/src/fs/test_gnunet_fs.py
deleted file mode 100755 (executable)
index 1d55b32..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/python
-#    This file is part of GNUnet.
-#    (C) 2010 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.
-#
-# Testcase for file-sharing command-line tools
-# 
-# TODO:
-# - test meta data
-# - test namespace search (sblocks, nblocks)
-# - test gnunet-unindex
-# - test gnunet-directory
-# - consider splitting into multiple independent scripts
-import pexpect
-import os
-import signal
-import re
-
-os.system ('gnunet-arm -sq -c test_gnunet_fs_data.conf')
-try:
-# first, basic publish-search-download run
-  pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_data.conf -k gpl ../../COPYING')
-  pub.expect ('Publishing `../../COPYING\' done.\r')
-  pub.expect ("URI is `gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147'.\r")
-  pub.expect (pexpect.EOF)
-
-  search = pexpect.spawn ('gnunet-search -c test_gnunet_fs_data.conf gpl')
-  search.expect ("gnunet-download -o \"COPYING\" gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147\r")
-  search.kill (signal.SIGTERM)
-  search.expect (pexpect.EOF)
-# FIXME: check for meta-data (also need to add meta data in publish call!)
-  
-  down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_data.conf -o \"COPYING\" gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147')
-  down.expect (re.compile ("Downloading `COPYING\' done \(.*\).\r"));
-  down.expect (pexpect.EOF);
-  os.system ('rm COPYING');
-
-# second, same with namespace creation  
-  pseu = pexpect.spawn ('gnunet-pseudonym -c test_gnunet_fs_data.conf -C licenses -k gpl -k test -m "description:Free Software Licenses"')
-  pseu.expect (pexpect.EOF)
-  pseu = pexpect.spawn ('gnunet-pseudonym -c test_gnunet_fs_data.conf -o')
-  pseu.expect (re.compile("licenses \(.*\)\r"))
-  pseu.expect (pexpect.EOF)
-
-  pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_data.conf -k licenses -P licenses -u gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147 -t gpl -N gpl3')
-  pub.expect (pexpect.EOF)
-
-#  search = pexpect.spawn ('gnunet-search -c test_gnunet_fs_data.conf licenses')
-# FIXME: check that namespace was found (code currently does not work for NBLOCKS!)
-# FIXME: check for meta-data! (use gnunet-pseudonym to display?)
-
-finally:
-  os.system ('gnunet-arm -c test_gnunet_fs_data.conf -eq')
diff --git a/src/fs/test_gnunet_fs_idx.py b/src/fs/test_gnunet_fs_idx.py
new file mode 100755 (executable)
index 0000000..277a397
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/python
+#    This file is part of GNUnet.
+#    (C) 2010 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.
+#
+# Testcase for file-sharing command-line tools (indexing and unindexing)
+import pexpect
+import os
+import signal
+import re
+
+os.system ('rm -rf /tmp/gnunet-test-fs-py/')
+os.system ('gnunet-arm -sq -c test_gnunet_fs_data.conf')
+try:
+  pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_data.conf -m "description:The GNU Public License" -k gpl ../../COPYING')
+  pub.expect ('Publishing `../../COPYING\' done.\r')
+  pub.expect ("URI is `gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147'.\r")
+  pub.expect (pexpect.EOF)
+
+  down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_data.conf -o \"COPYING\" gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147')
+  down.expect (re.compile ("Downloading `COPYING\' done \(.*\).\r"));
+  down.expect (pexpect.EOF);
+  os.system ('rm COPYING');
+
+  unindex = pexpect.spawn ('gnunet-unindex -c test_gnunet_fs_data.conf ../../COPYING')
+  unindex.expect ('Unindexing done.\r')
+  unindex.expect (pexpect.EOF)
+
+finally:
+  os.system ('gnunet-arm -c test_gnunet_fs_data.conf -eq')
diff --git a/src/fs/test_gnunet_fs_ns.py b/src/fs/test_gnunet_fs_ns.py
new file mode 100755 (executable)
index 0000000..a9b0b18
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/python
+#    This file is part of GNUnet.
+#    (C) 2010 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.
+#
+# Testcase for file-sharing command-line tools (namespaces)
+import pexpect
+import os
+import signal
+import re
+
+os.system ('rm -rf /tmp/gnunet-test-fs-py/')
+os.system ('gnunet-arm -sq -c test_gnunet_fs_data.conf')
+try:
+  pseu = pexpect.spawn ('gnunet-pseudonym -c test_gnunet_fs_data.conf -C licenses -k gplad -m "description:Free Software Licenses" -r myroot')
+  pseu.expect (pexpect.EOF)
+  pseu = pexpect.spawn ('gnunet-pseudonym -c test_gnunet_fs_data.conf -o')
+  pseu.expect (re.compile("licenses \(.*\)\r"))
+  pseu.expect (pexpect.EOF)
+
+  pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_data.conf -k licenses -P licenses -u gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147 -t gpl -N gpl3')
+  pub.expect (pexpect.EOF)
+
+  search = pexpect.spawn ('gnunet-search -V -c test_gnunet_fs_data.conf gplad')
+  search.expect (re.compile ("gnunet-download gnunet://fs/sks/.*/myroot\r"))
+  search.expect (re.compile (" *description: Free Software Licenses\r"))
+  search.kill (signal.SIGTERM)
+  search.expect (pexpect.EOF)
+
+  pseu = pexpect.spawn ('gnunet-pseudonym -c test_gnunet_fs_data.conf')
+  pseu.expect (re.compile ("Free Software Licenses.*:\r"))
+  pseu.expect (pexpect.EOF)
+
+finally:
+  os.system ('gnunet-arm -c test_gnunet_fs_data.conf -eq')
diff --git a/src/fs/test_gnunet_fs_psd.py b/src/fs/test_gnunet_fs_psd.py
new file mode 100755 (executable)
index 0000000..631fca8
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/python
+#    This file is part of GNUnet.
+#    (C) 2010 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.
+#
+# Testcase for file-sharing command-line tools (publish, search, download)
+import pexpect
+import os
+import signal
+import re
+
+os.system ('rm -rf /tmp/gnunet-test-fs-py/')
+os.system ('gnunet-arm -sq -c test_gnunet_fs_data.conf')
+try:
+# first, basic publish-search-download run
+  pub = pexpect.spawn ('gnunet-publish -n -c test_gnunet_fs_data.conf -m "description:The GNU Public License" -k gpl ../../COPYING')
+  pub.expect ('Publishing `../../COPYING\' done.\r')
+  pub.expect ("URI is `gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147'.\r")
+  pub.expect (pexpect.EOF)
+
+  search = pexpect.spawn ('gnunet-search -V -c test_gnunet_fs_data.conf gpl')
+  search.expect ("gnunet-download -o \"COPYING\" gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147\r")
+  search.expect (re.compile (" *description: The GNU Public License\r"));
+  search.kill (signal.SIGTERM)
+  search.expect (pexpect.EOF)
+  
+  down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_data.conf -o \"COPYING\" gnunet://fs/chk/PC0M19QMQC0BPSHR6BGA228PP6INER1D610MGEMOMEM87222FN8HVUO7PQGO0O9HD2GVLHF2N5IDHEQUNK6LKE428FPO96SKQEA486O.PG7K85JGQ6N599MD5HEP3CHEVFPKQD9JB6NPSLVA3T1SKDS66CFI499VS6MGQ88B0QUAVT1282TCRD4GGFVUKDLGI8F0SPIANA3J2LG.35147')
+  down.expect (re.compile ("Downloading `COPYING\' done \(.*\).\r"));
+  down.expect (pexpect.EOF);
+  os.system ('rm COPYING');
+
+finally:
+  os.system ('gnunet-arm -c test_gnunet_fs_data.conf -eq')
diff --git a/src/fs/test_gnunet_fs_rec.py b/src/fs/test_gnunet_fs_rec.py
new file mode 100755 (executable)
index 0000000..a68ba13
--- /dev/null
@@ -0,0 +1,51 @@
+#!/usr/bin/python
+#    This file is part of GNUnet.
+#    (C) 2010 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.
+#
+# Testcase for file-sharing command-line tools (recursive publishing & download)
+import pexpect
+import os
+import signal
+import re
+
+os.system ('rm -rf /tmp/gnunet-test-fs-py/')
+os.system ('gnunet-arm -sq -c test_gnunet_fs_data.conf')
+os.system ('tar xfz test_gnunet_fs_rec_data.tgz')
+try:
+  pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_data.conf -d -k testdir dir/')
+  pub.expect ('Publishing `dir/\' done.\r')
+  pub.expect ("URI is `gnunet://fs/chk/P5BPKNHH7CECDQA1A917G5EB67PPVG99NVO5QMJ8AJP2C02NM8O1ALNGOJPLLO0RMST0FNM0ATJV95PDAGATHDGH7AGIK2N3O0OOC70.OSG2JS3JDSI0AV8LMOL9MKPJ70DNG2RBL2CBTUCHK563VEM7L00RN8I2K0VPB459JRVBFOIKJG72LIQPDP9RFCVEVI37BUD76RJ3KK0.20169\'.")
+  pub.expect (pexpect.EOF)
+
+  down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_data.conf -R -o rdir.gnd gnunet://fs/chk/P5BPKNHH7CECDQA1A917G5EB67PPVG99NVO5QMJ8AJP2C02NM8O1ALNGOJPLLO0RMST0FNM0ATJV95PDAGATHDGH7AGIK2N3O0OOC70.OSG2JS3JDSI0AV8LMOL9MKPJ70DNG2RBL2CBTUCHK563VEM7L00RN8I2K0VPB459JRVBFOIKJG72LIQPDP9RFCVEVI37BUD76RJ3KK0.20169\'.')
+
+  down.expect (re.compile ("Downloading `rdir.gnd\' done \(.*\).\r"));
+  down.expect (pexpect.EOF);
+
+  dir = pexpect.spawn ('gnunet-directory rdir/a.gnd')
+  dir.expect (re.compile (" *embedded filename: a"));
+  dir.expect (re.compile (" *embedded filename: COPYING"));
+  dir.expect (pexpect.EOF)
+
+  os.system ('rm -r rdir/b.gnd rdir/a.gnd')
+  if (0 != os.system ("diff -r dir rdir")):
+    raise Exception ("Unexpected difference between source directory and downloaded result")
+  
+finally:
+  os.system ('gnunet-arm -c test_gnunet_fs_data.conf -eq')
+  os.system ('rm -r dir rdir rdir.gnd')
diff --git a/src/fs/test_gnunet_fs_rec_data.tgz b/src/fs/test_gnunet_fs_rec_data.tgz
new file mode 100644 (file)
index 0000000..6977943
Binary files /dev/null and b/src/fs/test_gnunet_fs_rec_data.tgz differ