diff --git a/documentation/modules/ROOT/partials/release-notes/release-notes-6.2.0-M1.adoc b/documentation/modules/ROOT/partials/release-notes/release-notes-6.2.0-M1.adoc index 9f3d6b92d9f3..04a19229aee8 100644 --- a/documentation/modules/ROOT/partials/release-notes/release-notes-6.2.0-M1.adoc +++ b/documentation/modules/ROOT/partials/release-notes/release-notes-6.2.0-M1.adoc @@ -48,6 +48,8 @@ repository on GitHub. [[v6.2.0-M1-junit-jupiter-new-features-and-improvements]] ==== New Features and Improvements +* Added `OS.NETBSD` and `OS.DRAGONFLYBSD` enum constants for use with `@EnabledOnOs` + and `@DisabledOnOs`. * Failures caused by `@Timeout` expirations now include a hint about enabling xref:writing-tests/timeouts.adoc#debugging-thread-dump[thread dumps]. diff --git a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java index 26e5635ad643..569204eaffe6 100644 --- a/junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java +++ b/junit-jupiter-api/src/main/java/org/junit/jupiter/api/condition/OS.java @@ -30,9 +30,11 @@ * * @since 5.1 * @see #AIX + * @see #DRAGONFLYBSD * @see #FREEBSD * @see #LINUX * @see #MAC + * @see #NETBSD * @see #OPENBSD * @see #SOLARIS * @see #WINDOWS @@ -51,6 +53,14 @@ public enum OS { @API(status = STABLE, since = "5.3") AIX, + /** + * DragonFly BSD operating system. + * + * @since 6.2 + */ + @API(status = STABLE, since = "6.2") + DRAGONFLYBSD, + /** * FreeBSD operating system. * @@ -69,6 +79,14 @@ public enum OS { */ MAC, + /** + * NetBSD operating system. + * + * @since 6.2 + */ + @API(status = STABLE, since = "6.2") + NETBSD, + /** * OpenBSD operating system. * @@ -88,8 +106,9 @@ public enum OS { WINDOWS, /** - * An operating system other than {@link #AIX}, {@link #FREEBSD}, {@link #LINUX}, - * {@link #MAC}, {@link #OPENBSD}, {@link #SOLARIS}, or {@link #WINDOWS}. + * An operating system other than {@link #AIX}, {@link #DRAGONFLYBSD}, + * {@link #FREEBSD}, {@link #LINUX}, {@link #MAC}, {@link #NETBSD}, + * {@link #OPENBSD}, {@link #SOLARIS}, or {@link #WINDOWS}. */ OTHER; @@ -125,6 +144,9 @@ public enum OS { if (osName.contains("aix")) { return AIX; } + if (osName.contains("dragonflybsd")) { + return DRAGONFLYBSD; + } if (osName.contains("freebsd")) { return FREEBSD; } @@ -134,6 +156,9 @@ public enum OS { if (osName.contains("mac")) { return MAC; } + if (osName.contains("netbsd")) { + return NETBSD; + } if (osName.contains("openbsd")) { return OPENBSD; } diff --git a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsConditionTests.java b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsConditionTests.java index 73a857058feb..541f725a4031 100644 --- a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsConditionTests.java +++ b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsConditionTests.java @@ -12,9 +12,11 @@ import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows; @@ -84,6 +86,15 @@ void aix() { assertDisabledOnCurrentOsIf(onAix()); } + /** + * @see DisabledOnOsIntegrationTests#dragonflybsd() + */ + @Test + void dragonflybsd() { + evaluateCondition(); + assertDisabledOnCurrentOsIf(onDragonflybsd()); + } + /** * @see DisabledOnOsIntegrationTests#freebsd() */ @@ -129,6 +140,15 @@ void openbsd() { assertDisabledOnCurrentOsIf(onOpenbsd()); } + /** + * @see DisabledOnOsIntegrationTests#netbsd() + */ + @Test + void netbsd() { + evaluateCondition(); + assertDisabledOnCurrentOsIf(onNetbsd()); + } + /** * @see DisabledOnOsIntegrationTests#windows() */ @@ -153,8 +173,8 @@ void solaris() { @Test void other() { evaluateCondition(); - assertDisabledOnCurrentOsIf( - !(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows())); + assertDisabledOnCurrentOsIf(!(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() + || onOpenbsd() || onSolaris() || onWindows())); } /** diff --git a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsIntegrationTests.java b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsIntegrationTests.java index 203b488dfb74..af0183799d23 100644 --- a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsIntegrationTests.java +++ b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/DisabledOnOsIntegrationTests.java @@ -15,16 +15,20 @@ import static org.junit.jupiter.api.Assertions.fail; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows; import static org.junit.jupiter.api.condition.OS.AIX; +import static org.junit.jupiter.api.condition.OS.DRAGONFLYBSD; import static org.junit.jupiter.api.condition.OS.FREEBSD; import static org.junit.jupiter.api.condition.OS.LINUX; import static org.junit.jupiter.api.condition.OS.MAC; +import static org.junit.jupiter.api.condition.OS.NETBSD; import static org.junit.jupiter.api.condition.OS.OPENBSD; import static org.junit.jupiter.api.condition.OS.OTHER; import static org.junit.jupiter.api.condition.OS.SOLARIS; @@ -57,7 +61,7 @@ void missingOsAndArchitectureDeclaration() { } @Test - @DisabledOnOs(value = { AIX, FREEBSD, LINUX, MAC, OPENBSD, WINDOWS, SOLARIS, + @DisabledOnOs(value = { AIX, DRAGONFLYBSD, FREEBSD, LINUX, MAC, NETBSD, OPENBSD, WINDOWS, SOLARIS, OTHER }, disabledReason = "Disabled on every OS") void disabledOnEveryOs() { fail("should be disabled"); @@ -69,6 +73,12 @@ void aix() { assertFalse(onAix()); } + @Test + @DisabledOnOs(DRAGONFLYBSD) + void dragonflybsd() { + assertFalse(onDragonflybsd()); + } + @Test @DisabledOnOs(FREEBSD) void freebsd() { @@ -99,6 +109,12 @@ void openbsd() { assertFalse(onOpenbsd()); } + @Test + @DisabledOnOs(NETBSD) + void netbsd() { + assertFalse(onNetbsd()); + } + @Test @DisabledOnOs(WINDOWS) void windows() { @@ -114,7 +130,8 @@ void solaris() { @Test @DisabledOnOs(OTHER) void other() { - assertTrue(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows()); + assertTrue(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() || onOpenbsd() + || onSolaris() || onWindows()); } @Test diff --git a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsConditionTests.java b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsConditionTests.java index d4b75bd8ebde..c00845b33e2b 100644 --- a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsConditionTests.java +++ b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsConditionTests.java @@ -12,9 +12,11 @@ import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onAix; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onArchitecture; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onDragonflybsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onFreebsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onLinux; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onMac; +import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onNetbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onOpenbsd; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onSolaris; import static org.junit.jupiter.api.condition.EnabledOnOsIntegrationTests.onWindows; @@ -83,6 +85,15 @@ void aix() { assertEnabledOnCurrentOsIf(onAix()); } + /** + * @see EnabledOnOsIntegrationTests#dragonflybsd() + */ + @Test + void dragonflybsd() { + evaluateCondition(); + assertEnabledOnCurrentOsIf(onDragonflybsd()); + } + /** * @see EnabledOnOsIntegrationTests#freebsd() */ @@ -128,6 +139,15 @@ void openbsd() { assertEnabledOnCurrentOsIf(onOpenbsd()); } + /** + * @see EnabledOnOsIntegrationTests#netbsd() + */ + @Test + void netbsd() { + evaluateCondition(); + assertEnabledOnCurrentOsIf(onNetbsd()); + } + /** * @see EnabledOnOsIntegrationTests#windows() */ @@ -152,8 +172,8 @@ void solaris() { @Test void other() { evaluateCondition(); - assertEnabledOnCurrentOsIf( - !(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows())); + assertEnabledOnCurrentOsIf(!(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() + || onOpenbsd() || onSolaris() || onWindows())); assertCustomDisabledReasonIs("Disabled on almost every OS"); } diff --git a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsIntegrationTests.java b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsIntegrationTests.java index 625d3008afe7..35a2166c4965 100644 --- a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsIntegrationTests.java +++ b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/EnabledOnOsIntegrationTests.java @@ -13,9 +13,11 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.condition.OS.AIX; +import static org.junit.jupiter.api.condition.OS.DRAGONFLYBSD; import static org.junit.jupiter.api.condition.OS.FREEBSD; import static org.junit.jupiter.api.condition.OS.LINUX; import static org.junit.jupiter.api.condition.OS.MAC; +import static org.junit.jupiter.api.condition.OS.NETBSD; import static org.junit.jupiter.api.condition.OS.OPENBSD; import static org.junit.jupiter.api.condition.OS.OTHER; import static org.junit.jupiter.api.condition.OS.SOLARIS; @@ -52,7 +54,7 @@ void missingOsAndArchitectureDeclaration() { } @Test - @EnabledOnOs({ AIX, FREEBSD, LINUX, MAC, OPENBSD, WINDOWS, SOLARIS, OTHER }) + @EnabledOnOs({ AIX, DRAGONFLYBSD, FREEBSD, LINUX, MAC, NETBSD, OPENBSD, WINDOWS, SOLARIS, OTHER }) void enabledOnEveryOs() { } @@ -62,6 +64,12 @@ void aix() { assertTrue(onAix()); } + @Test + @EnabledOnOs(DRAGONFLYBSD) + void dragonflybsd() { + assertTrue(onDragonflybsd()); + } + @Test @EnabledOnOs(FREEBSD) void freebsd() { @@ -92,6 +100,12 @@ void openbsd() { assertTrue(onOpenbsd()); } + @Test + @EnabledOnOs(NETBSD) + void netbsd() { + assertTrue(onNetbsd()); + } + @Test @EnabledOnOs(WINDOWS) void windows() { @@ -107,7 +121,8 @@ void solaris() { @Test @EnabledOnOs(value = OTHER, disabledReason = "Disabled on almost every OS") void other() { - assertFalse(onAix() || onFreebsd() || onLinux() || onMac() || onOpenbsd() || onSolaris() || onWindows()); + assertFalse(onAix() || onDragonflybsd() || onFreebsd() || onLinux() || onMac() || onNetbsd() || onOpenbsd() + || onSolaris() || onWindows()); } @Test @@ -168,6 +183,10 @@ static boolean onAix() { return OS_NAME.contains("aix"); } + static boolean onDragonflybsd() { + return OS_NAME.contains("dragonflybsd"); + } + static boolean onArchitecture(String arch) { return ARCH.contains(arch); } @@ -184,6 +203,10 @@ static boolean onMac() { return OS_NAME.contains("mac"); } + static boolean onNetbsd() { + return OS_NAME.contains("netbsd"); + } + static boolean onOpenbsd() { return OS_NAME.contains("openbsd"); } diff --git a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/OSTests.java b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/OSTests.java index b8919ce8e7a7..babb171ef9f4 100644 --- a/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/OSTests.java +++ b/jupiter-tests/src/test/java/org/junit/jupiter/api/condition/OSTests.java @@ -41,6 +41,12 @@ void aix(String name) { assertEquals(OS.AIX, OS.parse(name)); } + @ParameterizedTest + @ValueSource(strings = { "DRAGONFLYBSD", "DragonFlyBSD" }) + void dragonflybsd(String name) { + assertEquals(OS.DRAGONFLYBSD, OS.parse(name)); + } + @ParameterizedTest @ValueSource(strings = { "FREEBSD", "FreeBSD" }) void freebsd(String name) { @@ -65,6 +71,12 @@ void openbsd(String name) { assertEquals(OS.OPENBSD, OS.parse(name)); } + @ParameterizedTest + @ValueSource(strings = { "NETBSD", "NetBSD" }) + void netbsd(String name) { + assertEquals(OS.NETBSD, OS.parse(name)); + } + @ParameterizedTest @ValueSource(strings = { "SOLARIS", "SunOS" }) void solaris(String name) {