aboutsummaryrefslogtreecommitdiff
path: root/src/fs/test_gnunet_fs_rec.py.in
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2011-08-05 21:16:35 +0000
committerChristian Grothoff <christian@grothoff.org>2011-08-05 21:16:35 +0000
commitcb41db74f56afaa480d834c4756ecb6ac6bf8258 (patch)
tree421f628248ad91624dd900b664a2dd86eeea519c /src/fs/test_gnunet_fs_rec.py.in
parent00082097a2f6c54166d4308b65bde7ef0bbed1bd (diff)
downloadgnunet-cb41db74f56afaa480d834c4756ecb6ac6bf8258.tar.gz
gnunet-cb41db74f56afaa480d834c4756ecb6ac6bf8258.zip
LRN: 0005-Port-old-pexpect-tests-to-gnunet_pyexpect.patch
Diffstat (limited to 'src/fs/test_gnunet_fs_rec.py.in')
-rwxr-xr-xsrc/fs/test_gnunet_fs_rec.py.in89
1 files changed, 64 insertions, 25 deletions
diff --git a/src/fs/test_gnunet_fs_rec.py.in b/src/fs/test_gnunet_fs_rec.py.in
index 3c990b35b..5b1b7f0e6 100755
--- a/src/fs/test_gnunet_fs_rec.py.in
+++ b/src/fs/test_gnunet_fs_rec.py.in
@@ -18,36 +18,75 @@
18# Boston, MA 02111-1307, USA. 18# Boston, MA 02111-1307, USA.
19# 19#
20# Testcase for file-sharing command-line tools (recursive publishing & download) 20# Testcase for file-sharing command-line tools (recursive publishing & download)
21import pexpect 21import sys
22import os 22import os
23import signal 23import subprocess
24import re 24import re
25import shutil
25 26
26os.system ('rm -rf /tmp/gnunet-test-fs-py-rec/') 27srcdir = "../.."
27os.system ('gnunet-arm -sq -c test_gnunet_fs_rec_data.conf') 28gnunet_pyexpect_dir = os.path.join (srcdir, "contrib", "gnunet_pyexpect")
29if gnunet_pyexpect_dir not in sys.path:
30 sys.path.append (gnunet_pyexpect_dir)
31
32from gnunet_pyexpect import pexpect
33
34if os.name == 'posix':
35 download = 'gnunet-download'
36 gnunetarm = 'gnunet-arm'
37 publish = 'gnunet-publish'
38 unindex = 'gnunet-unindex'
39 search = 'gnunet-search'
40 directory = 'gnunet-directory'
41elif os.name == 'nt':
42 download = 'gnunet-download.exe'
43 gnunetarm = 'gnunet-arm.exe'
44 publish = 'gnunet-publish.exe'
45 unindex = 'gnunet-unindex.exe'
46 search = 'gnunet-search.exe'
47 directory = 'gnunet-directory.exe'
48
49if os.name == "nt":
50 shutil.rmtree (os.path.join (os.getenv ("TEMP"), "gnunet-test-fs-py-rec"), True)
51else:
52 shutil.rmtree ("/tmp/gnunet-test-fs-py-rec", True)
53
54arm = subprocess.Popen ([gnunetarm, '-sq', '-c', 'test_gnunet_fs_rec_data.conf'])
55arm.communicate ()
56
57# pray that `tar' is in PATH
28os.system ('tar xfz test_gnunet_fs_rec_data.tgz') 58os.system ('tar xfz test_gnunet_fs_rec_data.tgz')
59# first, basic publish-search-download run
29try: 60try:
30 pub = pexpect.spawn ('gnunet-publish -c test_gnunet_fs_rec_data.conf -d -k testdir dir/') 61 pub = pexpect ()
31 pub.expect ('Publishing `dir/\' done.\r') 62 pub.spawn (None, [publish, '-c', 'test_gnunet_fs_rec_data.conf', '-d', '-k', 'testdir', 'dir/'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
32 pub.expect ("URI is `gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8.20182'.") 63 pub.expect ("stdout", re.compile (r"Publishing `dir/' done\.\r?\n"))
33 pub.expect (pexpect.EOF) 64 pub.expect ("stdout", re.compile (r"URI is `gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70\.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8\.20182'\.\r?\n"))
34 65
35 down = pexpect.spawn ('gnunet-download -c test_gnunet_fs_rec_data.conf -R -o rdir.gnd gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8.20182') 66 down = pexpect ()
36 down.expect (re.compile ("Downloading `rdir.gnd\' done \(.*\).\r")); 67 down.spawn (None, [download, '-c', 'test_gnunet_fs_rec_data.conf', '-R', '-o', 'rdir.gnd', 'gnunet://fs/chk/M2I80IUI2DM4L6G93KL15AHAO7MIMS5JKP1L3LQFVN50CT7AKRQDSF594BC9TD97JJIT3COF6B5O524CMIOG9EJO8UK1560M54JRI70.GBRE5M4QJ7NA0QIN88FMSC78NNOQMVT5DH8FP37OIR5SGGHFEB9ESDNBRKT9PFE9N2GOI81UN8GGBR6KH9GRTV1T04JFSJURF2U0VE8.20182'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
37 down.expect (pexpect.EOF); 68 down.expect ("stdout", re.compile (r"Downloading `rdir.gnd' done (.*).\r?\n"))
38 69
39 dir = pexpect.spawn ('gnunet-directory -c test_gnunet_fs_rec_data.conf rdir/a.gnd') 70 d = pexpect ()
40 dir.expect (re.compile ("Directory `a/' meta data:")); 71 d.spawn (None, [directory, '-c', 'test_gnunet_fs_rec_data.conf', 'rdir/a.gnd'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
41 dir.expect (re.compile ("Directory `a/' contents:")); 72 d.expect ("stdout", re.compile (r"Directory `a/' meta data:\r?\n"))
42 dir.expect (re.compile ("COPYING (.*)")); 73 d.expect ("stdout", re.compile (r"Directory `a/' contents:\r?\n"))
43 dir.expect (re.compile ("INSTALL (.*)")); 74 d.expect ("stdout", re.compile (r"COPYING (.*)\r?\n"))
44 dir.expect (pexpect.EOF) 75 d.expect ("stdout", re.compile (r"INSTALL (.*)\r?\n"))
45 76
46 os.system ('rm -r rdir/b.gnd rdir/a.gnd') 77 os.remove ("rdir/b.gnd")
47 if (0 != os.system ("diff -r dir rdir")): 78 os.remove ("rdir/a.gnd")
79 if 0 != os.system ("diff -r dir rdir"):
48 raise Exception ("Unexpected difference between source directory and downloaded result") 80 raise Exception ("Unexpected difference between source directory and downloaded result")
49 81
82
50finally: 83finally:
51 os.system ('gnunet-arm -c test_gnunet_fs_rec_data.conf -eq') 84 arm = subprocess.Popen ([gnunetarm, '-eq', '-c', 'test_gnunet_fs_rec_data.conf'])
52 os.system ('rm -r dir rdir rdir.gnd') 85 arm.communicate ()
53 os.system ('rm -rf /tmp/gnunet-test-fs-py-rec/') 86 if os.name == "nt":
87 shutil.rmtree (os.path.join (os.getenv ("TEMP"), "gnunet-test-fs-py-rec"), True)
88 else:
89 shutil.rmtree ("/tmp/gnunet-test-fs-py-rec", True)
90 shutil.rmtree ("dir", True)
91 shutil.rmtree ("rdir", True)
92 shutil.rmtree ("rdir.gnd", True)