Sha256: ee5906adfd508837c7160cf47684547aadde0cf571cf16e87d8bb1e840864535
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true RSpec.describe TTY::Command, '#run' do it "times out infinite process without input or output" do infinite = fixtures_path('infinite_no_output') output = StringIO.new cmd = TTY::Command.new(output: output) expect { cmd.run("ruby #{infinite}", timeout: 0.1) }.to raise_error(TTY::Command::TimeoutExceeded) end it "times out an infite process with constant output" do infinite = fixtures_path('infinite_output') output = StringIO.new cmd = TTY::Command.new(output: output, timeout: 0.1) expect { cmd.run("ruby #{infinite}") }.to raise_error(TTY::Command::TimeoutExceeded) end it "times out an infinite process with constant input data" do cli = fixtures_path('infinite_input') output = StringIO.new cmd = TTY::Command.new(output: output) range = 1..Float::INFINITY infinite_input = range.lazy.map { |x| "hello" }.first(100).join("\n") expect { cmd.run("ruby #{cli}", input: infinite_input, timeout: 0.1) }.to raise_error(TTY::Command::TimeoutExceeded) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tty-command-0.9.0 | spec/unit/timeout_spec.rb |