Skip to content

Commit 0a5115c

Browse files
plamentotevslachiewicz
authored andcommitted
Use @Enabled/@disabled to run tests only on specific OS/JDK
JUnit5 provides convenient annotation that allow given test to run only on given OS or JDK versions. It not only makes the tests easier to read but improves the reporting as well.
1 parent 5363cf9 commit 0a5115c

File tree

6 files changed

+101
-165
lines changed

6 files changed

+101
-165
lines changed

src/test/java/org/codehaus/plexus/archiver/SymlinkTest.java

+27-34
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@
99
import org.codehaus.plexus.archiver.tar.TarUnArchiver;
1010
import org.codehaus.plexus.archiver.zip.ZipArchiver;
1111
import org.codehaus.plexus.archiver.zip.ZipUnArchiver;
12-
import org.codehaus.plexus.util.Os;
1312
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.api.condition.DisabledOnOs;
14+
import org.junit.jupiter.api.condition.OS;
1415

1516
import static org.junit.jupiter.api.Assertions.assertFalse;
1617
import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -23,38 +24,32 @@ public class SymlinkTest
2324
{
2425

2526
@Test
27+
@DisabledOnOs( OS.WINDOWS )
2628
public void testSymlinkDir()
2729
throws IOException
2830
{
29-
if ( !Os.isFamily( Os.FAMILY_WINDOWS ) )
30-
{
31-
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symDir" );
32-
assertTrue( dummyContent.isDirectory() );
33-
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
34-
}
31+
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symDir" );
32+
assertTrue( dummyContent.isDirectory() );
33+
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
3534
}
3635

3736
@Test
37+
@DisabledOnOs( OS.WINDOWS )
3838
public void testSymlinkDirWithSlash()
3939
throws IOException
4040
{
41-
if ( !Os.isFamily( Os.FAMILY_WINDOWS ) )
42-
{
43-
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symDir/" );
44-
assertTrue( dummyContent.isDirectory() );
45-
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
46-
}
41+
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symDir/" );
42+
assertTrue( dummyContent.isDirectory() );
43+
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
4744
}
4845

4946
@Test
47+
@DisabledOnOs( OS.WINDOWS )
5048
public void testSymlinkFile()
5149
{
52-
if ( !Os.isFamily( Os.FAMILY_WINDOWS ) )
53-
{
54-
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symR" );
55-
assertFalse( dummyContent.isDirectory() );
56-
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
57-
}
50+
File dummyContent = getTestFile( "src/test/resources/symlinks/src/symR" );
51+
assertFalse( dummyContent.isDirectory() );
52+
assertTrue( Files.isSymbolicLink( dummyContent.toPath() ) );
5853
}
5954

6055
@Test
@@ -99,28 +94,26 @@ public void testSymlinkZip()
9994
}
10095

10196
@Test
97+
@DisabledOnOs( OS.WINDOWS )
10298
public void testSymlinkDirArchiver()
10399
throws Exception
104100
{
105-
if ( !Os.isFamily( Os.FAMILY_WINDOWS ) )
106-
{
107-
DirectoryArchiver archiver = (DirectoryArchiver) lookup( Archiver.class, "dir" );
101+
DirectoryArchiver archiver = (DirectoryArchiver) lookup( Archiver.class, "dir" );
108102

109-
File dummyContent = getTestFile( "src/test/resources/symlinks/src" );
110-
archiver.addDirectory( dummyContent );
111-
final File archiveFile = new File( "target/output/dirarchiver-symlink" );
112-
archiveFile.mkdirs();
113-
archiver.setDestFile( archiveFile );
114-
archiver.addSymlink( "target/output/dirarchiver-symlink/aNewDir/symlink", "." );
103+
File dummyContent = getTestFile( "src/test/resources/symlinks/src" );
104+
archiver.addDirectory( dummyContent );
105+
final File archiveFile = new File( "target/output/dirarchiver-symlink" );
106+
archiveFile.mkdirs();
107+
archiver.setDestFile( archiveFile );
108+
archiver.addSymlink( "target/output/dirarchiver-symlink/aNewDir/symlink", "." );
115109

116-
archiver.createArchive();
110+
archiver.createArchive();
117111

118-
File symbolicLink = new File( "target/output/dirarchiver-symlink/symR" );
119-
assertTrue( Files.isSymbolicLink( symbolicLink.toPath() ) );
112+
File symbolicLink = new File( "target/output/dirarchiver-symlink/symR" );
113+
assertTrue( Files.isSymbolicLink( symbolicLink.toPath() ) );
120114

121-
symbolicLink = new File( "target/output/dirarchiver-symlink/aDirWithALink/backOutsideToFileX" );
122-
assertTrue( Files.isSymbolicLink( symbolicLink.toPath() ) );
123-
}
115+
symbolicLink = new File( "target/output/dirarchiver-symlink/aDirWithALink/backOutsideToFileX" );
116+
assertTrue( Files.isSymbolicLink( symbolicLink.toPath() ) );
124117
}
125118

126119
}

