Subject: [bug#34217] [PATCH 11/11] gnu: Add ruby-cucumber and ruby-aruba.

From: swedebugia <[email-masked]>
Date: Wed, 30 Jan 2019 17:11:01 +0100

On 2019-01-30 13:56, Ricardo Wurmus wrote:
> 
> Hi swedebugia,
> 
>> On 2019-01-27 12:49, Christopher Baines wrote:
>>> These packages are mutually dependant, so I've put them in one commit.
>>>
>>> * gnu/packages/ruby.scm (ruby-aruba, ruby-cucumber): New variables.
> […]
>>> +(define-public ruby-aruba
>>> +  (package
>>> +    (name "ruby-aruba")
>>> +    (version "0.14.7")
>>> +    (source
>>> +     (origin
>>> +       (method url-fetch)
>>> +       (uri (rubygems-uri "aruba" version))
>>> +       (sha256
>>> +        (base32
>>> +         "0x27352n15dsyf5ak246znfawbrm502q15r4msjw3cis17jlcy1l"))))
>>> +    (build-system ruby-build-system)
>>> +    (arguments
>>> +     '(;; TODO: There are a few test failures
>>> +       ;; 357 examples, 7 failures
>>
>> I investigated this and found:
>> Failed examples:
>>
>> rspec ./spec/aruba/api_spec.rb:389 # Aruba::Api files #touch when
>> directory when exist and the mtim\
>> e should be set statically
>> rspec ./spec/aruba/api_spec.rb:388 # Aruba::Api files #touch when
>> directory when exist and the mtim\
>> e should be set statically behaves like an existing directory
>> rspec ./spec/aruba/api_spec.rb:362 # Aruba::Api files #touch when file
>> when does not exist and the \
>> mtime should be set statically
>> rspec ./spec/aruba/api_spec.rb:361 # Aruba::Api files #touch when file
>> when does not exist and the \
>> mtime should be set statically behaves like an existing file
>> rspec ./spec/aruba/matchers/command_spec.rb:165 # Command Matchers
>> #to_have_output_on_stderr when h\
>> ave output hello world on stderr
>> ave output hello world on stderr
>> rspec ./spec/aruba/matchers/command_spec.rb:128 # Command Matchers
>> #to_have_output_on_stdout when h\
>> ave output hello world on stderr
>> rspec ./spec/aruba/matchers/command_spec.rb:91 # Command Matchers
>> #to_have_output when have output \
>> hello world on stderr
> 
> What does this mean?
> 
>> The offending lines are in spec/aruba/api_spec.rb
>> beginning on line: 321, ending on 393
>> I tried creating a patch with diff for this file. I don't know if this
>> is the way others here usually create patches.
>>
>> If not please enlighten me! :)
> 
> We usually use “diff -u” to generate patches in unified diff format
> (that’s the one with plus and minus prefixes).
> 
> Your patch only disables the test.  I would rather like to know why it
> fails and then fix the problem at the root.  Have you figured out why
> they fail and how the failure can be prevented?
> 

No but I attached the full error message.

The relevant section is here:

Randomized with seed 46150
............................../tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
./tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
./tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
./tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
......................................................................................................................................F.....F.F......................................../tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
./tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
................................../tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
./tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/processes/basic_process.rb:100: 
warning: instance variable @timed_out not initialized
................../tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/runtime.rb:84: 
warning: instance variable @fixtures_directory not initialized
......../tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/lib/aruba/runtime.rb:84: 
warning: instance variable @fixtures_directory not initialized
.......FF.....FF...............................................................

Failures:

   1) Command Matchers #to_have_output_on_stdout when have output hello 
world on stderr
      Failure/Error: raise LaunchError, "It tried to start #{cmd}. " + 
e.message

      NameError:
        undefined local variable or method `cmd' for 
#<Aruba::Processes::SpawnProcess:0x0000555556f0bc10>
        Did you mean?  @cmd
      # ./lib/aruba/processes/spawn_process.rb:89:in `rescue in start'
      # ./lib/aruba/processes/spawn_process.rb:83:in `start'
      # ./lib/aruba/command.rb:69:in `start'
      # ./lib/aruba/api/command.rb:213:in `run'
      # ./spec/aruba/matchers/command_spec.rb:126:in `block (4 levels) 
in <top (required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # ChildProcess::LaunchError:
      #   No such file or directory - 
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/tmp/aruba/cmd.sh
      #   ./lib/aruba/processes/spawn_process.rb:85:in `block in start'

   2) Command Matchers #to_have_output when have output hello world on 
stderr
      Failure/Error: raise LaunchError, "It tried to start #{cmd}. " + 
e.message

      NameError:
        undefined local variable or method `cmd' for 
#<Aruba::Processes::SpawnProcess:0x00005555571159e8>
        Did you mean?  @cmd
      # ./lib/aruba/processes/spawn_process.rb:89:in `rescue in start'
      # ./lib/aruba/processes/spawn_process.rb:83:in `start'
      # ./lib/aruba/command.rb:69:in `start'
      # ./lib/aruba/api/command.rb:213:in `run'
      # ./spec/aruba/matchers/command_spec.rb:89:in `block (4 levels) in 
<top (required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # ChildProcess::LaunchError:
      #   No such file or directory - 
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/tmp/aruba/cmd.sh
      #   ./lib/aruba/processes/spawn_process.rb:85:in `block in start'

   3) Command Matchers #to_have_output_on_stderr when have output hello 
world on stderr
      Failure/Error: raise LaunchError, "It tried to start #{cmd}. " + 
e.message

      NameError:
        undefined local variable or method `cmd' for 
#<Aruba::Processes::SpawnProcess:0x0000555556efd4a8>
        Did you mean?  @cmd
      # ./lib/aruba/processes/spawn_process.rb:89:in `rescue in start'
      # ./lib/aruba/processes/spawn_process.rb:83:in `start'
      # ./lib/aruba/command.rb:69:in `start'
      # ./lib/aruba/api/command.rb:213:in `run'
      # ./spec/aruba/matchers/command_spec.rb:163:in `block (4 levels) 
in <top (required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'
      # ------------------
      # --- Caused by: ---
      # ChildProcess::LaunchError:
      #   No such file or directory - 
/tmp/guix-build-ruby-aruba-0.14.7.drv-0/gem/tmp/aruba/cmd.sh
      #   ./lib/aruba/processes/spawn_process.rb:85:in `block in start'

   4) Aruba::Api files #touch when directory when exist and the mtime 
should be set statically
      Failure/Error: let(:options) { { :mtime => Time.parse('2014-01-01 
10:00:00') } }

      NoMethodError:
        undefined method `parse' for Time:Class
      # ./spec/aruba/api_spec.rb:386:in `block (7 levels) in <top 
(required)>'
      # ./spec/aruba/api_spec.rb:381:in `block (6 levels) in <top 
(required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'

   5) Aruba::Api files #touch when directory when exist and the mtime 
should be set statically behaves like an existing directory
      Failure/Error: let(:options) { { :mtime => Time.parse('2014-01-01 
10:00:00') } }

      NoMethodError:
        undefined method `parse' for Time:Class
      Shared Example Group: "an existing directory" called from 
./spec/aruba/api_spec.rb:388
      # ./spec/aruba/api_spec.rb:386:in `block (7 levels) in <top 
(required)>'
      # ./spec/aruba/api_spec.rb:381:in `block (6 levels) in <top 
(required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'

   6) Aruba::Api files #touch when file when does not exist and the 
mtime should be set statically
      Failure/Error: let(:options) { { :mtime => Time.parse('2014-01-01 
10:00:00') } }

      NoMethodError:
        undefined method `parse' for Time:Class
      # ./spec/aruba/api_spec.rb:359:in `block (7 levels) in <top 
(required)>'
      # ./spec/aruba/api_spec.rb:333:in `block (5 levels) in <top 
(required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'

   7) Aruba::Api files #touch when file when does not exist and the 
mtime should be set statically behaves like an existing file
      Failure/Error: let(:options) { { :mtime => Time.parse('2014-01-01 
10:00:00') } }

      NoMethodError:
        undefined method `parse' for Time:Class
      Shared Example Group: "an existing file" called from 
./spec/aruba/api_spec.rb:361
      # ./spec/aruba/api_spec.rb:359:in `block (7 levels) in <top 
(required)>'
      # ./spec/aruba/api_spec.rb:333:in `block (5 levels) in <top 
(required)>'
      # ./lib/aruba/rspec.rb:22:in `block (2 levels) in <top (required)>'

I don't know ruby at all so I might not be the best qualified to 
investigate this. :/

-- 
Cheers
Swedebugia