[PATCH] Enable jtreg tests to run on WSL (Windows Subsystem for Linux)

Jonathan Gibbons jonathan.gibbons at oracle.com
Tue Jan 8 23:27:46 UTC 2019


`targetting` is a strange word to use in this context, since (to me) 
`targetting` implies `action at a distance`.

Any Java program can query its environment to determine the OS on which 
it it running. There are various system properties, all beginning 
"os.":  os.name, os.arch and os.version. Listed here: 
https://docs.oracle.com/javase/9/docs/api/java/lang/System.html#getProperties--

So part of the question is, what are the values of these properties when 
using WSL, or (more accurately) when running a JRE that was built by 
using "/./configure in OpenJDK to build a Linux JDK on WSL or a Windows 
JDK on WSL./"

Then, the question becomes, can jtreg detect if a compatibility layer is 
required, and if so can it infer whether to use WSL or Cygwin?   I'm not 
sure if this question makes sense, but maybe jtreg could infer which to 
use by seeing whether wsl.exe or sh.exe is on $PATH. And, maybe that's 
"too magic" ... I'm just asking.

-- Jon


On 01/08/2019 02:26 PM, Andrew Luo wrote:
> Oh, now that I look at your 3rd revision, I think I understand what you meant.  jtreg can detect whether or not it is targeting Windows or Linux based on the current OS of the JRE being used to run jtreg - is that what you mean?
>
> If so, that might work, but on the build-dev discussion while adding WSL we did think about it being possible (later on; see https://mail.openjdk.java.net/pipermail/build-dev/2018-December/024542.html) to use either a Windows or Linux boot JDK to build on WSL.
>
> Thanks,
>
> -Andrew
>
> -----Original Message-----
> From: code-tools-dev <code-tools-dev-bounces at openjdk.java.net> On Behalf Of Andrew Luo
> Sent: Tuesday, January 8, 2019 2:23 PM
> To: Jonathan Gibbons <jonathan.gibbons at oracle.com>; code-tools-dev at openjdk.java.net
> Subject: RE: [PATCH] Enable jtreg tests to run on WSL (Windows Subsystem for Linux)
>
> Jon,
>
> I’m not sure what exactly you mean that the “test effectively require either Cygwin or WSL”?  I believe it would be possible (ideal actually) to write the tests such that they can run on all platforms (Linux, Cygwin, WSL Windows target) – most tests today run on multiple platforms already, right?
>
> The option needs to be provided only when you use WSL to target Windows.  If you use WSL to target Linux then the option should not be set; the behavior will be the same as Linux.  I don’t think it’s possible for jtreg or the test itself to infer this information, because it depends on whether you called ./configure in OpenJDK to build a Linux JDK on WSL or a Windows JDK on WSL.
>
> Perhaps I’m misunderstanding what you’re saying though…
>
> Thanks,
>
> -Andrew
>
> From: Jonathan Gibbons <jonathan.gibbons at oracle.com>
> Sent: Tuesday, January 8, 2019 11:25 AM
> To: Andrew Luo <andrewluotechnologies at outlook.com>; code-tools-dev at openjdk.java.net
> Subject: Re: [PATCH] Enable jtreg tests to run on WSL (Windows Subsystem for Linux)
>
>
> Andrew,
>
> One final question ...
>
> You introduce a new jtreg option to sepcify the use of WSL. Given that the test effectively require either Cygwin or WSL, would it be reasonable to try and infer which subsystem is required, perhaps leaving the new option to be used only in the case of uncertainty/ambiguity?
>
> Not everyone runs jtreg tests through the Makefiles, and for those that don't, requiring the new option will mean that they need to specify the new option to use WSL. It would be nice if they didn't have to.
>
> -- Jon
>



More information about the code-tools-dev mailing list