You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Mingjie Lai (Commented) (JIRA)" <ji...@apache.org> on 2011/10/11 08:12:30 UTC

[jira] [Commented] (HBASE-4555) TestShell seems passed, but actually errors seen in test output file

    [ https://issues.apache.org/jira/browse/HBASE-4555?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13124729#comment-13124729 ] 

Mingjie Lai commented on HBASE-4555:
------------------------------------

HBase shell unit cases are in ruby. Ruby unit test runner Test::Unit::AutoRunner.run only prints unit tests assertion failures to console by default. So it actually swallows all the assertion errors from ruby, and junit cannot notice any shell test failure. 

I checked the source code of Test::Unit::AutoRunner.run, and it returns a boolean to indicate test result successfully or not. The attached patch just checks the return value and throw a runtime exception so TestShell can get to know there is something wrong by test errors. The drawback is that we won't see detailed failure info unless we check the output file. 

{code}
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.apache.hadoop.hbase.client.TestShell
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 52.802 sec <<< FAILURE!

Results :

Tests in error: 
  testRunShellTests(org.apache.hadoop.hbase.client.TestShell): (RuntimeError) Shell unit tests failed. Check output file for details.

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
{code}

The perfect solution would be that ruby unit tests can pass test results to junit, so junit can display failures nicely.

After the patch, we will see TestShell failures we've never seen. And they need to be fixed. 


                
> TestShell seems passed, but actually errors seen in test output file
> --------------------------------------------------------------------
>
>                 Key: HBASE-4555
>                 URL: https://issues.apache.org/jira/browse/HBASE-4555
>             Project: HBase
>          Issue Type: Test
>          Components: test
>            Reporter: Mingjie Lai
>         Attachments: 4555.diff
>
>
> When I was making test cases for 4554, I saw a weird issue that TestShell seems to pass, but actually I saw error messages in the output file.
> {code}
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running org.apache.hadoop.hbase.client.TestShell
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 39.252 sec
> Results :
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
> {code}
> Error messages in org.apache.hadoop.hbase.client.TestShell-output.txt:
> {code}
> ...
>   6) Error:
> test_alter_should_support_shortcut_DELETE_alter_specs(Hbase::AdminAlterTableTest):
> ArgumentError: There should be at least one argument but the table name
>     /home/mlai/git/hbase-private/src/test/ruby/../../main/ruby/hbase/admin.rb:307:in `alter'
>     ./src/test/ruby/hbase/admin_test.rb:271:in `test_alter_should_support_shortcut_DELETE_alter_specs'
>     org/jruby/RubyProc.java:268:in `call'
>     org/jruby/RubyKernel.java:2038:in `send'
>     org/jruby/RubyArray.java:1572:in `each'
>     org/jruby/RubyArray.java:1572:in `each'
>     
>   7) Error:
> test_split_should_work(Hbase::AdminMethodsTest):
> ArgumentError: wrong number of arguments (1 for 2)
>     ./src/test/ruby/hbase/admin_test.rb:99:in `test_split_should_work'
>     org/jruby/RubyProc.java:268:in `call'
>     org/jruby/RubyKernel.java:2038:in `send'
>     org/jruby/RubyArray.java:1572:in `each'
>     org/jruby/RubyArray.java:1572:in `each'
>     
> 192 tests, 259 assertions, 1 failures, 6 errors
> Done with tests! Shutting down the cluster...
> 2011-10-07 16:46:14,760 INFO  [main] hbase.HBaseTestingUtility(551): Shutting down minicluster
> 2011-10-07 16:46:14,760 DEBUG [main] util.JVMClusterUtil(214): Shutting down HBase Cluster
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira