コード例 #1
0
    def watchdog_not_running(self, platform_api_conn):
        ''' Fixture that automatically runs on each test case and
        verifies that watchdog is not running before the test begins
        and disables it after the test ends'''

        assert not watchdog.is_armed(platform_api_conn)

        try:
            yield
        finally:
            watchdog.disarm(platform_api_conn)
コード例 #2
0
ファイル: test_watchdog.py プロジェクト: cls1234/sonic-mgmt
    def test_arm_disarm_states(self, duthost, localhost, platform_api_conn, conf):
        ''' arm watchdog with a valid timeout value, verify it is in armed state,
        disarm watchdog and verify it is in disarmed state
        '''
        watchdog_timeout = conf['valid_timeout']
        actual_timeout = watchdog.arm(platform_api_conn, watchdog_timeout)

        if self.expect(actual_timeout is not None, "Watchdog.arm is not supported"):
            if self.expect(isinstance(actual_timeout, int), "actual_timeout appears incorrect"):
                if self.expect(actual_timeout != -1, "Failed to arm the watchdog"):
                    self.expect(actual_timeout >= watchdog_timeout, "Actual watchdog timeout {} seconds appears wrong, should be equal or greater than {} seconds".format(actual_timeout, watchdog_timeout))

        watchdog_status = watchdog.is_armed(platform_api_conn)
        if self.expect(watchdog_status is not None, "Failed to retrieve watchdog status"):
            self.expect(watchdog_status is True, "Watchdog is not armed.")

        remaining_time = watchdog.get_remaining_time(platform_api_conn)

        if self.expect(remaining_time is not None, "Failed to get the remaining time of watchdog"):
            if self.expect(isinstance(remaining_time, int), "remaining_time appears incorrect"):
                self.expect(remaining_time <= actual_timeout, "Watchdog remaining_time {} seconds appears wrong compared to watchdog timeout {} seocnds".format(remaining_time, actual_timeout))

        watchdog_status = watchdog.disarm(platform_api_conn)
        if self.expect(watchdog_status is not None, "Watchdog.disarm is not supported"):
            self.expect(watchdog_status is True, "Failed to disarm the watchdog")

        watchdog_status = watchdog.is_armed(platform_api_conn)
        if self.expect(watchdog_status is not None, "Failed to check the watchdog status"):
            self.expect(watchdog_status is False, "Watchdog is not disarmed")

        remaining_time = watchdog.get_remaining_time(platform_api_conn)
        if self.expect(remaining_time is not None, "Failed to get the remaining time of watchdog"):
            self.expect(remaining_time is -1, "Watchdog remaining_time {} seconds is wrong for disarmed state".format(remaining_time))

        res = localhost.wait_for(host=duthost.hostname, port=22, state="stopped", delay=5, timeout=watchdog_timeout + TIMEOUT_DEVIATION, module_ignore_errors=True)

        self.expect('Timeout' in res.get('msg', ''), "unexpected disconnection from dut")
        self.assert_expectations()