1 package org.apache.maven.it;
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.it.util.ResourceExtractor;
23
24 import java.io.File;
25
26
27
28
29
30
31
32 public class MavenITmng3004ReactorFailureBehaviorMultithreadedTest
33 extends AbstractMavenIntegrationTestCase
34 {
35 public MavenITmng3004ReactorFailureBehaviorMultithreadedTest()
36 {
37 super( "(3.0-alpha-3,)" );
38 }
39
40
41
42
43
44
45
46 public void testitFailFastSingleThread()
47 throws Exception
48 {
49 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0095" );
50
51 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
52 verifier.setAutoclean( false );
53 verifier.deleteDirectory( "target" );
54 verifier.deleteDirectory( "subproject1/target" );
55 verifier.deleteDirectory( "subproject2/target" );
56 verifier.deleteDirectory( "subproject3/target" );
57 verifier.addCliOption( "--fail-fast" );
58 verifier.setLogFileName( "log-ff-mt1.txt" );
59 verifier.setSystemProperty( "maven.threads.experimental", "1" );
60
61 try
62 {
63 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
64 verifier.verifyErrorFreeLog();
65 }
66 catch ( VerificationException e )
67 {
68
69 }
70 verifier.resetStreams();
71
72 verifier.assertFilePresent( "target/touch.txt" );
73 verifier.assertFileNotPresent( "subproject1/target/touch.txt" );
74 verifier.assertFileNotPresent( "subproject2/target/touch.txt" );
75 verifier.assertFileNotPresent( "subproject3/target/touch.txt" );
76 }
77
78
79
80
81
82
83
84 public void testitFailNeverSingleThread()
85 throws Exception
86 {
87 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0095" );
88
89 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
90 verifier.setAutoclean( false );
91 verifier.deleteDirectory( "target" );
92 verifier.deleteDirectory( "subproject1/target" );
93 verifier.deleteDirectory( "subproject2/target" );
94 verifier.deleteDirectory( "subproject3/target" );
95 verifier.addCliOption( "--fail-never" );
96 verifier.setLogFileName( "log-fn-mt1.txt" );
97 verifier.setSystemProperty( "maven.threads.experimental", "1" );
98 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
99 verifier.resetStreams();
100
101 verifier.assertFilePresent( "target/touch.txt" );
102 verifier.assertFileNotPresent( "subproject1/target/touch.txt" );
103 verifier.assertFilePresent( "subproject2/target/touch.txt" );
104 verifier.assertFilePresent( "subproject3/target/touch.txt" );
105 }
106
107
108
109
110
111
112
113
114 public void testitFailAtEndSingleThread()
115 throws Exception
116 {
117 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0095" );
118
119 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
120 verifier.setAutoclean( false );
121 verifier.deleteDirectory( "target" );
122 verifier.deleteDirectory( "subproject1/target" );
123 verifier.deleteDirectory( "subproject2/target" );
124 verifier.deleteDirectory( "subproject3/target" );
125 verifier.addCliOption( "--fail-at-end" );
126 verifier.setLogFileName( "log-fae-mt1.txt" );
127 verifier.setSystemProperty( "maven.threads.experimental", "1" );
128 try
129 {
130 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
131 verifier.verifyErrorFreeLog();
132 }
133 catch ( VerificationException e )
134 {
135
136 }
137 verifier.resetStreams();
138
139 verifier.assertFilePresent( "target/touch.txt" );
140 verifier.assertFileNotPresent( "subproject1/target/touch.txt" );
141 verifier.assertFilePresent( "subproject2/target/touch.txt" );
142 verifier.assertFileNotPresent( "subproject3/target/touch.txt" );
143 }
144
145
146
147
148
149
150
151 public void testitFailNeverTwoThreads()
152 throws Exception
153 {
154 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0095" );
155
156 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
157 verifier.setAutoclean( false );
158 verifier.deleteDirectory( "target" );
159 verifier.deleteDirectory( "subproject1/target" );
160 verifier.deleteDirectory( "subproject2/target" );
161 verifier.deleteDirectory( "subproject3/target" );
162 verifier.addCliOption( "--fail-never" );
163 verifier.setLogFileName( "log-fn-mt2.txt" );
164 verifier.setSystemProperty( "maven.threads.experimental", "2" );
165 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
166 verifier.resetStreams();
167
168 verifier.assertFilePresent( "target/touch.txt" );
169 verifier.assertFileNotPresent( "subproject1/target/touch.txt" );
170 verifier.assertFilePresent( "subproject2/target/touch.txt" );
171 verifier.assertFilePresent( "subproject3/target/touch.txt" );
172 }
173
174
175
176
177
178
179
180
181 public void testitFailAtEndTwoThreads()
182 throws Exception
183 {
184 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-0095" );
185
186 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
187 verifier.setAutoclean( false );
188 verifier.deleteDirectory( "target" );
189 verifier.deleteDirectory( "subproject1/target" );
190 verifier.deleteDirectory( "subproject2/target" );
191 verifier.deleteDirectory( "subproject3/target" );
192 verifier.addCliOption( "--fail-at-end" );
193 verifier.setLogFileName( "log-fae-mt2.txt" );
194 verifier.setSystemProperty( "maven.threads.experimental", "2" );
195 try
196 {
197 verifier.executeGoal( "org.apache.maven.its.plugins:maven-it-plugin-touch:touch" );
198 verifier.verifyErrorFreeLog();
199 }
200 catch ( VerificationException e )
201 {
202
203 }
204 verifier.resetStreams();
205
206 verifier.assertFilePresent( "target/touch.txt" );
207 verifier.assertFileNotPresent( "subproject1/target/touch.txt" );
208 verifier.assertFilePresent( "subproject2/target/touch.txt" );
209 verifier.assertFileNotPresent( "subproject3/target/touch.txt" );
210 }
211
212
213
214
215 }