mirror of https://github.com/ARMmbed/mbed-os.git
				
				
				
			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
							parent
							
								
									a37d03d640
								
							
						
					
					
						commit
						337b394048
					
				| 
						 | 
				
			
			@ -18,7 +18,7 @@ import time
 | 
			
		|||
from mbed_host_tests import BaseHostTest
 | 
			
		||||
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_DUMMY = '0'
 | 
			
		||||
| 
						 | 
				
			
			@ -68,14 +68,14 @@ class ResetReasonTest(BaseHostTest):
 | 
			
		|||
        super(ResetReasonTest, self).__init__()
 | 
			
		||||
        self.device_has_watchdog = None
 | 
			
		||||
        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()
 | 
			
		||||
        # Advance the coroutine to it's first yield statement.
 | 
			
		||||
        self.test_steps_sequence.send(None)
 | 
			
		||||
 | 
			
		||||
    def setup(self):
 | 
			
		||||
        cycle_s = self.get_config_item('program_cycle_s')
 | 
			
		||||
        self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD
 | 
			
		||||
        sync_delay = self.get_config_item('forced_reset_timeout')
 | 
			
		||||
        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_RESET_REASON_RAW, self.cb_reset_reason_raw)
 | 
			
		||||
        self.register_callback(MSG_KEY_RESET_REASON, self.cb_reset_reason)
 | 
			
		||||
| 
						 | 
				
			
			@ -134,7 +134,7 @@ class ResetReasonTest(BaseHostTest):
 | 
			
		|||
        # Request a NVIC_SystemReset() call.
 | 
			
		||||
        self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_NVIC)
 | 
			
		||||
        __ignored_reset_ack = yield
 | 
			
		||||
        time.sleep(self.program_cycle_s)
 | 
			
		||||
        time.sleep(self.sync_delay)
 | 
			
		||||
        self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY)
 | 
			
		||||
        reset_reason = yield
 | 
			
		||||
        raise_if_different(RESET_REASONS['SOFTWARE'], reset_reason, 'Wrong reset reason. ')
 | 
			
		||||
| 
						 | 
				
			
			@ -154,7 +154,7 @@ class ResetReasonTest(BaseHostTest):
 | 
			
		|||
        else:
 | 
			
		||||
            self.send_kv(MSG_KEY_DEVICE_RESET, MSG_VALUE_DEVICE_RESET_WATCHDOG)
 | 
			
		||||
            __ignored_reset_ack = yield
 | 
			
		||||
            time.sleep(self.program_cycle_s)
 | 
			
		||||
            time.sleep(self.sync_delay)
 | 
			
		||||
            self.send_kv(MSG_KEY_SYNC, MSG_VALUE_DUMMY)
 | 
			
		||||
            reset_reason = yield
 | 
			
		||||
            raise_if_different(RESET_REASONS['WATCHDOG'], reset_reason, 'Wrong reset reason. ')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,7 +17,7 @@ limitations under the License.
 | 
			
		|||
import time
 | 
			
		||||
from mbed_host_tests import BaseHostTest
 | 
			
		||||
 | 
			
		||||
DEFAULT_CYCLE_PERIOD = 4.0
 | 
			
		||||
DEFAULT_SYNC_DELAY = 4.0
 | 
			
		||||
 | 
			
		||||
MSG_VALUE_DUMMY = '0'
 | 
			
		||||
MSG_KEY_DEVICE_READY = 'ready'
 | 
			
		||||
| 
						 | 
				
			
			@ -47,11 +47,11 @@ class SyncOnReset(BaseHostTest):
 | 
			
		|||
    def __init__(self):
 | 
			
		||||
        super(SyncOnReset, self).__init__()
 | 
			
		||||
        self.test_case_num = 0
 | 
			
		||||
        self.program_cycle_s = DEFAULT_CYCLE_PERIOD
 | 
			
		||||
        self.sync_delay = DEFAULT_SYNC_DELAY
 | 
			
		||||
 | 
			
		||||
    def setup(self):
 | 
			
		||||
        cycle_s = self.get_config_item('program_cycle_s')
 | 
			
		||||
        self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD
 | 
			
		||||
        sync_delay = self.get_config_item('forced_reset_timeout')
 | 
			
		||||
        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_RESET, self.cb_device_reset)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -69,5 +69,5 @@ class SyncOnReset(BaseHostTest):
 | 
			
		|||
        except ValueError:
 | 
			
		||||
            pass
 | 
			
		||||
        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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ from mbed_host_tests import BaseHostTest
 | 
			
		|||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
MSG_VALUE_DUMMY = '0'
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ class WatchdogReset(BaseHostTest):
 | 
			
		|||
        super(WatchdogReset, self).__init__()
 | 
			
		||||
        self.current_case = TestCaseData(0, CASE_DATA_INVALID)
 | 
			
		||||
        self.__handshake_timer = None
 | 
			
		||||
        self.program_cycle_s = DEFAULT_CYCLE_PERIOD
 | 
			
		||||
        self.sync_delay = DEFAULT_SYNC_DELAY
 | 
			
		||||
        self.drop_heartbeat_messages = True
 | 
			
		||||
        self.hb_timestamps_us = []
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -93,8 +93,8 @@ class WatchdogReset(BaseHostTest):
 | 
			
		|||
        self.current_case = TestCaseData(self.current_case.index, dev_data)
 | 
			
		||||
 | 
			
		||||
    def setup(self):
 | 
			
		||||
        cycle_s = self.get_config_item('program_cycle_s')
 | 
			
		||||
        self.program_cycle_s = cycle_s if cycle_s is not None else DEFAULT_CYCLE_PERIOD
 | 
			
		||||
        sync_delay = self.get_config_item('forced_reset_timeout')
 | 
			
		||||
        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_RESET, self.cb_device_reset)
 | 
			
		||||
        self.register_callback(MSG_KEY_HEARTBEAT, self.cb_heartbeat)
 | 
			
		||||
| 
						 | 
				
			
			@ -123,7 +123,7 @@ class WatchdogReset(BaseHostTest):
 | 
			
		|||
        self.handshake_timer_cancel()
 | 
			
		||||
        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.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):
 | 
			
		||||
        """Save the timestamp of a heartbeat message.
 | 
			
		||||
| 
						 | 
				
			
			@ -141,5 +141,5 @@ class WatchdogReset(BaseHostTest):
 | 
			
		|||
        self.current_case = TestCaseData(case_num, CASE_DATA_INVALID)
 | 
			
		||||
        self.hb_timestamps_us.append(timestamp_us)
 | 
			
		||||
        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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue