0

popen3テスト目的で、を含むものを要求する Ruby スクリプトを開こうとしています。

プロセスの STDIN に入力して出力を検査できるようにする必要があります。これまでのところ、私はこれを持っています:

require 'open3'
def run(executable, opts = {})
  Signal.trap('CLD') do
    puts 'STDIN:', @stdout.readlines
    # @stderr.rewind
    puts 'STDERR:', @stderr.readlines
    # got EOF, trying to rewind gives me 'Errno::ESPIPE: Illegal seek'

    [@stdin, @stdout, @stderr].each &:close
  end

  @stdin, @stdout, @stderr, @thread = Open3.popen3(executable)
  @status = @thread.value
end

何日も努力して、私の脳は溶けています。

4

1 に答える 1