Skip to content

Commit 116847a

Browse files
authored
Support NetBSD and DragonFlyBSD in @EnabledOnOs and @DisabledOnOs (#5709)
* Add NetBSD to OS condition * Add DragonFlyBSD to OS condition --------- Signed-off-by: Daniel Widdis <widdis@gmail.com>
1 parent 3556b9f commit 116847a

7 files changed

Lines changed: 129 additions & 10 deletions

File tree

documentation/modules/ROOT/partials/release-notes/release-notes-6.2.0-M1.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ repository on GitHub.
5353
[[v6.2.0-M1-junit-jupiter-new-features-and-improvements]]
5454
==== New Features and Improvements
5555

56+
* Added `OS.NETBSD` and `OS.DRAGONFLYBSD` enum constants for use with `@EnabledOnOs`
57+
and `@DisabledOnOs`.
5658
* Failures caused by `@Timeout` expirations now include a hint about enabling
5759
xref:writing-tests/timeouts.adoc#debugging-thread-dump[thread dumps].
5860

junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@
3030
*
3131
* @since 5.1
3232
* @see #AIX
33+
* @see #DRAGONFLYBSD
3334
* @see #FREEBSD
3435
* @see #LINUX
3536
* @see #MAC
37+
* @see #NETBSD
3638
* @see #OPENBSD
3739
* @see #SOLARIS
3840
* @see #WINDOWS
@@ -51,6 +53,14 @@ public enum OS {
5153
@API(status = STABLE, since = "5.3")
5254
AIX,
5355

56+
/**
57+
* DragonFly BSD operating system.
58+
*
59+
* @since 6.2
60+
*/
61+
@API(status = STABLE, since = "6.2")
62+
DRAGONFLYBSD,
63+
5464
/**
5565
* FreeBSD operating system.
5666
*
@@ -69,6 +79,14 @@ public enum OS {
6979
*/
7080
MAC,
7181

82+
/**
83+
* NetBSD operating system.
84+
*
85+
* @since 6.2
86+
*/
87+
@API(status = STABLE, since = "6.2")
88+
NETBSD,
89+
7290
/**
7391
* OpenBSD operating system.
7492
*
@@ -88,8 +106,9 @@ public enum OS {
88106
WINDOWS,
89107

90108
/**
91-
* An operating system other than {@link #AIX}, {@link #FREEBSD}, {@link #LINUX},
92-
* {@link #MAC}, {@link #OPENBSD}, {@link #SOLARIS}, or {@link #WINDOWS}.
109+
* An operating system other than {@link #AIX}, {@link #DRAGONFLYBSD},
110+
* {@link #FREEBSD}, {@link #LINUX}, {@link #MAC}, {@link #NETBSD},
111+
* {@link #OPENBSD}, {@link #SOLARIS}, or {@link #WINDOWS}.
93112
*/
94113
OTHER;
95114

@@ -125,6 +144,9 @@ public enum OS {
125144
if (osName.contains("aix")) {
126145
return AIX;
127146
}
147+
if (osName.contains("dragonflybsd")) {
148+
return DRAGONFLYBSD;
149+
}
128150
if (osName.contains("freebsd")) {
129151
return FREEBSD;
130152
}
@@ -134,6 +156,9 @@ public enum OS {
134156
if (osName.contains("mac")) {
135157
return MAC;
136158
}
159+
if (osName.contains("netbsd")) {
160+
return NETBSD;
161+
}
137162
if (osName.contains("openbsd")) {
138163
return OPENBSD;
139164
}

jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsConditionTests.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix;
1414
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture;
15+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd;
1516
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd;
1617
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux;
1718
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac;
19+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd;
1820
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd;
1921
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris;
2022
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows;
@@ -84,6 +86,15 @@ void aix() {
8486
assertDisabledOnCurrentOsIf(onAix());
8587
}
8688

89+
/**
90+
* @see DisabledOnOsIntegrationTests#dragonflybsd()
91+
*/
92+
@Test
93+
void dragonflybsd() {
94+
evaluateCondition();
95+
assertDisabledOnCurrentOsIf(onDragonflybsd());
96+
}
97+
8798
/**
8899
* @see DisabledOnOsIntegrationTests#freebsd()
89100
*/
@@ -129,6 +140,15 @@ void openbsd() {
129140
assertDisabledOnCurrentOsIf(onOpenbsd());
130141
}
131142

143+
/**
144+
* @see DisabledOnOsIntegrationTests#netbsd()
145+
*/
146+
@Test
147+
void netbsd() {
148+
evaluateCondition();
149+
assertDisabledOnCurrentOsIf(onNetbsd());
150+
}
151+
132152
/**
133153
* @see DisabledOnOsIntegrationTests#windows()
134154
*/
@@ -153,8 +173,8 @@ void solaris() {
153173
@Test
154174
void other() {
155175
evaluateCondition();
156-
assertDisabledOnCurrentOsIf(
157-
!(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows()));
176+
assertDisabledOnCurrentOsIf(!(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd()
177+
|| onOpenbsd() || onSolaris() || onWindows()));
158178
}
159179

160180
/**

jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsIntegrationTests.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,20 @@
1515
import static org.junit.jupiter.api.Assertions.fail;
1616
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix;
1717
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture;
18+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd;
1819
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd;
1920
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux;
2021
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac;
22+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd;
2123
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd;
2224
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris;
2325
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows;
2426
import static org.junit.jupiter.api.condition.OS.AIX;
27+
import static org.junit.jupiter.api.condition.OS.DRAGONFLYBSD;
2528
import static org.junit.jupiter.api.condition.OS.FREEBSD;
2629
import static org.junit.jupiter.api.condition.OS.LINUX;
2730
import static org.junit.jupiter.api.condition.OS.MAC;
31+
import static org.junit.jupiter.api.condition.OS.NETBSD;
2832
import static org.junit.jupiter.api.condition.OS.OPENBSD;
2933
import static org.junit.jupiter.api.condition.OS.OTHER;
3034
import static org.junit.jupiter.api.condition.OS.SOLARIS;
@@ -57,7 +61,7 @@ void missingOsAndArchitectureDeclaration() {
5761
}
5862

5963
@Test
60-
@DisabledOnOs(value = { AIX, FREEBSD, LINUX, MAC, OPENBSD, WINDOWS, SOLARIS,
64+
@DisabledOnOs(value = { AIX, DRAGONFLYBSD, FREEBSD, LINUX, MAC, NETBSD, OPENBSD, WINDOWS, SOLARIS,
6165
OTHER }, disabledReason = "Disabled on every OS")
6266
void disabledOnEveryOs() {
6367
fail("should be disabled");
@@ -69,6 +73,12 @@ void aix() {
6973
assertFalse(onAix());
7074
}
7175

76+
@Test
77+
@DisabledOnOs(DRAGONFLYBSD)
78+
void dragonflybsd() {
79+
assertFalse(onDragonflybsd());
80+
}
81+
7282
@Test
7383
@DisabledOnOs(FREEBSD)
7484
void freebsd() {
@@ -99,6 +109,12 @@ void openbsd() {
99109
assertFalse(onOpenbsd());
100110
}
101111

112+
@Test
113+
@DisabledOnOs(NETBSD)
114+
void netbsd() {
115+
assertFalse(onNetbsd());
116+
}
117+
102118
@Test
103119
@DisabledOnOs(WINDOWS)
104120
void windows() {
@@ -114,7 +130,8 @@ void solaris() {
114130
@Test
115131
@DisabledOnOs(OTHER)
116132
void other() {
117-
assertTrue(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows());
133+
assertTrue(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() || onOpenbsd()
134+
|| onSolaris() || onWindows());
118135
}
119136

120137
@Test

jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsConditionTests.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@
1212

1313
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix;
1414
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture;
15+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd;
1516
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd;
1617
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux;
1718
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac;
19+
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd;
1820
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd;
1921
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris;
2022
import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows;
@@ -83,6 +85,15 @@ void aix() {
8385
assertEnabledOnCurrentOsIf(onAix());
8486
}
8587

88+
/**
89+
* @see EnabledOnOsIntegrationTests#dragonflybsd()
90+
*/
91+
@Test
92+
void dragonflybsd() {
93+
evaluateCondition();
94+
assertEnabledOnCurrentOsIf(onDragonflybsd());
95+
}
96+
8697
/**
8798
* @see EnabledOnOsIntegrationTests#freebsd()
8899
*/
@@ -128,6 +139,15 @@ void openbsd() {
128139
assertEnabledOnCurrentOsIf(onOpenbsd());
129140
}
130141

142+
/**
143+
* @see EnabledOnOsIntegrationTests#netbsd()
144+
*/
145+
@Test
146+
void netbsd() {
147+
evaluateCondition();
148+
assertEnabledOnCurrentOsIf(onNetbsd());
149+
}
150+
131151
/**
132152
* @see EnabledOnOsIntegrationTests#windows()
133153
*/
@@ -152,8 +172,8 @@ void solaris() {
152172
@Test
153173
void other() {
154174
evaluateCondition();
155-
assertEnabledOnCurrentOsIf(
156-
!(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows()));
175+
assertEnabledOnCurrentOsIf(!(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd()
176+
|| onOpenbsd() || onSolaris() || onWindows()));
157177
assertCustomDisabledReasonIs("Disabled on almost every OS");
158178
}
159179

jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsIntegrationTests.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
import static org.junit.jupiter.api.Assertions.assertFalse;
1414
import static org.junit.jupiter.api.Assertions.assertTrue;
1515
import static org.junit.jupiter.api.condition.OS.AIX;
16+
import static org.junit.jupiter.api.condition.OS.DRAGONFLYBSD;
1617
import static org.junit.jupiter.api.condition.OS.FREEBSD;
1718
import static org.junit.jupiter.api.condition.OS.LINUX;
1819
import static org.junit.jupiter.api.condition.OS.MAC;
20+
import static org.junit.jupiter.api.condition.OS.NETBSD;
1921
import static org.junit.jupiter.api.condition.OS.OPENBSD;
2022
import static org.junit.jupiter.api.condition.OS.OTHER;
2123
import static org.junit.jupiter.api.condition.OS.SOLARIS;
@@ -52,7 +54,7 @@ void missingOsAndArchitectureDeclaration() {
5254
}
5355

5456
@Test
55-
@EnabledOnOs({ AIX, FREEBSD, LINUX, MAC, OPENBSD, WINDOWS, SOLARIS, OTHER })
57+
@EnabledOnOs({ AIX, DRAGONFLYBSD, FREEBSD, LINUX, MAC, NETBSD, OPENBSD, WINDOWS, SOLARIS, OTHER })
5658
void enabledOnEveryOs() {
5759
}
5860

@@ -62,6 +64,12 @@ void aix() {
6264
assertTrue(onAix());
6365
}
6466

67+
@Test
68+
@EnabledOnOs(DRAGONFLYBSD)
69+
void dragonflybsd() {
70+
assertTrue(onDragonflybsd());
71+
}
72+
6573
@Test
6674
@EnabledOnOs(FREEBSD)
6775
void freebsd() {
@@ -92,6 +100,12 @@ void openbsd() {
92100
assertTrue(onOpenbsd());
93101
}
94102

103+
@Test
104+
@EnabledOnOs(NETBSD)
105+
void netbsd() {
106+
assertTrue(onNetbsd());
107+
}
108+
95109
@Test
96110
@EnabledOnOs(WINDOWS)
97111
void windows() {
@@ -107,7 +121,8 @@ void solaris() {
107121
@Test
108122
@EnabledOnOs(value = OTHER, disabledReason = "Disabled on almost every OS")
109123
void other() {
110-
assertFalse(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows());
124+
assertFalse(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() || onOpenbsd()
125+
|| onSolaris() || onWindows());
111126
}
112127

113128
@Test
@@ -168,6 +183,10 @@ static boolean onAix() {
168183
return OS_NAME.contains("aix");
169184
}
170185

186+
static boolean onDragonflybsd() {
187+
return OS_NAME.contains("dragonflybsd");
188+
}
189+
171190
static boolean onArchitecture(String arch) {
172191
return ARCH.contains(arch);
173192
}
@@ -184,6 +203,10 @@ static boolean onMac() {
184203
return OS_NAME.contains("mac");
185204
}
186205

206+
static boolean onNetbsd() {
207+
return OS_NAME.contains("netbsd");
208+
}
209+
187210
static boolean onOpenbsd() {
188211
return OS_NAME.contains("openbsd");
189212
}

jupiter-tests/src/test/java/org/junit/jupiter/api/condition/OSTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ void aix(String name) {
4141
assertEquals(OS.AIX, OS.parse(name));
4242
}
4343

44+
@ParameterizedTest
45+
@ValueSource(strings = { "DRAGONFLYBSD", "DragonFlyBSD" })
46+
void dragonflybsd(String name) {
47+
assertEquals(OS.DRAGONFLYBSD, OS.parse(name));
48+
}
49+
4450
@ParameterizedTest
4551
@ValueSource(strings = { "FREEBSD", "FreeBSD" })
4652
void freebsd(String name) {
@@ -65,6 +71,12 @@ void openbsd(String name) {
6571
assertEquals(OS.OPENBSD, OS.parse(name));
6672
}
6773

74+
@ParameterizedTest
75+
@ValueSource(strings = { "NETBSD", "NetBSD" })
76+
void netbsd(String name) {
77+
assertEquals(OS.NETBSD, OS.parse(name));
78+
}
79+
6880
@ParameterizedTest
6981
@ValueSource(strings = { "SOLARIS", "SunOS" })
7082
void solaris(String name) {

0 commit comments

Comments
 (0)