123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- #!@PYTHON@
- from __future__ import print_function
- import os
- import sys
- import shutil
- import re
- import subprocess
- import time
- if os.name == "nt":
- tmp = os.getenv ("TEMP")
- else:
- tmp = "/tmp"
- if os.name == 'nt':
- st = './gnunet-statistics.exe'
- arm = 'gnunet-arm.exe'
- else:
- st = './gnunet-statistics'
- arm = 'gnunet-arm'
- run_st = [st, '-c', 'test_statistics_api_data.conf']
- run_arm = [arm, '-c', 'test_statistics_api_data.conf']
- debug = os.getenv ('DEBUG')
- if debug:
- run_arm += [debug.split (' ')]
- def cleanup ():
- shutil.rmtree (os.path.join (tmp, "test-gnunet-statistics"), True)
- def sub_run (args, want_stdo = True, want_stde = False, nofail = False):
- if want_stdo:
- stdo = subprocess.PIPE
- else:
- stdo = None
- if want_stde:
- stde = subprocess.PIPE
- else:
- stde = None
- p = subprocess.Popen (args, stdout = stdo, stderr = stde)
- stdo, stde = p.communicate ()
- if not nofail:
- if p.returncode != 0:
- sys.exit (p.returncode)
- return (p.returncode, stdo, stde)
- def fail (result):
- print (result)
- r_arm (['-e'], want_stdo = False)
- sys.exit (1)
- def r_arm (extra_args, **kw):
- rc, stdo, stde = sub_run (run_arm + extra_args, **kw)
- if rc != 0:
- fail ("FAIL: error running {}".format (run_arm))
- return (rc, stdo, stde)
- def r_st (extra_args, normal = True, **kw):
- rc, stdo, stde = sub_run (run_st + extra_args, **kw)
- if normal:
- if rc != 0:
- fail ("FAIL: error running {}".format (run_st))
- else:
- if rc == 0:
- fail ("FAIL: expected error while running {}".format (run_st))
- return (rc, stdo, stde)
- def restart ():
- print ("Restarting service...")
- t = r_arm (['-k', 'statistics'])
- time.sleep (1)
- t = r_arm (['-i', 'statistics'])
- time.sleep (1)
- cleanup ()
- print ("Preparing: Starting service...")
- t = r_arm (['-s'], want_stdo = False)
- time.sleep (1)
- t = r_arm (['-i', 'statistics'], want_stdo = False)
- time.sleep (1)
- print ("TEST: Bad argument checking...", end='')
- r_st (['-x'], normal = False, nofail = True, want_stdo = False, want_stde = True)
- print ("PASS")
- print ("TEST: Set value...", end='')
- r_st (['-n', 'test', '-s', 'subsystem', b'42'], nofail = True, want_stdo = False)
- print ("PASS")
- print ("TEST: Set another value...", end='')
- r_st (['-n', 'other', '-s', 'osystem', b'43'], nofail = True, want_stdo = False)
- print ("PASS")
- print ("TEST: Viewing all stats...", end='')
- rc, stdo, stde = r_st ([], nofail = True, want_stdo = True)
- if len (stdo.splitlines ()) != 2:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- print ("TEST: Viewing stats by name...", end='')
- rc, stdo, stde = r_st (['-n', 'other'], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'43', x)]) != 1:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- print ("TEST: Viewing stats by subsystem...", end='')
- rc, stdo, stde = r_st (['-s', 'subsystem'], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'42', x)]) != 1:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- print ("TEST: Set persistent value...", end='')
- rc, stdo, stde = r_st (['-n', 'lasting', '-s', 'subsystem', '40', '-p'], nofail = True, want_stdo = False)
- rc, stdo, stde = r_st ([], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'40', x)]) != 1:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- restart ()
- print ("TEST: Checking persistence...", end='')
- rc, stdo, stde = r_st ([], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'40', x)]) != 1:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- print ("TEST: Removing persistence...", end='')
- rc, stdo, stde = r_st (['-n', 'lasting', '-s', 'subsystem', '40'], nofail = True, want_stdo = False)
- rc, stdo, stde = r_st ([], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'!', x)]) != 0:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- restart ()
- print ("TEST: Checking removed persistence...", end='')
- rc, stdo, stde = r_st ([], nofail = True, want_stdo = True)
- if len ([x for x in stdo.splitlines () if re.search (b'40', x)]) != 0:
- fail ("FAIL: unexpected output:\n{}".format (stdo))
- print ("PASS")
- print ("Stopping service...")
- t = r_arm (['-e'], want_stdo = False)
- time.sleep (1)
- cleanup ()
|