diff options
-rw-r--r-- | lib/yahns/tmpio.rb | 1 | ||||
-rw-r--r-- | test/test_tmpio.rb | 20 |
2 files changed, 21 insertions, 0 deletions
diff --git a/lib/yahns/tmpio.rb b/lib/yahns/tmpio.rb index f0ddd2f..d25d5e8 100644 --- a/lib/yahns/tmpio.rb +++ b/lib/yahns/tmpio.rb @@ -7,6 +7,7 @@ require 'tmpdir' # well with unlinked files. This one is much shorter, easier # to understand, and slightly faster (no delegation). class Yahns::TmpIO < File # :nodoc: + include Kgio::PipeMethods # creates and returns a new File object. The File is unlinked # immediately, switched to binary mode, and userspace output diff --git a/test/test_tmpio.rb b/test/test_tmpio.rb new file mode 100644 index 0000000..79c9f32 --- /dev/null +++ b/test/test_tmpio.rb @@ -0,0 +1,20 @@ +# -*- encoding: binary -*- +# Copyright (C) 2009-2015 all contributors <yahns-public@yhbt.net> +# License: GPLv3 or later (https://www.gnu.org/licenses/gpl-2.0.txt) +require_relative 'helper' + +class TestTmpIO < Testcase + def test_writev + a, b = UNIXSocket.pair + a.extend Kgio::PipeMethods + tmpio = Yahns::TmpIO.new(Dir.tmpdir) + ary = [ "hello\n".freeze, "world\n".freeze ].freeze + tmpio.kgio_trywritev(ary) + a.trysendfile(tmpio, 0, 12) + assert_equal "hello\nworld\n", b.read(12) + ensure + b.close + a.close + tmpio.close + end +end |