aboutsummaryrefslogtreecommitdiff
path: root/src/integration-tests/test_integration_connection_values_tcp.py.in
blob: efcf5c7fdd9596c5beb834c21c735056d266df62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!@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
from gnunet_testing import Peer
from gnunet_testing import Test
from gnunet_testing import Check
from gnunet_testing import Condition
from gnunet_testing import * 
 
if os.name == "nt":
  tmp = os.getenv ("TEMP")
else:
  tmp = "/tmp"

#definitions

testname = "test_integration_connection_value"
verbose = True
check_timeout = 180


def cleanup ():
    shutil.rmtree (os.path.join (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', '# peers connected'))
  check.add (EqualStatisticsCondition (client, 'core', '# neighbour entries allocated', client,  'core', '# peers connected'))
  check.add (EqualStatisticsCondition (client, 'transport', '# peers connected', client, 'topology', '# peers connected'))
  check.add (EqualStatisticsCondition (client, 'topology', '# peers connected', client, 'core', '# peers connected'))
  
  while True:
	check.reset()
	res = check.run_once (None, None)
	print "Values are equal"
	check.evaluate (False)
#if (False == res):
#	break
	time.sleep (5)
	
# 
# 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_tcp.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)