#!/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. # # # # This test starts 3 peers and expects bootstrap and a connected clique # # Conditions for successful exit: # Both peers have 1 connected peer in transport, core, topology, fs import sys import os import subprocess import re import shutil import time import pexpect from gnunet_testing import Peer from gnunet_testing import Test from gnunet_testing import Check from gnunet_testing import Condition from gnunet_testing import * #definitions testname = "test_integration_connection_value" verbose = True check_timeout = 30 def cleanup (): if os.name == "nt": shutil.rmtree (os.path.join (os.getenv ("TEMP"), "c_normal_client"), True) else: shutil.rmtree ("/tmp/c_normal_client/", True) def success_cont (check): global success success = True; def fail_cont (check): global success success= False; check.evaluate(True) def check_connect (): check = Check (test) check.add (EqualStatisticsCondition (client, 'transport', '# peers connected', client, 'core', '# neighbour entries allocated')) check.add (EqualStatisticsCondition (client, 'transport', '# peers connected', client, 'core', '# entries in session map')) check.add (EqualStatisticsCondition (client, 'core', '# neighbour entries allocated', client, 'core', '# entries in session map')) while True: time.sleep (5) check.reset() res = check.run_once (None, None) print "Values are equal" check.evaluate (False) #if (False == res): # break # # Test execution # def run (): global success global test global client success = False test = Test ('test_integration_connection_value', verbose) client = Peer(test, './confs/c_normal_client.conf'); client.start(); if (client.started == True): test.p ('Peers started, running check') check_connect () client.stop () cleanup () if (success == False): print ('Test failed') return False else: return True try: run () except (KeyboardInterrupt, SystemExit): print 'Test interrupted' client.stop () cleanup () if (success == False): sys.exit(1) else: sys.exit(0)