-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Description
I've got an intermittent failure running my tests. When this occurs guard explodes in glorious fashion with the attached stack trace.
This is happening on a Mac Book Pro:
Darwin res-mppi6 15.6.0 Darwin Kernel Version 15.6.0: Mon Jan 9 23:07:29 PST 2017; root:xnu-3248.60.11.2.1~1/RELEASE_X86_64 x86_64
Under the following ruby:
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-darwin15]
This looks like it's due to Kernel.system being able to return true, false, or nil and the runner only checking for nil per the docs. It looks like the exception in run is trying to catch ENOENT but that returns false as well.
You can see this in action here:
[1] pry(main)> Kernel.system('echo $((1 / 1))')
1
=> true
[2] pry(main)> Kernel.system('echo $((1 / 0))')
sh: 1 / 0: division by 0 (error token is "0")
=> false
[3] pry(main)> Kernel.system('cat file_dun_exist')
cat: file_dun_exist: No such file or directory
=> false
Stack trace:
14:01:06 - ERROR - Guard::Minitest failed to achieve its <run_on_modifications>, exception was:
> [#] NoMethodError: undefined method `zero?' for nil:NilClass
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-minitest-2.4.6/lib/guard/minitest/runner.rb:66:in `run'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-minitest-2.4.6/lib/guard/minitest/runner.rb:85:in `run_on_modifications'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-minitest-2.4.6/lib/guard/minitest.rb:37:in `block in run_on_modifications'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-minitest-2.4.6/lib/guard/minitest.rb:51:in `throw_on_failed_tests'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-minitest-2.4.6/lib/guard/minitest.rb:37:in `run_on_modifications'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:83:in `block (2 levels) in _supervise'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/ui/config.rb:62:in `block in with_progname'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/lumberjack-1.0.11/lib/lumberjack/logger.rb:270:in `push_thread_local_value'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/lumberjack-1.0.11/lib/lumberjack/logger.rb:231:in `set_progname'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/ui/config.rb:61:in `with_progname'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:81:in `block in _supervise'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:79:in `catch'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:79:in `_supervise'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:61:in `block (3 levels) in run_on_changes'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:56:in `each'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:56:in `block (2 levels) in run_on_changes'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:121:in `block (2 levels) in _run_group_plugins'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:119:in `each'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:119:in `block in _run_group_plugins'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:118:in `catch'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:118:in `_run_group_plugins'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:54:in `block in run_on_changes'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:53:in `each'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/runner.rb:53:in `run_on_changes'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/internals/queue.rb:24:in `process'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/commander.rb:43:in `start'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/cli/environments/valid.rb:16:in `start_guard'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/cli.rb:122:in `start'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/aruba_adapter.rb:32:in `execute'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/lib/guard/aruba_adapter.rb:19:in `execute!'
> [#] /Users/rickr/.rvm/gems/ruby-2.2.5@project/gems/guard-2.14.1/bin/_guard-core:11:in `<main>'
Metadata
Metadata
Assignees
Labels
No labels