123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- #!@PYTHON@
- import os
- import sys
- import shutil
- import re
- import subprocess
- import time
- # FIXME: There's too much repetition, move generally used parts into reusable modules.
- 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_arm = [arm, '-c', 'test_arm_api_data.conf', '--no-stdout', '--no-stderr']
- debug = os.getenv('DEBUG')
- if debug:
- run_arm += [debug.split(' ')]
- def cleanup():
- shutil.rmtree(os.path.join(tmp, "test-gnunetd-arm"), 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 end_arm_failer(command, rc, stdo, stde, normal):
- if normal:
- if rc != 0:
- fail("FAIL: error running {}\nCommand output was:\n{}\n{}".format(command, stdo, stde))
- else:
- if rc == 0:
- fail("FAIL: expected error while running {}\nCommand output was:\n{}\n{}".format(command, stdo, stde))
- def print_only_failer(command, rc, stdo, stde, normal):
- if normal:
- if rc != 0:
- print("FAIL: error running {}\nCommand output was:\n{}\n{}".format(command, stdo, stde))
- sys.exit(1)
- else:
- if rc == 0:
- print("FAIL: expected error while running {}\nCommand output was:\n{}\n{}".format(command, stdo, stde))
- sys.exit(1)
- def r_something(to_run, extra_args, failer=None, normal=True, **kw):
- rc, stdo, stde = sub_run(to_run + extra_args, nofail=True, want_stde=True, **kw)
- if failer is not None:
- failer(to_run + extra_args, rc, stdo, stde, normal)
- return (rc, stdo, stde)
- def r_arm(extra_args, **kw):
- return r_something(run_arm, extra_args, **kw)
- cleanup()
- print("TEST: Bad argument checking...", end='')
- r_arm(['-x'], normal=False, failer=print_only_failer)
- print("PASS")
- print("TEST: Start ARM...", end='')
- r_arm(['-s'], failer=print_only_failer)
- time.sleep(1)
- print("PASS")
- print("TEST: Start another service...", end='')
- r_arm(['-i', 'resolver'], failer=end_arm_failer)
- time.sleep(1)
- print("PASS")
- print("TEST: Stop a service...", end='')
- r_arm(['-k', 'resolver'], failer=end_arm_failer)
- time.sleep(1)
- print("PASS")
- print("TEST: Stop ARM...", end='')
- r_arm(['-e'], failer=print_only_failer)
- time.sleep(1)
- print("PASS")
- cleanup()
|