From 3779ffb18a1839f62e8d55139d23f262a5b66b9c Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 23 Apr 2010 09:16:10 +0000 Subject: testcase for gnunet-peerinfo --- src/peerinfo-tool/Makefile.am | 8 +++- src/peerinfo-tool/gnunet-peerinfo.c | 16 +++++++ src/peerinfo-tool/test_gnunet_peerinfo.py | 56 ++++++++++++++++++++++++ src/peerinfo-tool/test_gnunet_peerinfo_data.conf | 21 +++++++++ 4 files changed, 99 insertions(+), 2 deletions(-) create mode 100755 src/peerinfo-tool/test_gnunet_peerinfo.py create mode 100644 src/peerinfo-tool/test_gnunet_peerinfo_data.conf (limited to 'src/peerinfo-tool') diff --git a/src/peerinfo-tool/Makefile.am b/src/peerinfo-tool/Makefile.am index c10440f92..25885a34c 100644 --- a/src/peerinfo-tool/Makefile.am +++ b/src/peerinfo-tool/Makefile.am @@ -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) diff --git a/src/peerinfo-tool/gnunet-peerinfo.c b/src/peerinfo-tool/gnunet-peerinfo.c index 5efd7262c..ba6609596 100644 --- a/src/peerinfo-tool/gnunet-peerinfo.c +++ b/src/peerinfo-tool/gnunet-peerinfo.c @@ -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 index 000000000..3aa8497af --- /dev/null +++ b/src/peerinfo-tool/test_gnunet_peerinfo.py @@ -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 index 000000000..5641d5baf --- /dev/null +++ b/src/peerinfo-tool/test_gnunet_peerinfo_data.conf @@ -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 -- cgit v1.2.3