X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fintegration-tests%2Ftest_integration_disconnect.py.in;h=f2ad0ff9e8c7c2070ba2208b67d3cc2a9b0405d7;hb=7348fad86391b913ecc41f986066f260efb04633;hp=c2d3102c792385795c1431b6abdd57403d95803a;hpb=d626dae9f02dd793a0175cbb89d17785caee8cf5;p=oweals%2Fgnunet.git diff --git a/src/integration-tests/test_integration_disconnect.py.in b/src/integration-tests/test_integration_disconnect.py.in index c2d3102c7..f2ad0ff9e 100755 --- a/src/integration-tests/test_integration_disconnect.py.in +++ b/src/integration-tests/test_integration_disconnect.py.in @@ -14,8 +14,8 @@ # # 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. +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. # # import sys @@ -48,12 +48,25 @@ check_timeout = 180 if os.name == "nt": tmp = os.getenv ("TEMP") + signals = [signal.SIGTERM, signal.SIGINT] else: tmp = "/tmp" + signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT] + +def cleanup_onerror (function, path, excinfo): + import stat + if not os.path.exists (path): + pass + elif not os.access(path, os.W_OK): + # Is the error an access error ? + os.chmod (path, stat.S_IWUSR) + function (path) + else: + raise def cleanup (): - shutil.rmtree (os.path.join (tmp, "c_bootstrap_server"), True) - shutil.rmtree (os.path.join (tmp, "c_no_nat_client"), True) + shutil.rmtree (os.path.join (tmp, "c_bootstrap_server"), False, cleanup_onerror) + shutil.rmtree (os.path.join (tmp, "c_no_nat_client"), False, cleanup_onerror) def success_disconnect_cont (check): @@ -106,7 +119,7 @@ def check_connect (): check.add (StatisticsCondition (server, 'core', '# neighbour entries allocated',1)) check.add (StatisticsCondition (server, 'core', '# peers connected',1)) check.add (StatisticsCondition (server, 'topology', '# peers connected',1)) - check.add (StatisticsCondition (client, 'dht', '# peers connected',1)) + check.add (StatisticsCondition (server, 'dht', '# peers connected',1)) check.add (StatisticsCondition (server, 'fs', '# peers connected',1)) check.run_blocking (check_timeout, success_connect_cont, fail_connect_cont) @@ -138,7 +151,7 @@ def run (): client = None success = False - for sig in [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, signal.SIGQUIT]: + for sig in signals: signal.signal(sig, SigHandler) test = Test ('test_integration_bootstrap_and_connect.py', verbose) @@ -153,6 +166,10 @@ def run (): server.stop () cleanup () sys.exit(success) + + # Give the server time to start + time.sleep(5) + if (True != client.start()): print 'Failed to start client' if (None != server):