aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-09-07 12:01:53 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-09-07 12:01:53 +0000
commitb1b93db7f7f8dfa7bb2fe6d09fd14467b3bb247a (patch)
tree4a067e4741aa37c11fda39024ae66238379ad3c8 /src
parentea0f8a1c0590aaefa01babd703369fe05d65a6a3 (diff)
downloadgnunet-b1b93db7f7f8dfa7bb2fe6d09fd14467b3bb247a.tar.gz
gnunet-b1b93db7f7f8dfa7bb2fe6d09fd14467b3bb247a.zip
- memory consumption test
Diffstat (limited to 'src')
-rwxr-xr-xsrc/integration-tests/test_mem_consumption.py148
1 files changed, 148 insertions, 0 deletions
diff --git a/src/integration-tests/test_mem_consumption.py b/src/integration-tests/test_mem_consumption.py
new file mode 100755
index 000000000..0233904a4
--- /dev/null
+++ b/src/integration-tests/test_mem_consumption.py
@@ -0,0 +1,148 @@
1#!/usr/bin/python
2# This file is part of GNUnet.
3# (C) 2010 Christian Grothoff (and other contributing authors)
4#
5# GNUnet is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published
7# by the Free Software Foundation; either version 2, or (at your
8# option) any later version.
9#
10# GNUnet is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with GNUnet; see the file COPYING. If not, write to the
17# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18# Boston, MA 02111-1307, USA.
19#
20#
21#
22# This test starts 3 peers and expects bootstrap and a connected clique
23#
24# Conditions for successful exit:
25# Both peers have 1 connected peer in transport, core, topology, fs
26
27import sys
28import os
29import subprocess
30import re
31import shutil
32import time
33from gnunet_testing import Peer
34from gnunet_testing import Test
35from gnunet_testing import Check
36from gnunet_testing import Condition
37from gnunet_testing import *
38
39if os.name == "nt":
40 tmp = os.getenv ("TEMP")
41else:
42 tmp = "/tmp"
43
44#definitions
45
46testname = "test_integration_clique"
47verbose = True
48check_timeout = 180
49
50
51def cleanup ():
52 shutil.rmtree (os.path.join (tmp, "c_bootstrap_server"), True)
53 shutil.rmtree (os.path.join (tmp, "c_no_nat_client"), True)
54 shutil.rmtree (os.path.join (tmp, "c_no_nat_client_2"), True)
55
56
57
58def check_disconnect ():
59 check = Check (test)
60 check.add (StatisticsCondition (client, 'transport', '# peers connected',1))
61 check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',1))
62 check.add (StatisticsCondition (client, 'core', '# peers connected',1))
63 check.add (StatisticsCondition (client, 'topology', '# peers connected',1))
64 check.add (StatisticsCondition (client, 'fs', '# peers connected',1))
65
66 check.add (StatisticsCondition (server, 'transport', '# peers connected',1))
67 check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',1))
68 check.add (StatisticsCondition (server, 'core', '# peers connected',1))
69 check.add (StatisticsCondition (server, 'topology', '# peers connected',1))
70 check.add (StatisticsCondition (server, 'fs', '# peers connected',1))
71
72 check.run_blocking (check_timeout, None, None)
73
74
75
76def check_connect ():
77 check = Check (test)
78 check.add (StatisticsCondition (client, 'transport', '# peers connected',2))
79 check.add (StatisticsCondition (client, 'core', '# neighbour entries allocated',2))
80 check.add (StatisticsCondition (client, 'core', '# peers connected',2))
81 check.add (StatisticsCondition (client, 'topology', '# peers connected',2))
82 check.add (StatisticsCondition (client, 'fs', '# peers connected',2))
83
84 check.add (StatisticsCondition (client2, 'transport', '# peers connected',2))
85 check.add (StatisticsCondition (client2, 'core', '# neighbour entries allocated',2))
86 check.add (StatisticsCondition (client2, 'core', '# peers connected',2))
87 check.add (StatisticsCondition (client2, 'topology', '# peers connected',2))
88 check.add (StatisticsCondition (client2, 'fs', '# peers connected',2))
89
90 check.add (StatisticsCondition (server, 'transport', '# peers connected',2))
91 check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',2))
92 check.add (StatisticsCondition (server, 'core', '# peers connected',2))
93 check.add (StatisticsCondition (server, 'topology', '# peers connected',2))
94 check.add (StatisticsCondition (server, 'fs', '# peers connected',2))
95
96 check.run_blocking (check_timeout, None, None)
97
98#
99# Test execution
100#
101def run ():
102 global success
103 global test
104 global server
105 global client
106 global client2
107 restarts = 0
108 iterations = 4
109 success = False
110
111 test = Test ('test_memory_consumption', verbose)
112 server = Peer(test, './confs/c_bootstrap_server.conf');
113 server.start();
114 client = Peer(test, './confs/c_no_nat_client.conf');
115 client.start();
116
117 while (restarts < iterations):
118 print 'Iteration #' + str (restarts) + ' of ' + str (restarts)
119 restarts += 1
120 client2 = Peer(test, './confs/c_no_nat_client_2.conf');
121 client2.start();
122 if ((client.started == True) and (client2.started == True) and (server.started == True)):
123 test.p ('Peers started, waiting for clique connection')
124 check_connect ()
125 test.p ('All peers connected, stopping client2')
126 client2.stop ()
127 check_disconnect ()
128 test.p ('Peer disconnected')
129
130 print str (iterations) + " Iteration executed"
131 server.stop ()
132 client.stop ()
133 cleanup ()
134
135try:
136 run ()
137except (KeyboardInterrupt, SystemExit):
138 print 'Test interrupted'
139 server.stop ()
140 client.stop ()
141 client2.stop ()
142 cleanup ()
143if (success == False):
144 sys.exit(1)
145else:
146 sys.exit(0)
147
148