testcase for gnunet-peerinfo
authorChristian Grothoff <christian@grothoff.org>
Fri, 23 Apr 2010 09:16:10 +0000 (09:16 +0000)
committerChristian Grothoff <christian@grothoff.org>
Fri, 23 Apr 2010 09:16:10 +0000 (09:16 +0000)
src/peerinfo-tool/Makefile.am
src/peerinfo-tool/gnunet-peerinfo.c
src/peerinfo-tool/test_gnunet_peerinfo.py [new file with mode: 0755]
src/peerinfo-tool/test_gnunet_peerinfo_data.conf [new file with mode: 0644]

index c10440f92f93c9484c8e9dc07bb0857820f340cf..25885a34cd639e24452dbfb8eab1e014b36df607 100644 (file)
@@ -20,5 +20,9 @@ gnunet_peerinfo_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la 
 
 
-#check_SCRIPTS = \
-#  test_gnunet_peerinfo.sh
+if HAVE_PYTHON_PEXPECT
+check_SCRIPTS = \
+ test_gnunet_peerinfo.py 
+endif
+
+TESTS = $(check_SCRIPTS) 
index 5efd7262c9a8b33e1c73afc20b5f3c867b49fda6..ba6609596abab4fd5fdaab8dd6baa5ef6378f920 100644 (file)
@@ -170,6 +170,22 @@ print_peer_info (void *cls,
   if (peer == NULL)    
     {
       GNUNET_PEERINFO_disconnect (peerinfo);
+      switch (trust)
+       {
+       case 0:
+         break;
+       case 1:
+         fprintf (stderr,
+                  _("Timeout trying to interact with PEERINFO service\n"));
+         break;
+       case 2:
+         fprintf (stderr,
+                  _("Error in communication with PEERINFO service\n"));
+         break;
+       default:
+         GNUNET_break (0);
+         break;
+       }
       return;    
     }
   if (be_quiet)
diff --git a/src/peerinfo-tool/test_gnunet_peerinfo.py b/src/peerinfo-tool/test_gnunet_peerinfo.py
new file mode 100755 (executable)
index 0000000..3aa8497
--- /dev/null
@@ -0,0 +1,56 @@
+#!/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 gnunet-peerinfo
+import pexpect
+import os
+import signal
+import re
+
+pinfo = pexpect.spawn ('gnunet-peerinfo -c test_gnunet_peerinfo_data.conf')
+pinfo.expect  ('Timeout trying to interact with PEERINFO service\r')
+pinfo.expect (pexpect.EOF);
+os.system ('rm -rf /tmp/gnunet-test-peerinfo/')
+os.system ('gnunet-arm -sq -c test_gnunet_peerinfo_data.conf')
+
+try:
+  pinfo = pexpect.spawn ('gnunet-peerinfo -c test_gnunet_peerinfo_data.conf -s')
+  pinfo.expect (re.compile ("I am peer `.*\'.\r"));
+  pinfo.expect (pexpect.EOF);
+
+  pinfo = pexpect.spawn ('gnunet-peerinfo -c test_gnunet_peerinfo_data.conf -qs')
+  pinfo.expect (re.compile (".......................................................................................................\r"));
+  pinfo.expect (pexpect.EOF);
+
+  os.system ('gnunet-arm -q -i transport -c test_gnunet_peerinfo_data.conf')
+
+  pinfo = pexpect.spawn ('gnunet-peerinfo -c test_gnunet_peerinfo_data.conf')
+  pinfo.expect (re.compile ("Peer `.*\' with trust  *0\r"));
+  pinfo.expect (re.compile (" *localhost:24357\r"));
+  pinfo.expect (pexpect.EOF);
+
+  pinfo = pexpect.spawn ('gnunet-peerinfo -c test_gnunet_peerinfo_data.conf -n')
+  pinfo.expect (re.compile ("Peer `.*\' with trust  *0\r"));
+  pinfo.expect (re.compile (" *127.0.0.1:24357\r"));
+  pinfo.expect (pexpect.EOF);
+
+
+finally:
+  os.system ('gnunet-arm -c test_gnunet_peerinfo_data.conf -eq')
+  os.system ('rm -rf /tmp/gnunet-test-peerinfo/')
diff --git a/src/peerinfo-tool/test_gnunet_peerinfo_data.conf b/src/peerinfo-tool/test_gnunet_peerinfo_data.conf
new file mode 100644 (file)
index 0000000..5641d5b
--- /dev/null
@@ -0,0 +1,21 @@
+[PATHS]
+SERVICEHOME = /tmp/gnunet-test-peerinfo/
+
+[peerinfo]
+PORT = 24354
+
+[resolver]
+PORT = 24355
+
+[arm]
+DEFAULTSERVICES = resolver peerinfo
+
+[testing]
+WEAKRANDOM = YES
+
+[transport]
+plugins = tcp
+PORT = 24356
+
+[transport-tcp]
+PORT = 24357
\ No newline at end of file