You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Fargier Stephane (JIRA)" <ji...@codehaus.org> on 2012/10/31 15:01:13 UTC

[jira] (SUREFIRE-918) Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'

Fargier Stephane created SUREFIRE-918:
-----------------------------------------

             Summary: Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'
                 Key: SUREFIRE-918
                 URL: https://jira.codehaus.org/browse/SUREFIRE-918
             Project: Maven Surefire
          Issue Type: Bug
          Components: Maven Failsafe Plugin
    Affects Versions: 2.12.4
         Environment: Windows 7 64 bits
Ubuntu 11.10 64 bits
            Reporter: Fargier Stephane
         Attachments: failsafe-timeout.zip

In a project we use the failsafe plugin for our ITs.
The option 'forkedProcessTimeoutInSeconds' is used to have a time limit for the test execution.
{code}
<configuration>
	<forkedProcessTimeoutInSeconds>3</forkedProcessTimeoutInSeconds>
</configuration>
{code}

We also have goals registered in the post-integration-phase for environment clean-up.

When the tests are in timeout, the maven execution is stopped and the post-integration-test phase is not executed, leaving our environment dirty. The post-integration-test phase should be executed after timeout the same way it is executed after failed tests.


Attached is a simple project illustrating the issue:
* a JUnit test that runs forever
* a goal is registered in the post-integration phase
* the timeout is set on the project

If you run it, you will see the post-integration-phase is not executed:
{code}
[INFO] --- maven-failsafe-plugin:2.12.4:integration-test (integration-test) @ failsave.timeout.example ---
[INFO] Failsafe report directory: /home/sfargier/Téléchargements/failsafe-timeout/target/failsafe-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running TestRunsForeverITCase

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.468s
[INFO] Finished at: Wed Oct 31 14:20:58 CET 2012
[INFO] Final Memory: 9M/490M
[INFO] ------------------------------------------------------------------------
{code}


