Hello community,
here is the log from the commit of package rubygem-rspec-mocks for
openSUSE:Factory checked in at 2015-07-20 11:19:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rspec-mocks (Old)
and /work/SRC/openSUSE:Factory/.rubygem-rspec-mocks.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rspec-mocks"
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rspec-mocks/rubygem-rspec-mocks.changes
2015-07-05 17:57:17.000000000 +0200
+++
/work/SRC/openSUSE:Factory/.rubygem-rspec-mocks.new/rubygem-rspec-mocks.changes
2015-07-20 11:19:52.000000000 +0200
@@ -1,0 +2,14 @@
+Thu Jul 16 04:32:38 UTC 2015 - [email protected]
+
+- updated to version 3.3.2
+ see installed Changelog.md
+
+ ### 3.3.2 / 2015-07-15
+ [Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.3.1...v3.3.2)
+
+ Bug Fixes:
+
+ * Prevent thread deadlock errors during proxy creation (e.g. when using
+ `before_verifying_doubles` callbacks). (Jon Rowe, #980, #979)
+
+-------------------------------------------------------------------
Old:
----
rspec-mocks-3.3.1.gem
New:
----
rspec-mocks-3.3.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-rspec-mocks.spec ++++++
--- /var/tmp/diff_new_pack.iAu14w/_old 2015-07-20 11:19:53.000000000 +0200
+++ /var/tmp/diff_new_pack.iAu14w/_new 2015-07-20 11:19:53.000000000 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-rspec-mocks
-Version: 3.3.1
+Version: 3.3.2
Release: 0
%define mod_name rspec-mocks
%define mod_full_name %{mod_name}-%{version}
++++++ rspec-mocks-3.3.1.gem -> rspec-mocks-3.3.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Changelog.md new/Changelog.md
--- old/Changelog.md 2015-06-20 06:40:49.000000000 +0200
+++ new/Changelog.md 2015-07-15 19:12:26.000000000 +0200
@@ -1,3 +1,11 @@
+### 3.3.2 / 2015-07-15
+[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.3.1...v3.3.2)
+
+Bug Fixes:
+
+* Prevent thread deadlock errors during proxy creation (e.g. when using
+ `before_verifying_doubles` callbacks). (Jon Rowe, #980, #979)
+
### 3.3.1 / 2015-06-19
[Full Changelog](http://github.com/rspec/rspec-mocks/compare/v3.3.0...v3.3.1)
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
Files old/checksums.yaml.gz.sig and new/checksums.yaml.gz.sig differ
Files old/data.tar.gz.sig and new/data.tar.gz.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/rspec/mocks/mutex.rb new/lib/rspec/mocks/mutex.rb
--- old/lib/rspec/mocks/mutex.rb 1970-01-01 01:00:00.000000000 +0100
+++ new/lib/rspec/mocks/mutex.rb 2015-07-15 19:12:26.000000000 +0200
@@ -0,0 +1,73 @@
+module RSpec
+ module Mocks
+ # On 1.8.7, it's in the stdlib.
+ # We don't want to load the stdlib, b/c this is a test tool, and can affect
+ # the test environment, causing tests to pass where they should fail.
+ #
+ # So we're transcribing/modifying it from
+ # https://github.com/ruby/ruby/blob/v1_8_7_374/lib/thread.rb#L56
+ # Some methods we don't need are deleted. Anything I don't
+ # understand (there's quite a bit, actually) is left in.
+ #
+ # Some formating changes are made to appease the robot overlord:
+ # https://travis-ci.org/rspec/rspec-core/jobs/54410874
+ # @private
+ class Mutex
+ def initialize
+ @waiting = []
+ @locked = false
+ @waiting.taint
+ taint
+ end
+
+ # @private
+ def lock
+ while Thread.critical = true && @locked
+ @waiting.push Thread.current
+ Thread.stop
+ end
+ @locked = true
+ Thread.critical = false
+ self
+ end
+
+ # @private
+ def unlock
+ return unless @locked
+ Thread.critical = true
+ @locked = false
+ wakeup_and_run_waiting_thread
+ self
+ end
+
+ # @private
+ def synchronize
+ lock
+ begin
+ yield
+ ensure
+ unlock
+ end
+ end
+
+ private
+
+ def wakeup_and_run_waiting_thread
+ begin
+ t = @waiting.shift
+ t.wakeup if t
+ rescue ThreadError
+ retry
+ end
+ Thread.critical = false
+ begin
+ t.run if t
+ rescue ThreadError
+ :noop
+ end
+ end
+
+ # Avoid warnings for library wide checks spec
+ end unless defined?(::RSpec::Mocks::Mutex) || defined?(::Mutex)
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/rspec/mocks/reentrant_mutex.rb
new/lib/rspec/mocks/reentrant_mutex.rb
--- old/lib/rspec/mocks/reentrant_mutex.rb 1970-01-01 01:00:00.000000000
+0100
+++ new/lib/rspec/mocks/reentrant_mutex.rb 2015-07-15 19:12:26.000000000
+0200
@@ -0,0 +1,53 @@
+module RSpec
+ module Mocks
+ # Allows a thread to lock out other threads from a critical section of
code,
+ # while allowing the thread with the lock to reenter that section.
+ #
+ # Based on Monitor as of 2.2 -
+ #
https://github.com/ruby/ruby/blob/eb7ddaa3a47bf48045d26c72eb0f263a53524ebc/lib/monitor.rb#L9
+ #
+ # Depends on Mutex, but Mutex is only available as part of core since
1.9.1:
+ # exists - http://ruby-doc.org/core-1.9.1/Mutex.html
+ # dne - http://ruby-doc.org/core-1.9.0/Mutex.html
+ #
+ # @private
+ class ReentrantMutex
+ def initialize
+ @owner = nil
+ @count = 0
+ @mutex = Mutex.new
+ end
+
+ def synchronize
+ enter
+ yield
+ ensure
+ exit
+ end
+
+ private
+
+ def enter
+ @mutex.lock if @owner != Thread.current
+ @owner = Thread.current
+ @count += 1
+ end
+
+ def exit
+ @count -= 1
+ return unless @count == 0
+ @owner = nil
+ @mutex.unlock
+ end
+ end
+
+ if defined? ::Mutex
+ # On 1.9 and up, this is in core, so we just use the real one
+ Mutex = ::Mutex
+ else # For 1.8.7
+ # :nocov:
+ RSpec::Support.require_rspec_mocks "mutex"
+ # :nocov:
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/rspec/mocks/space.rb new/lib/rspec/mocks/space.rb
--- old/lib/rspec/mocks/space.rb 2015-06-20 06:40:50.000000000 +0200
+++ new/lib/rspec/mocks/space.rb 2015-07-15 19:12:26.000000000 +0200
@@ -1,3 +1,5 @@
+RSpec::Support.require_rspec_mocks 'reentrant_mutex'
+
module RSpec
module Mocks
# @private
@@ -142,18 +144,8 @@
private
- # We don't want to depend on the stdlib ourselves, but if the user is
- # using threads then a Mutex will be available to us. If not, we don't
- # need to synchronize anyway.
def new_mutex
- defined?(::Mutex) ? ::Mutex.new : FakeMutex
- end
-
- # @private
- module FakeMutex
- def self.synchronize
- yield
- end
+ Mocks::ReentrantMutex.new
end
def proxy_not_found_for(id, object)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/rspec/mocks/version.rb
new/lib/rspec/mocks/version.rb
--- old/lib/rspec/mocks/version.rb 2015-06-20 06:40:50.000000000 +0200
+++ new/lib/rspec/mocks/version.rb 2015-07-15 19:12:27.000000000 +0200
@@ -3,7 +3,7 @@
# Version information for RSpec mocks.
module Version
# Version of RSpec mocks currently in use in SemVer format.
- STRING = '3.3.1'
+ STRING = '3.3.2'
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2015-06-20 06:40:49.000000000 +0200
+++ new/metadata 2015-07-15 19:12:26.000000000 +0200
@@ -1,7 +1,7 @@
--- !ruby/object:Gem::Specification
name: rspec-mocks
version: !ruby/object:Gem::Version
- version: 3.3.1
+ version: 3.3.2
platform: ruby
authors:
- Steven Baker
@@ -45,7 +45,7 @@
ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
F3MdtaDehhjC
-----END CERTIFICATE-----
-date: 2015-06-20 00:00:00.000000000 Z
+date: 2015-07-15 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: rspec-support
@@ -137,6 +137,20 @@
- - "~>"
- !ruby/object:Gem::Version
version: '5.2'
+- !ruby/object:Gem::Dependency
+ name: thread_order
+ requirement: !ruby/object:Gem::Requirement
+ requirements:
+ - - "~>"
+ - !ruby/object:Gem::Version
+ version: 1.1.0
+ type: :development
+ prerelease: false
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - "~>"
+ - !ruby/object:Gem::Version
+ version: 1.1.0
description: RSpec's 'test double' framework, with support for stubbing and
mocking
email: [email protected]
executables: []
@@ -176,9 +190,11 @@
- lib/rspec/mocks/method_double.rb
- lib/rspec/mocks/method_reference.rb
- lib/rspec/mocks/mutate_const.rb
+- lib/rspec/mocks/mutex.rb
- lib/rspec/mocks/object_reference.rb
- lib/rspec/mocks/order_group.rb
- lib/rspec/mocks/proxy.rb
+- lib/rspec/mocks/reentrant_mutex.rb
- lib/rspec/mocks/space.rb
- lib/rspec/mocks/standalone.rb
- lib/rspec/mocks/syntax.rb
@@ -212,6 +228,6 @@
rubygems_version: 2.2.2
signing_key:
specification_version: 4
-summary: rspec-mocks-3.3.1
+summary: rspec-mocks-3.3.2
test_files: []
has_rdoc:
Files old/metadata.gz.sig and new/metadata.gz.sig differ