Skip to content

Hang instead of failure when checking wrong exit status? #17

@thinkerbot

Description

@thinkerbot

For the new test case:

def test_n_option_raises_error_for_invalid_input
  assert_script %{
    $ series geometric -n abc    # [0]
    invalid value for -n: "abc"
  }
end

Got this:

$  rake test
ruby -w -e ARGV.dup.each {|test| load test} test/series/geometric_series_test.rb test/series/utils_test.rb test/series_exe_test.rb test/series_test.rb
Run options: 

# Running tests:

..........E............

Finished tests in 2.778338s, 8.2783 tests/s, 16.9166 assertions/s.

  1) Error:
test_n_option_raises_error_for_invalid_input(SeriesExeTest):
ShellTest::ShellMethods::Agent::ReadError: timeout waiting for /\$\ \z/ after 0.00s

/bin/sh (elapsed: 0.01s max: 1.00s)
=========================================================
$ series geometric -n abc    

=========================================================

    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/agent.rb:64:in `expect'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:227:in `block (2 levels) in run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:226:in `each'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:226:in `block in run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:207:in `block in spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:27:in `block in spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:25:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:25:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:182:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:224:in `run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:30:in `_pty'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:38:in `_assert_script'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:34:in `assert_script'
    test/series_exe_test.rb:69:in `test_n_option_raises_error_for_invalid_input'

23 tests, 47 assertions, 0 failures, 1 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -w -e ARGV.dup.each {|test| load test...]

Tasks: TOP => test
(See full trace by running task with --trace)
$  rake test
ruby -w -e ARGV.dup.each {|test| load test} test/series/geometric_series_test.rb test/series/utils_test.rb test/series_exe_test.rb test/series_test.rb
Run options: 

# Running tests:

..........E............

Finished tests in 2.761963s, 8.3274 tests/s, 17.0169 assertions/s.

  1) Error:
test_n_option_raises_error_for_invalid_input(SeriesExeTest):
ShellTest::ShellMethods::Agent::ReadError: timeout waiting for /\$\ \z/ after 0.00s

/bin/sh (elapsed: 0.01s max: 1.00s)
=========================================================
$ series geometric -n abc    

=========================================================

    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/agent.rb:64:in `expect'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:227:in `block (2 levels) in run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:226:in `each'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:226:in `block in run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:207:in `block in spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:27:in `block in spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:25:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/utils.rb:25:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:182:in `spawn'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods/session.rb:224:in `run'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:30:in `_pty'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:38:in `_assert_script'
    /Users/simonchiang/.rvm/gems/ruby-1.9.3-p194/gems/shell_test-0.5.0/lib/shell_test/shell_methods.rb:34:in `assert_script'
    test/series_exe_test.rb:69:in `test_n_option_raises_error_for_invalid_input'

23 tests, 47 assertions, 0 failures, 1 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -w -e ARGV.dup.each {|test| load test...]

Tasks: TOP => test
(See full trace by running task with --trace)
$  series geometric -n abc
invalid value for -n: "abc"
$  echo $?
1
$  echo $?
0
$  git log --oneline -n 1
026a005 Organize exe tests by option
$  ruby --version
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions