Supporting WSL in shell tests; was Re: [PATCH] Fix for EXE_SUFFIX being set for WSL having no effect
Jonathan Gibbons
jonathan.gibbons at oracle.com
Thu Jan 24 19:13:15 UTC 2019
As a correction to my earlier suggestion, I note that $JAVA_HOME should
really be $TESTJAVA, or else something like
${TESTJAVA:-${JAVA_HOME}}
to get the best of both worlds.
But, to generalize summarize this thread, I think we're seeing ways to
move forward without any additional changes to jtreg.
-- Jon
On 1/23/19 3:25 PM, Jonathan Gibbons wrote:
>
> On 1/23/19 1:56 PM, Jonathan Gibbons wrote:
>>
>> On 1/23/19 1:49 PM, Jonathan Gibbons wrote:
>>>
>>> On 1/23/19 1:12 PM, Alexandre (Shura) Iline wrote:
>>>> I think it is only natural to expect folks to debug shell tests
>>>> directly. If we accept this assumption, then, is there any
>>>> reasonable alternative to “uname"? There is a “systeminfo” tool on
>>>> windows, not sure if it helps. We really need to know what “uname
>>>> -s” outputs, though, as it might still work.
>>>
>>> It would help if we could crowd-source a table showing the value on
>>> different systems.
>>>
>>> -- jon
>>>
>>
>> ... but that being said, `uname` will test the system being used to
>> run the shell script; it seems we need to distinguish the different
>> kinds of JDK we might be wanting to test ... i.e is the JDK a "Linux
>> JDK" or a "WIndows JDK". You won't get that from `uname`, since (as I
>> understand it) the WSL world can invoke either sort of JDK.
>>
>> This seems to be the thinking behind Andrew's suggestion of providing
>> WSL_TARGET, but it just seems weird, in his proposed text, to be
>> testing WSL_TARGET when we might not be running on WSL.
>>
>> -- Jon
>>
>
> Here's a variant of Andrew's earlier suggestion that does not require
> jtreg setting either EXE_SUFFIX or WSL_TARGET, which is nice because
> that supports standalone invocation of the shell script for
> development and debugging.
>
> OS=`uname -s`;
> case "$OS" in
> Windows* | CYGWIN* )
> FS="\\"
> PS=";"
> ;;
>
> Linux )
> if [ -r $JAVA_HOME/bin/java.exe ]; then
> FS="\\"
> PS=";"
> EXE_SUFFIX=".exe"
> else
> FS="/"
> PS=":"
> fi
> ;;
>
> * )
> FS="/"
> PS=":"
> esac
>
> Note: that code is not tested on any platforms, and may need to be
> adapted as needed in some tests .. e.g. some tests want SEP instead of
> PS, some tests may also want NULL (set to NUL or /dev/null), etc
>
> Yes, the code fragment is growing, but Shura points out that if enough
> tests would make use of it, we could put a script in a shared test
> library somewhere, to reduce the impact in any individual test.
>
> -- Jon
>
More information about the quality-discuss
mailing list