On Fri, 17 Jan 2025 16:46:58 GMT, Brian Burkhalter <b...@openjdk.org> wrote:
>> test/jdk/java/io/File/createTempFile/SpecialTempFile.java line 95: >> >>> 93: >>> 94: String cmd = "Systeminfo"; >>> 95: Process p = Runtime.getRuntime().exec(new String[] {cmd}); >> >> I'm not a big fan of running third-party tools in our tests; did you try >> fixing the regex expression? >> Replace: `"^.*[11|2025]$"` (character class) -> `"^.*(11|2025)$"` >> (alternative strings) > > No, I replaced it with splitting the OS version string. In any case, would > that cover, e.g., the hypothetical cases Windows 27, Windows Server 2038, > etc.? > > Unfortunately Miscrosoft does not provide a reliable API to obtain the build > number. `GetVersionEx` is deprecated. > [KUSER_SHARED_DATA](https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/ns-ntddk-kuser_shared_data) > contains `NtBuildNumber` but some device driver kit has to be installed to > use it. > > Also, > [IsWindows10OrGreater](https://learn.microsoft.com/en-us/windows/win32/api/versionhelpers/nf-versionhelpers-iswindows10orgreater) > returned `false` on my Windows 11 machine so it is suspicious, and > [IsWindowsVersionOrGreater](https://learn.microsoft.com/en-us/windows/win32/api/versionhelpers/nf-versionhelpers-iswindowsversionorgreater) > would require being able to know the service pack number of a particular > build which I am not sure is possible, No, it wouldn't cover any future Windows versions, but it would definitely buy us a few years. Regarding a more permanent solution: the test is supposed to verify the fix for [JDK-8013827](https://bugs.openjdk.org/browse/JDK-8013827). I think it should accept both outcomes (success and the specific exception); the only unacceptable outcomes are: - timeout, - unexpected exception. We don't need to know the exact Windows version to verify that the test doesn't time out. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23117#discussion_r1920491885