Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
test_aktualizr_kill.py
1 #!/usr/bin/env python3
2 
3 import argparse
4 import logging
5 import signal
6 import time
7 
8 from os import getcwd, chdir
9 
10 from test_fixtures import with_aktualizr, with_uptane_backend, KeyStore, with_director
11 
12 
13 logger = logging.getLogger(__file__)
14 
15 
16 @with_uptane_backend(start_generic_server=True)
17 @with_director(start=True)
18 @with_aktualizr(start=False, log_level=0, run_mode='full')
19 def test_aktualizr_kill(director, aktualizr, **kwargs):
20  test_result = False
21  with aktualizr:
22  try:
23  aktualizr.wait_for_provision()
24  aktualizr.terminate()
25  aktualizr.wait_for_completion()
26  test_result = 'Aktualizr daemon exiting...' in aktualizr.output()
27  except Exception:
28  aktualizr.terminate(sig=signal.SIGKILL)
29  aktualizr.wait_for_completion()
30  print(aktualizr.output())
31  raise
32 
33  return test_result
34 
35 
36 if __name__ == "__main__":
37  logging.basicConfig(level=logging.INFO)
38 
39  initial_cwd = getcwd()
40  parser = argparse.ArgumentParser(description='Test aktualizr kill')
41  parser.add_argument('-b', '--build-dir', help='build directory', default=initial_cwd + '/build')
42  parser.add_argument('-s', '--src-dir', help='source directory', default=initial_cwd)
43  input_params = parser.parse_args()
44 
45  KeyStore.base_dir = input_params.src_dir
46  chdir(input_params.build_dir)
47 
48  test_suite = [
49  test_aktualizr_kill,
50  ]
51 
52  test_suite_run_result = True
53  for test in test_suite:
54  logger.info('>>> Running {}...'.format(test.__name__))
55  test_run_result = test()
56  logger.info('>>> {}: {}\n'.format('OK' if test_run_result else 'FAILED', test.__name__))
57  test_suite_run_result = test_suite_run_result and test_run_result
58 
59  chdir(initial_cwd)
60  exit(0 if test_suite_run_result else 1)
test_aktualizr_kill
Definition: test_aktualizr_kill.py:1