~ruther/guix-local

402b03e620fc14eda06b4c80121ecbf627c0740d — Ludovic Courtès 9 years ago aef81a8
gnu: ruby-concurrent: Work around test failure on ARM.

* gnu/packages/patches/ruby-concurrent-test-arm.patch: New file.
* gnu/packages/ruby.scm (ruby-concurrent)[source](patches): Add it.
* gnu/local.mk (dist_patch_DATA): Add it.
3 files changed, 40 insertions(+), 2 deletions(-)

M gnu/local.mk
A gnu/packages/patches/ruby-concurrent-test-arm.patch
M gnu/packages/ruby.scm
M gnu/local.mk => gnu/local.mk +1 -0
@@ 913,6 913,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/rpm-CVE-2014-8118.patch			\
  %D%/packages/patches/rsem-makefile.patch			\
  %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch	\
  %D%/packages/patches/ruby-concurrent-test-arm.patch		\
  %D%/packages/patches/ruby-puma-ignore-broken-test.patch       \
  %D%/packages/patches/ruby-rack-ignore-failing-test.patch      \
  %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\

A gnu/packages/patches/ruby-concurrent-test-arm.patch => gnu/packages/patches/ruby-concurrent-test-arm.patch +36 -0
@@ 0,0 1,36 @@
Work around two test suite failures on ARM:

  https://github.com/ruby-concurrency/concurrent-ruby/issues/547

The regexps here assume addresses like "0x1234" but on ARM (32-bit)
we get something like "0x-7db1e810" (notice the dash).

diff --git a/spec/concurrent/edge/future_spec.rb b/spec/concurrent/edge/future_spec.rb
index a48fd29..4344d7e 100644
--- b/spec/concurrent/edge/future_spec.rb
+++ a/spec/concurrent/edge/future_spec.rb
@@ -322,9 +322,9 @@
       four  = three.delay.then(&:succ)
 
       # meaningful to_s and inspect defined for Future and Promise
-      expect(head.to_s).to match /<#Concurrent::Edge::Future:0x[\da-f]+ pending>/
+      expect(head.to_s).to match /<#Concurrent::Edge::Future:0x-?[\da-f]+ pending>/
       expect(head.inspect).to(
-          match(/<#Concurrent::Edge::Future:0x[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x[\da-f]+ pending>\]>/))
+          match(/<#Concurrent::Edge::Future:0x-?[\da-f]+ pending blocks:\[<#Concurrent::Edge::ThenPromise:0x-?[\da-f]+ pending>\]>/))
 
       # evaluates only up to three, four is left unevaluated
       expect(three.value!).to eq 3
diff --git a/spec/concurrent/map_spec.rb b/spec/concurrent/map_spec.rb
index 13fd5b7..1c82ebe 100644
--- b/spec/concurrent/map_spec.rb
+++ a/spec/concurrent/map_spec.rb
@@ -827,7 +827,7 @@
     end
 
     it '#inspect' do
-      regexp = /\A#<Concurrent::Map:0x[0-9a-f]+ entries=[0-9]+ default_proc=.*>\Z/i
+      regexp = /\A#<Concurrent::Map:0x-?[0-9a-f]+ entries=[0-9]+ default_proc=.*>\Z/i
       expect(Concurrent::Map.new.inspect).to match(regexp)
       expect((Concurrent::Map.new {}).inspect).to match(regexp)
       map = Concurrent::Map.new

M gnu/packages/ruby.scm => gnu/packages/ruby.scm +3 -2
@@ 1,6 1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>


@@ 4102,7 4102,8 @@ call.")
         "1x3g2admp14ykwfxidsicqbhlfsnxh9wyc806np4i15hws4if1d8"))
       ;; Exclude failing test reported at
       ;; https://github.com/ruby-concurrency/concurrent-ruby/issues/534
       (patches (search-patches "ruby-concurrent-ignore-broken-test.patch"))))
       (patches (search-patches "ruby-concurrent-ignore-broken-test.patch"
                                "ruby-concurrent-test-arm.patch"))))
    (build-system ruby-build-system)
    (arguments
     `(#:test-target "spec"