amarao (amarao_san) wrote,
amarao
amarao_san

Клёвый баг

Тест для сервера, что он "поднялся" после ребута. Задача: проверить, что сервер действительно прошёл ребут.

Код:
@pytest.mark.timeout(timeout=600)
def test_reboot(ssh_backend, wait_for_port):
    '''
        This check assures instance can be accessed via SSH
        after reboot, and that reboot has actually happened.
    '''
    def get_uptime():
        uptime_line = ssh_backend.Command.check_output('cat /proc/uptime')
        uptime = float(uptime_line.split(' ')[0])
        return uptime

    old_uptime = get_uptime()
    ssh_backend.Command.run('sudo nohup reboot &')
    time.sleep(20)  ## rather arbitrary number
    wait_for_port(timeout=500)
    time.sleep(3)
    new_uptime = get_uptime()
    assert new_uptime < old_uptime

И у меня оно сработало с таким assert'ом:

E assert 75.23 < 73.35

Багу я поправил, но забавность бага от этого меньше не стала.
Subscribe

  • План действий

    AAA при логине ведёт себя по разному в зависимости от того A это или AAAA.

  • Админский гольф

    Вам выдали шелл на сервер, на котором кто-то удалил все симлинки (т.е. файлы типа "симлинк"). Ваша задача починить сервер. Починенным сервер…

  • продолжая leetcode

    Первый раз я ощутил Силу. Задача - roman numerals, с обещанием, что на входе нет мусора. pub fn roman_to_int(s: String) -> i32 { let mut acc =…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments

  • План действий

    AAA при логине ведёт себя по разному в зависимости от того A это или AAAA.

  • Админский гольф

    Вам выдали шелл на сервер, на котором кто-то удалил все симлинки (т.е. файлы типа "симлинк"). Ваша задача починить сервер. Починенным сервер…

  • продолжая leetcode

    Первый раз я ощутил Силу. Задача - roman numerals, с обещанием, что на входе нет мусора. pub fn roman_to_int(s: String) -> i32 { let mut acc =…