RFR [6943190] TEST_BUG: java/lang/Runtime/exec/ExecWithInput.java hardcodes path to cat
roger riggs
roger.riggs at oracle.com
Wed Feb 26 22:19:35 UTC 2014
Hi Ivan,
A few comments on UnixCommands:
- The trailing "_" on the method names looks very odd, they could all
use some suffix "Pgm" "X", etc.
- I'm not sure the specific command methods do you any good
(over a method with a string argument). since they immediately
revert to the string command name.
- The final "0" in findCommand0 is using the convention for a native
method but it is not native.
- Use the File methods for concatenation rather than string concatenation.
i.e. new File (parent, child).
Roger
On 2/26/2014 4:30 PM, Ivan Gerasimov wrote:
>
> On 24.02.2014 23:38, Martin Buchholz wrote:
>> Thanks for working on these ancient Process tests.
>> I would prefer to see them using "feature tests".
>>
>> You wanna do "cat /dev/zero"? Then look for cat in /bin and /usr/bin
>> and check for /dev/zero as well, e.g. using File.isExecutable
>>
> OK. Here's another iteration.
> I introduced a utility class UnixCommands, which encapsulates
> searching for the command under several fixed directories.
>
> I didn't touch /dev/null though. I think we can assume it exists in
> every Unix system. Many other tests depend on it anyways.
>
> Would you please have a chance to review the updated wevrev?
> http://cr.openjdk.java.net/~igerasim/6943190/1/webrev/
>
> Sincerely yours,
> Ivan
>
>> Doing OS-specific things like:
>>
>> + static final boolean isLinux =
>> + System.getProperty("os.name <http://os.name>",
>> "unknown").startsWith("Linux");
>>
>> should be a last resort.
>>
>>
>> On Mon, Feb 24, 2014 at 9:26 AM, Ivan Gerasimov
>> <ivan.gerasimov at oracle.com <mailto:ivan.gerasimov at oracle.com>> wrote:
>>
>> Hello!
>>
>> We've got one quite old report about been unable to run the test
>> under Android.
>> https://bugs.openjdk.java.net/browse/JDK-6943190
>>
>> That was due to hard-coded path to the cat utility as /bin/cat.
>> When investigating, I found two other tests under the same
>> directory that use /usr/bin/cat and /usr/bin/echo.
>> These two test seem to (almost) never run because of the unusual
>> path.
>>
>> Here's the first version of the webrev, with the fix to only three
>> tests mentioned above:
>> http://cr.openjdk.java.net/~igerasim/6943190/0/webrev/
>> <http://cr.openjdk.java.net/%7Eigerasim/6943190/0/webrev/>
>>
>> java/lang/Runtime/exec/ directory has also got several other
>> tests, which run shell commands.
>> Some of them have absolute path and some of them don't.
>>
>> So I have a general question: Why would we ever need the absolute
>> path for the commands?
>> Why wouldn't we rely on the PATH env variable?
>>
>> Sincerely yours,
>> Ivan
>>
>>
>>
>
More information about the core-libs-dev
mailing list