[前][次][番号順一覧][スレッド一覧]

ruby-changes:19732

From: yugui <ko1@a...>
Date: Sun, 29 May 2011 08:32:59 +0900 (JST)
Subject: [ruby-changes:19732] yugui:r31777 (ruby_1_9_2): merges r31113 from trunk into ruby_1_9_2.

yugui	2011-05-29 08:32:46 +0900 (Sun, 29 May 2011)

  New Revision: 31777

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31777

  Log:
    merges r31113 from trunk into ruby_1_9_2.
    --
    * ext/openssl/lib/openssl/buffering.rb (module OpenSSL): #flush should
      not change sync mode on exception.
    * test/openssl/test_buffering.rb: added

  Added files:
    branches/ruby_1_9_2/test/openssl/test_buffering.rb
  Modified files:
    branches/ruby_1_9_2/ChangeLog
    branches/ruby_1_9_2/ext/openssl/lib/openssl/buffering.rb
    branches/ruby_1_9_2/version.h

Index: ruby_1_9_2/ChangeLog
===================================================================
--- ruby_1_9_2/ChangeLog	(revision 31776)
+++ ruby_1_9_2/ChangeLog	(revision 31777)
@@ -1,3 +1,9 @@
+Wed Mar 16 15:06:21 2011  Eric Hodel  <drbrain@s...>
+
+	* ext/openssl/lib/openssl/buffering.rb (module OpenSSL): #flush should
+	  not change sync mode on exception.
+	* test/openssl/test_buffering.rb: added
+
 Sun Mar 13 16:07:58 2011  Shota Fukumori  <sorah@t...>
 
 	* lib/pstore.rb: Fix don't raise "nested transaction" when thread_safe
Index: ruby_1_9_2/ext/openssl/lib/openssl/buffering.rb
===================================================================
--- ruby_1_9_2/ext/openssl/lib/openssl/buffering.rb	(revision 31776)
+++ ruby_1_9_2/ext/openssl/lib/openssl/buffering.rb	(revision 31777)
@@ -328,6 +328,8 @@
     osync = @sync
     @sync = true
     do_write ""
+    return self
+  ensure
     @sync = osync
   end
 
Index: ruby_1_9_2/version.h
===================================================================
--- ruby_1_9_2/version.h	(revision 31776)
+++ ruby_1_9_2/version.h	(revision 31777)
@@ -1,5 +1,5 @@
 #define RUBY_VERSION "1.9.2"
-#define RUBY_PATCHLEVEL 215
+#define RUBY_PATCHLEVEL 216
 #define RUBY_VERSION_MAJOR 1
 #define RUBY_VERSION_MINOR 9
 #define RUBY_VERSION_TEENY 1
Index: ruby_1_9_2/test/openssl/test_buffering.rb
===================================================================
--- ruby_1_9_2/test/openssl/test_buffering.rb	(revision 0)
+++ ruby_1_9_2/test/openssl/test_buffering.rb	(revision 31777)
@@ -0,0 +1,66 @@
+require_relative 'utils'
+require 'stringio'
+require 'minitest/unit'
+
+class OpenSSL::TestBuffering < MiniTest::Unit::TestCase
+
+  class IO
+    include OpenSSL::Buffering
+
+    attr_accessor :sync
+
+    def initialize
+      @io = StringIO.new
+
+      super
+
+      @sync = false
+    end
+
+    def string
+      @io.string
+    end
+
+    def sysread *a
+      @io.sysread *a
+    end
+
+    def syswrite *a
+      @io.syswrite *a
+    end
+  end
+
+  def setup
+    @io = IO.new
+  end
+
+  def test_flush
+    @io.write 'a'
+
+    refute @io.sync
+    assert_empty @io.string
+
+    assert_equal @io, @io.flush
+
+    refute @io.sync
+    assert_equal 'a', @io.string
+  end
+
+  def test_flush_error
+    @io.write 'a'
+
+    refute @io.sync
+    assert_empty @io.string
+
+    def @io.syswrite *a
+      raise SystemCallError, 'fail'
+    end
+
+    assert_raises SystemCallError do
+      @io.flush
+    end
+
+    refute @io.sync, 'sync must not change'
+  end
+
+end if defined?(OpenSSL)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]