src/test/java/org/codehaus/plexus/archiver/jar/JarToolModularJarArchiverTest.java

+11-20
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
import static org.junit.jupiter.api.Assertions.assertEquals;
2020
import static org.junit.jupiter.api.Assertions.assertNotNull;
2121
import static org.junit.jupiter.api.Assertions.assertThrows;
22-
import static org.junit.jupiter.api.Assumptions.assumeFalse;
23-
import static org.junit.jupiter.api.Assumptions.assumeTrue;
2422

2523
import java.io.File;
2624
import java.io.InputStream;
@@ -37,6 +35,8 @@
3735
import org.codehaus.plexus.archiver.ArchiverException;
3836
import org.junit.jupiter.api.BeforeEach;
3937
import org.junit.jupiter.api.Test;
38+
import org.junit.jupiter.api.condition.DisabledIf;
39+
import org.junit.jupiter.api.condition.EnabledIf;
4040

4141
public class JarToolModularJarArchiverTest
4242
extends BaseJarArchiverTest
@@ -63,11 +63,10 @@ public void setup()
6363
* Verify that the main class and the version are properly set for a modular JAR file.
6464
*/
6565
@Test
66+
@EnabledIf( "modulesAreSupported" )
6667
public void testModularJarWithMainClassAndVersion()
6768
throws Exception
6869
{
69-
assumeTrue( modulesAreSupported() );
70-
7170
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
7271
archiver.setModuleVersion( "1.0.0" );
7372
archiver.setModuleMainClass( "com.example.app.Main" );
@@ -85,11 +84,10 @@ public void testModularJarWithMainClassAndVersion()
8584
* value is overridden
8685
*/
8786
@Test
87+
@EnabledIf( "modulesAreSupported" )
8888
public void testModularJarWithManifestAndModuleMainClass()
8989
throws Exception
9090
{
91-
assumeTrue( modulesAreSupported() );
92-
9391
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
9492
Manifest manifest = new Manifest();
9593
manifest.addConfiguredAttribute(
@@ -111,11 +109,10 @@ public void testModularJarWithManifestAndModuleMainClass()
111109
* the manifest main class attribute (if present) is used instead
112110
*/
113111
@Test
112+
@EnabledIf( "modulesAreSupported" )
114113
public void testModularJarWithManifestMainClassAttribute()
115114
throws Exception
116115
{
117-
assumeTrue( modulesAreSupported() );
118-
119116
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
120117
Manifest manifest = new Manifest();
121118
manifest.addConfiguredAttribute(
@@ -134,11 +131,10 @@ public void testModularJarWithManifestMainClassAttribute()
134131
* Verify that a modular JAR file is created even when no additional attributes are set.
135132
*/
136133
@Test
134+
@EnabledIf( "modulesAreSupported" )
137135
public void testModularJar()
138136
throws Exception
139137
{
140-
assumeTrue( modulesAreSupported() );
141-
142138
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
143139
archiver.createArchive();
144140

@@ -151,11 +147,10 @@ public void testModularJar()
151147
* Verify that exception is thrown when the modular JAR is not valid.
152148
*/
153149
@Test
150+
@EnabledIf( "modulesAreSupported" )
154151
public void testInvalidModularJar()
155152
throws Exception
156153
{
157-
assumeTrue( modulesAreSupported() );
158-
159154
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
160155
// Not a valid version
161156
archiver.setModuleVersion( "notAValidVersion" );
@@ -168,11 +163,10 @@ public void testInvalidModularJar()
168163
* if the Java version does not support modules.
169164
*/
170165
@Test
166+
@DisabledIf( "modulesAreSupported" )
171167
public void testModularJarPriorJava9()
172168
throws Exception
173169
{
174-
assumeFalse( modulesAreSupported() );
175-
176170
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
177171
archiver.setModuleVersion( "1.0.0" );
178172
archiver.setModuleMainClass( "com.example.app.Main" );
@@ -190,11 +184,10 @@ public void testModularJarPriorJava9()
190184
* Verify that the compression flag is respected.
191185
*/
192186
@Test
187+
@EnabledIf( "modulesAreSupported" )
193188
public void testNoCompression()
194189
throws Exception
195190
{
196-
assumeTrue( modulesAreSupported() );
197-
198191
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
199192
archiver.setCompress( false );
200193

@@ -219,11 +212,10 @@ public void testNoCompression()
219212
* is kept after it is updated to modular JAR file.
220213
*/
221214
@Test
215+
@EnabledIf( "modulesAreSupported" )
222216
public void testCompression()
223217
throws Exception
224218
{
225-
assumeTrue( modulesAreSupported() );
226-
227219
archiver.addDirectory( new File( "src/test/resources/java-module-descriptor" ) );
228220
archiver.addFile( new File( "src/test/jars/test.jar" ), "META-INF/lib/test.jar" );
229221
archiver.setRecompressAddedZips( false );
@@ -251,11 +243,10 @@ public void testCompression()
251243
* Verify that a module descriptor in the versioned area is handled correctly.
252244
*/
253245
@Test
246+
@EnabledIf( "modulesAreSupported" )
254247
public void testModularMultiReleaseJar()
255248
throws Exception
256249
{
257-
assumeTrue( modulesAreSupported() );
258-
259250
// Add two module-info.class, one on the root and one on the multi-release dir.
260251
archiver.addFile( new File( "src/test/resources/java-module-descriptor/module-info.class" ),
261252
"META-INF/versions/9/module-info.class" );

src/test/java/org/codehaus/plexus/archiver/tar/TarArchiverTest.java

+3-10
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,9 @@
5757
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
5858
import org.codehaus.plexus.util.FileUtils;
5959
import org.codehaus.plexus.util.IOUtil;
60-
import org.codehaus.plexus.util.Os;
6160
import org.junit.jupiter.api.Test;
61+
import org.junit.jupiter.api.condition.DisabledOnOs;
62+
import org.junit.jupiter.api.condition.OS;
6263

6364
/**
6465
* @author Emmanuel Venisse
@@ -68,6 +69,7 @@ public class TarArchiverTest
6869
{
6970

7071
@Test
72+
@DisabledOnOs( OS.WINDOWS )
7173
public void testCreateArchiveWithDetectedModes()
7274
throws Exception
7375
{
@@ -91,15 +93,6 @@ public void testCreateArchiveWithDetectedModes()
9193
int confMode = 0600;
9294
int logMode = 0640;
9395

94-
if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
95-
{
96-
StackTraceElement e = new Throwable().getStackTrace()[0];
97-
System.out.println( "Cannot execute test: " + e.getMethodName() + " on "
98-
+ System.getProperty( "os.name" ) );
99-
100-
return;
101-
}
102-
10396
File tmpDir = null;
10497
try
10598
{

src/test/java/org/codehaus/plexus/archiver/tar/TarFileAttributesTest.java

+6-28
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,11 @@
1515
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributeUtils;
1616
import org.codehaus.plexus.components.io.attributes.PlexusIoResourceAttributes;
1717
import org.codehaus.plexus.util.FileUtils;
18-
import org.codehaus.plexus.util.Os;
1918
import org.junit.jupiter.api.AfterEach;
2019
import org.junit.jupiter.api.BeforeEach;
2120
import org.junit.jupiter.api.Test;
21+
import org.junit.jupiter.api.condition.DisabledOnOs;
22+
import org.junit.jupiter.api.condition.OS;
2223

2324
import static org.junit.jupiter.api.Assertions.assertEquals;
2425

@@ -80,15 +81,11 @@ private void printTestHeader()
8081
}
8182

8283
@Test
84+
@DisabledOnOs( OS.WINDOWS )
8385
public void testUseAttributesFromTarArchiveInputInTarArchiverOutput()
8486
throws Exception
8587
{
8688
printTestHeader();
87-
if ( checkForWindows() )
88-
{
89-
System.out.println( "This test cannot run on windows. Aborting." );
90-
return;
91-
}
9289

9390
File tempFile = File.createTempFile( "tar-file-attributes.", ".tmp" );
9491
toDelete.add( tempFile );
@@ -146,15 +143,11 @@ public void testUseAttributesFromTarArchiveInputInTarArchiverOutput()
146143
}
147144

148145
@Test
146+
@DisabledOnOs( OS.WINDOWS )
149147
public void testUseDetectedFileAttributes()
150148
throws Exception
151149
{
152150
printTestHeader();
153-
if ( checkForWindows() )
154-
{
155-
System.out.println( "This test cannot run on windows. Aborting." );
156-
return;
157-
}
158151

159152
File tempFile = File.createTempFile( "tar-file-attributes.", ".tmp" );
160153
toDelete.add( tempFile );
@@ -199,23 +192,13 @@ public void testUseDetectedFileAttributes()
199192

200193
}
201194

202-
private boolean checkForWindows()
203-
{
204-
return Os.isFamily( Os.FAMILY_WINDOWS );
205-
}
206-
207195
@Test
196+
@DisabledOnOs( OS.WINDOWS )
208197
public void testOverrideDetectedFileAttributes()
209198
throws Exception
210199
{
211200
printTestHeader();
212201

213-
if ( checkForWindows() )
214-
{
215-
System.out.println( "This test cannot run on windows. Aborting." );
216-
return;
217-
}
218-
219202
File tempFile = File.createTempFile( "tar-file-attributes.", ".tmp" );
220203
toDelete.add( tempFile );
221204

@@ -264,16 +247,11 @@ private TarArchiver getPosixCompliantTarArchiver() throws Exception
264247
}
265248

266249
@Test
250+
@DisabledOnOs( OS.WINDOWS )
267251
public void testOverrideDetectedFileAttributesUsingFileMode()
268252
throws Exception
269253
{
270254
printTestHeader();
271-
if ( checkForWindows() )
272-
{
273-
System.out.println( "This test cannot run on windows. Aborting." );
274-
return;
275-
}
276-
277255
File tempFile = File.createTempFile( "tar-file-attributes.", ".tmp" );
278256
toDelete.add( tempFile );
279257

0 commit comments

Comments
 (0)