diff options
| author | Jamis Buck <jamis@37signals.com> | 2007-01-13 18:25:29 +0000 |
|---|---|---|
| committer | Jamis Buck <jamis@37signals.com> | 2007-01-13 18:25:29 +0000 |
| commit | d606f9ceac86759c806801a51914f4d88ad88156 (patch) | |
| tree | 4a329e3d84fa315f67c896fa2794e8b4559822de | |
| parent | 1e0e10c1ce8011c523e4d09dd64bde763c5a46e8 (diff) | |
| download | third_party-sqlite3-ruby-d606f9ceac86759c806801a51914f4d88ad88156.tar.gz third_party-sqlite3-ruby-d606f9ceac86759c806801a51914f4d88ad88156.tar.xz third_party-sqlite3-ruby-d606f9ceac86759c806801a51914f4d88ad88156.zip | |
db.transaction should properly catch an exception (closes #3981)
| -rw-r--r-- | lib/sqlite3/database.rb | 2 | ||||
| -rw-r--r-- | test/mocks.rb | 3 | ||||
| -rw-r--r-- | test/tc_integration.rb | 5 |
3 files changed, 6 insertions, 4 deletions
diff --git a/lib/sqlite3/database.rb b/lib/sqlite3/database.rb index f126004..3be3109 100644 --- a/lib/sqlite3/database.rb +++ b/lib/sqlite3/database.rb @@ -591,7 +591,7 @@ module SQLite3 abort = false begin yield self - rescue Exception + rescue ::Object abort = true raise ensure diff --git a/test/mocks.rb b/test/mocks.rb index 6843e52..4a1d753 100644 --- a/test/mocks.rb +++ b/test/mocks.rb @@ -30,6 +30,9 @@ # ============================================================================= #++ +require 'rubygems' +gem 'flexmock', '< 0.1.0' + require 'flexmock' class FlexMockWithArgs < FlexMock diff --git a/test/tc_integration.rb b/test/tc_integration.rb index 864fe85..74b18c8 100644 --- a/test/tc_integration.rb +++ b/test/tc_integration.rb @@ -7,9 +7,8 @@ require 'sqlite3/database' class String def to_utf16(terminate=false) - result = "" - self.split(//).map { |c| c[0] }.pack("s*") - result + (terminate ? "\0\0" : "") + self.split(//).map { |c| c[0] }.pack("v*") + + (terminate ? "\0\0" : "") end def from_utf16 |