As a side-note, if we set the forkMode option to 'always', then the post-integration-test is executed even if the timeout expires. But there are some Java processes for the tests (the one running surefire-booter-*.jar) that are not killed. There seems to be an already opened issue for that (http://jira.codehaus.org/browse/SUREFIRE-773).


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

       

[jira] (SUREFIRE-918) Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'

Posted by "Kristian Rosenvold (JIRA)" <ji...@codehaus.org>.
    [ https://jira.codehaus.org/browse/SUREFIRE-918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=313950#comment-313950 ] 

Kristian Rosenvold commented on SUREFIRE-918:
---------------------------------------------

SUREFIRE-920 probably fixes the part about "no failure"
                
> Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-918
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-918
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Failsafe Plugin
>    Affects Versions: 2.12.4
>         Environment: Windows 7 64 bits
> Ubuntu 11.10 64 bits
>            Reporter: Fargier Stephane
>         Attachments: failsafe-timeout.zip
>
>
> In a project we use the failsafe plugin for our ITs.
> The option 'forkedProcessTimeoutInSeconds' is used to have a time limit for the test execution.
> {code}
> <configuration>
> 	<forkedProcessTimeoutInSeconds>3</forkedProcessTimeoutInSeconds>
> </configuration>
> {code}
> We also have goals registered in the post-integration-phase for environment clean-up.
> When the tests are in timeout, the maven execution is stopped and the post-integration-test phase is not executed, leaving our environment dirty. The post-integration-test phase should be executed after timeout the same way it is executed after failed tests.
> Attached is a simple project illustrating the issue:
> * a JUnit test that runs forever
> * a goal is registered in the post-integration phase
> * the timeout is set on the project
> If you run it, you will see the post-integration-phase is not executed:
> {code}
> [INFO] --- maven-failsafe-plugin:2.12.4:integration-test (integration-test) @ failsave.timeout.example ---
> [INFO] Failsafe report directory: /home/sfargier/Téléchargements/failsafe-timeout/target/failsafe-reports
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running TestRunsForeverITCase
> Results :
> Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 4.468s
> [INFO] Finished at: Wed Oct 31 14:20:58 CET 2012
> [INFO] Final Memory: 9M/490M
> [INFO] ------------------------------------------------------------------------
> {code}
> As a side-note, if we set the forkMode option to 'always', then the post-integration-test is executed even if the timeout expires. But there are some Java processes for the tests (the one running surefire-booter-*.jar) that are not killed. There seems to be an already opened issue for that (http://jira.codehaus.org/browse/SUREFIRE-773).

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

       

[jira] (SUREFIRE-918) Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'

Posted by "Kristian Rosenvold (JIRA)" <ji...@codehaus.org>.
     [ https://jira.codehaus.org/browse/SUREFIRE-918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Rosenvold closed SUREFIRE-918.
---------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.13
         Assignee: Kristian Rosenvold

Fixed with the error handling cleanup in failsafe
                
> Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-918
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-918
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Failsafe Plugin
>    Affects Versions: 2.12.4
>         Environment: Windows 7 64 bits
> Ubuntu 11.10 64 bits
>            Reporter: Fargier Stephane
>            Assignee: Kristian Rosenvold
>             Fix For: 2.13
>
>         Attachments: failsafe-timeout.zip
>
>
> In a project we use the failsafe plugin for our ITs.
> The option 'forkedProcessTimeoutInSeconds' is used to have a time limit for the test execution.
> {code}
> <configuration>
> 	<forkedProcessTimeoutInSeconds>3</forkedProcessTimeoutInSeconds>
> </configuration>
> {code}
> We also have goals registered in the post-integration-phase for environment clean-up.
> When the tests are in timeout, the maven execution is stopped and the post-integration-test phase is not executed, leaving our environment dirty. The post-integration-test phase should be executed after timeout the same way it is executed after failed tests.
> Attached is a simple project illustrating the issue:
> * a JUnit test that runs forever
> * a goal is registered in the post-integration phase
> * the timeout is set on the project
> If you run it, you will see the post-integration-phase is not executed:
> {code}
> [INFO] --- maven-failsafe-plugin:2.12.4:integration-test (integration-test) @ failsave.timeout.example ---
> [INFO] Failsafe report directory: /home/sfargier/Téléchargements/failsafe-timeout/target/failsafe-reports
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running TestRunsForeverITCase
> Results :
> Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 4.468s
> [INFO] Finished at: Wed Oct 31 14:20:58 CET 2012
> [INFO] Final Memory: 9M/490M
> [INFO] ------------------------------------------------------------------------
> {code}
> As a side-note, if we set the forkMode option to 'always', then the post-integration-test is executed even if the timeout expires. But there are some Java processes for the tests (the one running surefire-booter-*.jar) that are not killed. There seems to be an already opened issue for that (http://jira.codehaus.org/browse/SUREFIRE-773).

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

       

[jira] (SUREFIRE-918) Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'

Posted by "Olivier Lamy (JIRA)" <ji...@codehaus.org>.
    [ https://jira.codehaus.org/browse/SUREFIRE-918?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=313940#comment-313940 ] 

Olivier Lamy commented on SUREFIRE-918:
---------------------------------------

interesting case. As there is no failure and the forked vm is still running (at least on my machine)
                
> Phase post-integration-test not executed when tests are timed out with option 'forkedProcessTimeoutInSeconds'
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: SUREFIRE-918
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-918
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: Maven Failsafe Plugin
>    Affects Versions: 2.12.4
>         Environment: Windows 7 64 bits
> Ubuntu 11.10 64 bits
>            Reporter: Fargier Stephane
>         Attachments: failsafe-timeout.zip
>
>
> In a project we use the failsafe plugin for our ITs.
> The option 'forkedProcessTimeoutInSeconds' is used to have a time limit for the test execution.
> {code}
> <configuration>
> 	<forkedProcessTimeoutInSeconds>3</forkedProcessTimeoutInSeconds>
> </configuration>
> {code}
> We also have goals registered in the post-integration-phase for environment clean-up.
> When the tests are in timeout, the maven execution is stopped and the post-integration-test phase is not executed, leaving our environment dirty. The post-integration-test phase should be executed after timeout the same way it is executed after failed tests.
> Attached is a simple project illustrating the issue:
> * a JUnit test that runs forever
> * a goal is registered in the post-integration phase
> * the timeout is set on the project
> If you run it, you will see the post-integration-phase is not executed:
> {code}
> [INFO] --- maven-failsafe-plugin:2.12.4:integration-test (integration-test) @ failsave.timeout.example ---
> [INFO] Failsafe report directory: /home/sfargier/Téléchargements/failsafe-timeout/target/failsafe-reports
> -------------------------------------------------------
>  T E S T S
> -------------------------------------------------------
> Running TestRunsForeverITCase
> Results :
> Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 4.468s
> [INFO] Finished at: Wed Oct 31 14:20:58 CET 2012
> [INFO] Final Memory: 9M/490M
> [INFO] ------------------------------------------------------------------------
> {code}
> As a side-note, if we set the forkMode option to 'always', then the post-integration-test is executed even if the timeout expires. But there are some Java processes for the tests (the one running surefire-booter-*.jar) that are not killed. There seems to be an already opened issue for that (http://jira.codehaus.org/browse/SUREFIRE-773).

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