test/io_helper.rb in compass-edge-0.9.1 vs test/io_helper.rb in compass-edge-0.9.2

- old
+ new

@@ -13,7 +13,24 @@ yield $stderr.string ensure $stderr = real_stderr end + + def capture_pipe(io, options = {}) + options[:wait] = 0.25 + options[:timeout] = 1.0 + output = "" + eof_at = nil + while !eof_at || (Time.now - eof_at < options[:wait]) + if io.eof? + eof_at ||= Time.now + sleep 0.1 + else + eof_at = nil + timeout(options[:timeout]) { output << io.readpartial(1024) } + end + end + output + end end -end \ No newline at end of file +end