From 5a3fdc3f95023d0cfe93f93d9a089b8d8858986a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20K=C3=BCnsem=C3=B6ller?= <jkuensem@physik.uni-bielefeld.de> Date: Mon, 9 Apr 2018 11:36:12 +0000 Subject: [PATCH] Task SW-111: signal is enabled for some tile tests as well on request by Henri. Status check is now less strict and expects ok-status to be one of the lines of the command output. --- LCU/checkhardware/check_hardware.py | 8 +++++--- LCU/checkhardware/config/FR606-check_hardware.conf | 6 +++++- LCU/checkhardware/test/t_check_hardware.py | 12 ++++++------ LCU/checkhardware/test/test-check_hardware.conf | 8 ++++++-- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/LCU/checkhardware/check_hardware.py b/LCU/checkhardware/check_hardware.py index 200dd16a223..abc31864fb6 100755 --- a/LCU/checkhardware/check_hardware.py +++ b/LCU/checkhardware/check_hardware.py @@ -414,9 +414,10 @@ def wait_for_test_signal_status(status_cmd, status, timeout=30): for _ in range(timeout): out = check_output(status_cmd, shell=True) out = out.strip() - if out == status: - logger.info("Status ok.") - return status + for line in out.split('\n'): + if line.strip() == status: + logger.info("Status ok.") + return status else: logger.info('Wrong status: %s != %s. Try again...'% (out, status)) time.sleep(1) @@ -670,6 +671,7 @@ def main(): # if 'RCU%d' % mode in args or 'S%d' % mode in args: if 'S%d' % mode in args: + safely_start_test_signal_from_ParameterSet(tile_settings) hba.check_rf_power(mode=mode, parset=tile_settings) runtime = (time.time() - runstart) diff --git a/LCU/checkhardware/config/FR606-check_hardware.conf b/LCU/checkhardware/config/FR606-check_hardware.conf index 194709f2021..f1a1ca5777d 100755 --- a/LCU/checkhardware/config/FR606-check_hardware.conf +++ b/LCU/checkhardware/config/FR606-check_hardware.conf @@ -147,6 +147,10 @@ oscillation.min-peak-pwr= 6.0 oscillation.passband= 1:511 spurious.min-peak-pwr= 3.0 spurious.passband= 1:511 +testsignal.start-cmd= echo set config 56.0 -10 | nc ncu 8093 +testsignal.stop-cmd= echo bye | nc ncu 8093 +testsignal.status-cmd= echo get config | nc ncu 8093 +testsignal.ok-status= Frequency: 56 MHz Power level: -10 dBm RF: ON [rcumode.5.element] rf.subbands= 105 @@ -164,7 +168,7 @@ spurious.passband= 1:511 testsignal.start-cmd= echo set config 56.0 -10 | nc ncu 8093 testsignal.stop-cmd= echo bye | nc ncu 8093 testsignal.status-cmd= echo get config | nc ncu 8093 -testsignal.ok-status= 56.0 -10 +testsignal.ok-status= Frequency: 56 MHz Power level: -10 dBm RF: ON [rcumode.6.tile] short.mean-pwr.min= 55.0 diff --git a/LCU/checkhardware/test/t_check_hardware.py b/LCU/checkhardware/test/t_check_hardware.py index e5aec15c8d8..3acf60b1706 100644 --- a/LCU/checkhardware/test/t_check_hardware.py +++ b/LCU/checkhardware/test/t_check_hardware.py @@ -61,7 +61,7 @@ class TestCheckHardware(unittest.TestCase): check_hardware.start_watchdog_daemon.assert_called_with(os.getpid(), stop_cmd) def test_safely_start_test_signal_from_ParameterSet(self): - """ Verify that the provided command is executed and handlers are registered correctly""" + """ Verify that the commands from ParameterSet are passed on to safely_start_test_signal""" start_cmd = 'echo set config 56.0 -10 | nc ncu 8093' stop_cmd = 'echo bye | nc ncu 8093' @@ -113,7 +113,7 @@ class TestCheckHardware(unittest.TestCase): # test value status_cmd = 'mockme' - responses = ['ne', 'ja', 'ne'] + responses = ['ne', 'garbage\n ja \n moregarbage', 'ne'] waitfor = 'ja' with patch.object(check_hardware, 'check_output', MagicMock(side_effect=responses)): @@ -123,7 +123,7 @@ class TestCheckHardware(unittest.TestCase): # assert correct behavior check_hardware.check_output.called_with(status_cmd, shell=True) # command is executed - self.assertEqual(check_hardware.check_output.call_count, responses.index(waitfor) + 1) + self.assertEqual(check_hardware.check_output.call_count, 2) def test_register_signal_handlers_stops_test_signal_on_POSIX_signal(self): """ Verify that the provided command is executed and os._exit is called with correct return code """ @@ -224,8 +224,8 @@ class TestCheckHardware(unittest.TestCase): # test_values expected_start_cmd = "echo set config 56.0 -10 | nc ncu 8093" expected_stop_cmd = "echo bye | nc ncu 8093" - expected_status_cmd = "echo 56.0 -10" - expected_ok_status = "56.0 -10" + expected_status_cmd = "echo 'Frequency: 56 MHz Power level: -10 dBm RF: ON'" + expected_ok_status = "Frequency: 56 MHz Power level: -10 dBm RF: ON" # read settings f = os.environ.get('srcdir')+'/test-check_hardware.conf' @@ -275,7 +275,7 @@ class TestCheckHardware(unittest.TestCase): # -TST (test mode) # -e5: (element test in mode 5) # Names optimized for disk space - testargs = ["check_hardware.py", '-TST', '-e5'] + testargs = ["check_hardware.py", '-TST', '-s5'] with patch.object(sys, 'argv', testargs): # trigger action check_hardware.main() # Warning: Something acts as a fork bomb when mocks are not setup properly! diff --git a/LCU/checkhardware/test/test-check_hardware.conf b/LCU/checkhardware/test/test-check_hardware.conf index c3428c1dab7..4b7c43ad06d 100644 --- a/LCU/checkhardware/test/test-check_hardware.conf +++ b/LCU/checkhardware/test/test-check_hardware.conf @@ -147,6 +147,10 @@ oscillation.min-peak-pwr= 6.0 oscillation.passband= 1:511 spurious.min-peak-pwr= 3.0 spurious.passband= 1:511 +testsignal.start-cmd= echo set config 56.0 -10 | nc ncu 8093 +testsignal.stop-cmd= echo bye | nc ncu 8093 +testsignal.status-cmd= echo 'Frequency: 56 MHz Power level: -10 dBm RF: ON' +testsignal.ok-status= Frequency: 56 MHz Power level: -10 dBm RF: ON [rcumode.5.element] rf.subbands= 105 @@ -163,8 +167,8 @@ spurious.min-peak-pwr= 3.0 spurious.passband= 1:511 testsignal.start-cmd= echo set config 56.0 -10 | nc ncu 8093 testsignal.stop-cmd= echo bye | nc ncu 8093 -testsignal.status-cmd= echo 56.0 -10 -testsignal.ok-status= 56.0 -10 +testsignal.status-cmd= echo 'Frequency: 56 MHz Power level: -10 dBm RF: ON' +testsignal.ok-status= Frequency: 56 MHz Power level: -10 dBm RF: ON [rcumode.6.tile] short.mean-pwr.min= 55.0 -- GitLab