Size: a a a

Saint P Ruby Community

2021 February 04

IN

Ilya Nikolaevich in Saint P Ruby Community
девопсов надо спрашивать. Я первый раз слышу, что кому-то надо протестировать работу приложения на уровне системы
источник

IN

Ilya Nikolaevich in Saint P Ruby Community
это чтобы это протестить какой ENV должен быть? Целую OS поднимать в и запускать в ней приложение?
источник

w

wi11son in Saint P Ruby Community
pid = spawn("tar xf ruby-2.0.0-p195.tar.bz2")
Process.wait pid
источник

w

wi11son in Saint P Ruby Community
ща попробую так
источник

IN

Ilya Nikolaevich in Saint P Ruby Community
судя по всему об изоляции тесткейса и повторимости нет речи?
источник

w

wi11son in Saint P Ruby Community
почему же?
источник

w

wi11son in Saint P Ruby Community
всегда одинакого должно себя вести
источник

NB

Nikita Bulai in Saint P Ruby Community
люблю эти разговоры за "кошерные" подходы" и идеальные системы и тесты :D
источник

NB

Nikita Bulai in Saint P Ruby Community
говорить - говорят все, а вот как доходит до дела ...
источник

CM

Cucumba Morozov in Saint P Ruby Community
wi11son
Ребзя, а как протестить SignalException?
я вот чего-то не придумал хорошего способа протестить тот же интеррапт

разве что сделать штуку, которая будет вечно ждать ввод, и успеть её прибить
источник

w

wi11son in Saint P Ruby Community
ну просто слип воткнуть , в лупе,  процесс спавнуть, сейчас тестирую
источник

VD

Vla Dem in Saint P Ruby Community
источник

VD

Vla Dem in Saint P Ruby Community
источник

VD

Vla Dem in Saint P Ruby Community
wi11son
проблема в том, что приложение не должно закончиь своё выполнение до того как на него пришлется сигнал
Тут без наличия в самом приложении возможности «зависнуть» никак (например, ожидание ввода пользователя); в случае Руби, конечно, можно попробовать извне пропатчить (чтобы в коде приложения не было чего-то, что нужно только для тестов).
источник

w

wi11son in Saint P Ruby Community
то, что нужно
источник
2021 February 05

w

wi11son in Saint P Ruby Community
@grey_green А PTY ты используешь потому что system или бэктики дороже? или именно потому что по другому статус не получить?
источник

w

wi11son in Saint P Ruby Community
а, потому что ты не делаешь настроек на STDIN и STDOUT, ты используешь их дефолтные... и поэтому чрез PTY ты можешь читать потоки
источник

VD

Vla Dem in Saint P Ruby Community
Наверное) помню только, что до этого я перепробовал другие варианты, но чего-то в них не хватало
источник

w

wi11son in Saint P Ruby Community
24:     pid = Process.spawn("foo generate app blog")
   25:
   26:     Process.kill('SIGKILL', pid)
   27:     _, status = Process.wait2(pid)
   28:
=> 29:     require 'pry'; binding.pry
   30:
   31:     expect().to eq(130)
   32:   end
   33: end

warning: setting prompt with help of Pry.config.prompt = [proc {}, proc {}] is deprecated. Use Pry::Prompt API instead
2.7.2 (#<RSpec::ExampleGroups::SignalTrap:0x00007f98020581c8>):0 > status
=> #<Process::Status: pid 32721 SIGKILL (signal 9)>
2.7.2 (#<RSpec::ExampleGroups::SignalTrap:0x00007f98020581c8>):0 > status >> 8
=> 0
источник

w

wi11son in Saint P Ruby Community
я не врубаюсь, почему у меня статус-код нулевой..., может это из-за мака
источник