On Mon, 9 Aug 2021 11:06:25 GMT, Abdul Kolarkunnu <akolarku...@openjdk.org> 
wrote:

>> ParamsTest is an interop test between keytool <-> openssl. There are some 
>> manual steps listed in jdk/sun/security/pkcs12/params/README to perform 
>> after the execution of jtreg execution. So this test is to perform that 
>> manual steps.
>
> Abdul Kolarkunnu has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8266182: Automate manual steps listed in the test 
> jdk/sun/security/pkcs12/ParamsTest.java

Thanks for the fix. Code looks fine. I'm only concerned on the failure when 
openssl is not found.

test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java line 48:

> 46: import java.nio.file.Files;
> 47: import java.nio.file.Path;
> 48: import java.nio.file.Paths;

IntelliJ IDEA shows quite some imports are useless.

test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java line 88:

> 86:             testWithJavaCommands();
> 87:             testWithOpensslCommands(opensslPath);
> 88:         } else {

I still think it's better to succeed with a warning when the openssl binary 
cannot be found. IMHO it's a little unfriendly to force people setting up a 
system property to let the test pass. It's also dependent on runner machines 
and the user might have to adjust their scripts or launcher all the time. I 
would rather keep the old test/data if I want to ensure the test gets run 
everywhere.

Also, it might also help if the test can search for openssl, maybe simply from 
`/usr/bin/openssl` or `/usr/local/bin/openssl`, but this means you might need 
to check for the version.

Third, is it OK to let the system property pointing to the binary itself 
directly? When I was trying out this test I was using the openssl I built and 
it's not in a `bin` sub-directory.

test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java line 100:

> 98:         OutputAnalyzer output = ProcessTools.executeCommand(
> 99:                 opensslPath, "version")
> 100:                 .shouldHaveExitValue(0);

This looks like a good time to ensure the version is 1.1.* or at least 1.* (I 
haven't tested with 1.0.? versions). Also, when trying out with 3.0.0, there 
are only 2 failures (line 119 generating weak file without -legacy. line 479 
succeeds with a warning).

test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java line 580:

> 578:         return SecurityTools.keytool(s);
> 579:     }
> 580: 

I feel the lines below should go to a test library.

-------------

PR: https://git.openjdk.java.net/jdk/pull/4413

Reply via email to