You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2011/09/19 19:09:08 UTC

[jira] [Created] (HBASE-4438) Speed the build

Speed the build
---------------

                 Key: HBASE-4438
                 URL: https://issues.apache.org/jira/browse/HBASE-4438
             Project: HBase
          Issue Type: Task
            Reporter: stack


We're up to 2hrs 15mins which is kinda crazy.  Akash started a thread over in dev on fixing it up: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch

Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Jesse Yates (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108379#comment-13108379 ] 

Jesse Yates commented on HBASE-4438:
------------------------------------

And by "here" I mean HBASE-4336.

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Mikhail Bautin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13112185#comment-13112185 ] 

Mikhail Bautin commented on HBASE-4438:
---------------------------------------

If it is possible to annotate integration tests differently from unit tests without moving/renaming a lot of files, that would be a much better approach. We have a lot of patches queued up for open-sourcing, and moving a lot of files will make it very difficult to integrate them into trunk.

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Jesse Yates (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108322#comment-13108322 ] 

Jesse Yates commented on HBASE-4438:
------------------------------------

Been thinking about the issue of how we want to handle breaking out the integration tests. 

*Option 1*
we can have all the tests (integration and unit) in a single source folder (hbase/src/test/java/*) which then uses standard conventions for naming to ensure things are run correctly - ie at the right time
 * Unit tests would remain in the standard format ( \*\*/\*Test.java, \*\*/Test\*.java, **/*TestCase.java)
 * integration tests would move to a similar format ( \*\*/\*IT.java, \*\*/IT\*.java, **/*ITCase.java)

 we can move integration tests to their own sub-module of hbase. This would be a little more of a radical change. 

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "stack (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108373#comment-13108373 ] 

stack commented on HBASE-4438:
------------------------------

Regards 'Option 2', the break-up of hbase into modules is going to happen in TRUNK for other reasons so you can assume submodules a non-obstacle -- for TRUNK; modules will not happen for 0.92 branch.

On integration tests, going by Todd definition, we need to do those too.  On "long-running functional tests", yes would be grand to break them apart.  I'd be fine with renaming long tests with *LongRunningFunctionalTest suffix or some such so we could distinguish them before a SUREFIRE-329 shows up (On SUREFIRE-329, Todd, you get around).

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108341#comment-13108341 ] 

Todd Lipcon commented on HBASE-4438:
------------------------------------

My preference is to use JUnit category annotations - with SUREFIRE-329 we can easily separate long tests from short. Moving tests to separate subdirs seems a little painful to me...

I agree that true integration/system tests should go to a separate dir - but those should be able to be run against a real cluster without ever accessing daemons directly. We have many minicluster tests that inject failures, etc, and to call them integration tests is a bit misleading. Rather they're just "long functional tests".

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13107987#comment-13107987 ] 

ramkrishna.s.vasudevan commented on HBASE-4438:
-----------------------------------------------

+1 for this JIRA

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Jesse Yates (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108347#comment-13108347 ] 

Jesse Yates commented on HBASE-4438:
------------------------------------

I agree that those kind of tests still count as functional. When you are injecting faults into it, I would also worry about whats going to happen on the backend, when you are reusing the minicluster for multiple tests.

It would be cool if we can then break out short and long running functional tests and run them as desired.

However, as Doug commented on the thread though, the mini cluster is used in a lot of cases to do true functional testing (spin up mini cluster w/ a single node, do some stuff, then shut it down). I feel like there should be a fair number of non-daemon-interacting 'unit' tests which really shouldn't be considered unit tests. 

I don't have any experience tying in annotations to the build system, but I would be interested to see how that would all work.

I feel like it still makes sense to break out integration tests, we just need to be careful about how we do it. What do you think?

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Jesse Yates (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13112816#comment-13112816 ] 

Jesse Yates commented on HBASE-4438:
------------------------------------

Right now its not too hard to get the integration tests named differently to run in a separate phase (basically add in the failsafe plugin and rename them all to **/IT*.java, or whatever regex we want). However with the split proposed in HBASE-4336, everything is going to move around anyways, so we might as well just get it done all together. 

Granted there is going to be some serious pain when we break out into modules.

Adding ticket (HBASE-4454) so we can just do the integration tests with naming, for the moment.

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Todd Lipcon (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108377#comment-13108377 ] 

Todd Lipcon commented on HBASE-4438:
------------------------------------

Highly recommend this article: http://googletesting.blogspot.com/2009/07/software-testing-categorization.html

I'll keep campaigning to get SUREFIRE-329 in a release :)

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4438) Speed the build test phase

Posted by "stack (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-4438:
-------------------------

    Component/s: test
    Description: 
We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch

Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.



  was:
We're up to 2hrs 15mins which is kinda crazy.  Akash started a thread over in dev on fixing it up: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch

Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.



     Issue Type: Umbrella  (was: Task)
        Summary: Speed the build test phase  (was: Speed the build)

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4438) Speed the build test phase

Posted by "Jesse Yates (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13108331#comment-13108331 ] 

Jesse Yates commented on HBASE-4438:
------------------------------------

(sorry, miss click - here are the rest of the details)

*Option 2*
We move refactor hbase into a top level pom w/ several sub-packages. This helps to break out different concerns. It will also be good later if we want to break out core into a couple different pieces. Right now this would just entail a slight change in structure:
{noformat}
hbase/
   /hbase-core
   /hbase-it
{noformat}

where hbase-it would have the integration tests, utils for the tests, and unit tests of those utils. It would be a 'full' package. Again we stick to the above naming convention (or specify our own) for integration tests

*Option 3*
Similar to the above, but we only make hbase-it a submodule of hbase (leave the structure the same). This still remains a full featured package. The directory structure looks like this:
{noformat}
hbase/
  /src/main/java
  ...
  /hbase-it
    /src/main/java
    ...
{noformat}

Right now, I can't figure out how to get the maven-failsafe-plugin to read from a directory other than /src/test/java, but if I can figure it out, that would be best when combined with Option 1 - keeps same structure, breaks out integration tests. 

Given that, I am more inclined to go with Option 2 or 3. These helps break out concerns into different packages, rather than munging them all together. 

Working on a patch now for #3  - its the simplest to break out. #2 wouldn't be terrible, but would require more delicacy. #1 is simple and is a matter of minutes, if we want to go that route.


What does everyone think? 

> Speed the build test phase
> --------------------------
>
>                 Key: HBASE-4438
>                 URL: https://issues.apache.org/jira/browse/HBASE-4438
>             Project: HBase
>          Issue Type: Umbrella
>          Components: test
>            Reporter: stack
>
> We're up to 2hrs 15mins running tests on jenkins which is kinda crazy.  Akash started a thread over in dev on fixing this: http://search-hadoop.com/m/cZjDH1ykGIA/Running+UnitTests+before+submitting+a+patch&subj=Running+UnitTests+before+submitting+a+patch
> Jessie brings up http://maven.apache.org/plugins/maven-failsafe-plugin/ which looks like something we need to start using; having a tiering of our testing would make sense to me.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira