Tests: Watchdog: Update the reset-to-sync delay

Change the config parameter used as a delay before sending the sync
packet after the device reset in watchdog and reset_reason tests. Use
'forced_reset_timeout' instead of 'program_cycle_s'.
pull/10657/head
Filip Jagodzinski 2018-11-22 20:58:13 +01:00
parent a37d03d640
commit 337b394048
3 changed files with 17 additions and 17 deletions

View File

@ -18,7 +18,7 @@ import time
from mbed_host_tests import BaseHostTest from mbed_host_tests import BaseHostTest
from mbed_host_tests.host_tests_runner.host_test_default import DefaultTestSelector from mbed_host_tests.host_tests_runner.host_test_default import DefaultTestSelector
DEFAULT_CYCLE_PERIOD = 4.0 DEFAULT_SYNC_DELAY = 4.0
MSG_VALUE_WATCHDOG_PRESENT = 'wdg_present' MSG_VALUE_WATCHDOG_PRESENT = 'wdg_present'
MSG_VALUE_DUMMY = '0' MSG_VALUE_DUMMY = '0'
@ -68,14 +68,14 @@ class ResetReasonTest(BaseHostTest):
super(ResetReasonTest, self).__init__() super(ResetReasonTest, self).__init__()
self.device_has_watchdog = None self.device_has_watchdog = None
self.raw_reset_reasons = set() self.raw_reset_reasons = set()
self.program_cycle_s = DEFAULT_CYCLE_PERIOD self.sync_delay = DEFAULT_SYNC_DELAY
self.test_steps_sequence = self.test_steps() self.test_steps_sequence = self.test_steps()
# Advance the coroutine to it's first yield statement. # Advance the coroutine to it's first yield statement.
self.test_steps_sequence.send(None) self.test_steps_sequence.send(None)
def setup(self): def setup(self):
cycle_s = self.get_config_item('program_cycle_s') sync_delay = self.get_config_item('forced_reset_timeout')
self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD self.sync_delay = sync_delay if sync_delay is not None else DEFAULT_SYNC_DELAY
self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready) self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready)
self.register_callback(MSG_KEY_RESET_REASON_RAW, self.cb_reset_reason_raw) self.register_callback(MSG_KEY_RESET_REASON_RAW, self.cb_reset_reason_raw)
self.register_callback(MSG_KEY_RESET_REASON, self.cb_reset_reason) self.register_callback(MSG_KEY_RESET_REASON, self.cb_reset_reason)
@ -134,7 +134,7 @@ class ResetReasonTest(BaseHostTest):
# Request a NVIC_SystemReset() call. # Request a NVIC_SystemReset() call.
self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_NVIC) self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_NVIC)
__ignored_reset_ack = yield __ignored_reset_ack = yield
time.sleep(self.program_cycle_s) time.sleep(self.sync_delay)
self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY) self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY)
reset_reason = yield reset_reason = yield
raise_if_different(RESET_REASONS['SOFTWARE'], reset_reason, 'Wrong reset reason. ') raise_if_different(RESET_REASONS['SOFTWARE'], reset_reason, 'Wrong reset reason. ')
@ -154,7 +154,7 @@ class ResetReasonTest(BaseHostTest):
else: else:
self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_WATCHDOG) self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_WATCHDOG)
__ignored_reset_ack = yield __ignored_reset_ack = yield
time.sleep(self.program_cycle_s) time.sleep(self.sync_delay)
self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY) self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY)
reset_reason = yield reset_reason = yield
raise_if_different(RESET_REASONS['WATCHDOG'], reset_reason, 'Wrong reset reason. ') raise_if_different(RESET_REASONS['WATCHDOG'], reset_reason, 'Wrong reset reason. ')

View File

@ -17,7 +17,7 @@ limitations under the License.
import time import time
from mbed_host_tests import BaseHostTest from mbed_host_tests import BaseHostTest
DEFAULT_CYCLE_PERIOD = 4.0 DEFAULT_SYNC_DELAY = 4.0
MSG_VALUE_DUMMY = '0' MSG_VALUE_DUMMY = '0'
MSG_KEY_DEVICE_READY = 'ready' MSG_KEY_DEVICE_READY = 'ready'
@ -47,11 +47,11 @@ class SyncOnReset(BaseHostTest):
def __init__(self): def __init__(self):
super(SyncOnReset, self).__init__() super(SyncOnReset, self).__init__()
self.test_case_num = 0 self.test_case_num = 0
self.program_cycle_s = DEFAULT_CYCLE_PERIOD self.sync_delay = DEFAULT_SYNC_DELAY
def setup(self): def setup(self):
cycle_s = self.get_config_item('program_cycle_s') sync_delay = self.get_config_item('forced_reset_timeout')
self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD self.sync_delay = sync_delay if sync_delay is not None else DEFAULT_SYNC_DELAY
self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready) self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready)
self.register_callback(MSG_KEY_DEVICE_RESET, self.cb_device_reset) self.register_callback(MSG_KEY_DEVICE_RESET, self.cb_device_reset)
@ -69,5 +69,5 @@ class SyncOnReset(BaseHostTest):
except ValueError: except ValueError:
pass pass
self.test_case_num += 1 self.test_case_num += 1
time.sleep(self.program_cycle_s) time.sleep(self.sync_delay)
self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY) self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY)

View File

@ -20,7 +20,7 @@ from mbed_host_tests import BaseHostTest
TestCaseData = collections.namedtuple('TestCaseData', ['index', 'data_to_send']) TestCaseData = collections.namedtuple('TestCaseData', ['index', 'data_to_send'])
DEFAULT_CYCLE_PERIOD = 4.0 DEFAULT_SYNC_DELAY = 4.0
MAX_HB_PERIOD = 2.5 # [s] Max expected heartbeat period. MAX_HB_PERIOD = 2.5 # [s] Max expected heartbeat period.
MSG_VALUE_DUMMY = '0' MSG_VALUE_DUMMY = '0'
@ -49,7 +49,7 @@ class WatchdogReset(BaseHostTest):
super(WatchdogReset, self).__init__() super(WatchdogReset, self).__init__()
self.current_case = TestCaseData(0, CASE_DATA_INVALID) self.current_case = TestCaseData(0, CASE_DATA_INVALID)
self.__handshake_timer = None self.__handshake_timer = None
self.program_cycle_s = DEFAULT_CYCLE_PERIOD self.sync_delay = DEFAULT_SYNC_DELAY
self.drop_heartbeat_messages = True self.drop_heartbeat_messages = True
self.hb_timestamps_us = [] self.hb_timestamps_us = []
@ -93,8 +93,8 @@ class WatchdogReset(BaseHostTest):
self.current_case = TestCaseData(self.current_case.index, dev_data) self.current_case = TestCaseData(self.current_case.index, dev_data)
def setup(self): def setup(self):
cycle_s = self.get_config_item('program_cycle_s') sync_delay = self.get_config_item('forced_reset_timeout')
self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD self.sync_delay = sync_delay if sync_delay is not None else DEFAULT_SYNC_DELAY
self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready) self.register_callback(MSG_KEY_DEVICE_READY, self.cb_device_ready)
self.register_callback(MSG_KEY_DEVICE_RESET, self.cb_device_reset) self.register_callback(MSG_KEY_DEVICE_RESET, self.cb_device_reset)
self.register_callback(MSG_KEY_HEARTBEAT, self.cb_heartbeat) self.register_callback(MSG_KEY_HEARTBEAT, self.cb_heartbeat)
@ -123,7 +123,7 @@ class WatchdogReset(BaseHostTest):
self.handshake_timer_cancel() self.handshake_timer_cancel()
case_num, dev_reset_delay_ms = (int(i, base=16) for i in value.split(',')) case_num, dev_reset_delay_ms = (int(i, base=16) for i in value.split(','))
self.current_case = TestCaseData(case_num, CASE_DATA_PHASE2_OK) self.current_case = TestCaseData(case_num, CASE_DATA_PHASE2_OK)
self.handshake_timer_start(self.program_cycle_s + dev_reset_delay_ms / 1000.0) self.handshake_timer_start(self.sync_delay + dev_reset_delay_ms / 1000.0)
def cb_heartbeat(self, key, value, timestamp): def cb_heartbeat(self, key, value, timestamp):
"""Save the timestamp of a heartbeat message. """Save the timestamp of a heartbeat message.
@ -141,5 +141,5 @@ class WatchdogReset(BaseHostTest):
self.current_case = TestCaseData(case_num, CASE_DATA_INVALID) self.current_case = TestCaseData(case_num, CASE_DATA_INVALID)
self.hb_timestamps_us.append(timestamp_us) self.hb_timestamps_us.append(timestamp_us)
self.handshake_timer_start( self.handshake_timer_start(
seconds=(MAX_HB_PERIOD + self.program_cycle_s), seconds=(MAX_HB_PERIOD + self.sync_delay),
pre_sync_fun=self.heartbeat_timeout_handler) pre_sync_fun=self.heartbeat_timeout_handler)