1 package org.apache.maven.surefire.its.jiras;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.surefire.its.fixture.OutputValidator;
23 import org.apache.maven.surefire.its.fixture.SurefireJUnit4IntegrationTestCase;
24 import org.apache.maven.surefire.its.fixture.SurefireLauncher;
25 import org.junit.Test;
26
27 import java.io.File;
28 import java.io.FilenameFilter;
29
30 import static org.fest.assertions.Assertions.assertThat;
31
32
33
34
35 public class Surefire735ForkFailWithRedirectConsoleOutputIT
36 extends SurefireJUnit4IntegrationTestCase
37 {
38
39 @Test
40 public void vmStartFail()
41 throws Exception
42 {
43 OutputValidator outputValidator = unpack().failNever().executeTest();
44 assertJvmCrashed( outputValidator );
45 }
46
47 @Test
48 public void vmStartFailShouldFailBuildk()
49 throws Exception
50 {
51 OutputValidator outputValidator = unpack().maven().withFailure().executeTest();
52 assertJvmCrashed( outputValidator );
53 }
54
55 private SurefireLauncher unpack()
56 {
57 return unpack( "fork-fail" );
58 }
59
60 private static void assertJvmCrashed( OutputValidator outputValidator )
61 {
62 File reportDir = outputValidator.getSurefireReportsDirectory();
63 String[] dumpFiles = reportDir.list( new FilenameFilter()
64 {
65 @Override
66 public boolean accept( File dir, String name )
67 {
68 return name.endsWith( ".dumpstream" );
69 }
70 }
71 );
72 assertThat( dumpFiles ).isNotEmpty();
73 for ( String dump : dumpFiles )
74 {
75 outputValidator.getSurefireReportsFile( dump )
76 .assertContainsText( "Invalid maximum heap size: -Xmxxxx712743m" );
77 }
78 }
79
80 }