Guest User

Untitled

a guest
Oct 20th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. class TestHardPDAQCrash(TestLiveControlWithPDAQ):
  2. def test(self):
  3. assert 'OK' == livecmd("config set -i default")
  4. assert 'OK' == livecmd("altconfigs add -i alt1")
  5. assert 'OK' == livecmd("start daq")
  6. # Simulate hard crash of pDAQ:
  7. self.toy.close()
  8.  
  9. # Lexical closure to collect complete set of log messages:
  10. def message_updater():
  11. msgs = []
  12. def update_msgs():
  13. msgs.extend(drain_queue(self.sink))
  14. def messages_received_so_far():
  15. update_msgs()
  16. return msgs
  17. return messages_received_so_far
  18.  
  19. allmsgs = message_updater()
  20.  
  21. def correct_recovery_failure_messages_generated():
  22. all = allmsgs()
  23. moni = [x["payload"] for x in all if x["cmd"] == "moni"]
  24. logs = [x["value"] for x in moni if x["varname"] == "log"]
  25. recovery_fail_msgs = filter(
  26. lambda x: "failed and did not generate any events" in x,
  27. logs)
  28. failed_configs = [re.findall("config (\S+) failed", m)[0]
  29. for m in recovery_fail_msgs]
  30. return failed_configs == (["default" for _ in range(4)] +
  31. ["alt1" for _ in range(4)])
  32.  
  33. misc.wait_until(correct_recovery_failure_messages_generated)
Add Comment
Please, Sign In to add comment