On Mon, 23 Nov 2020 15:11:49 GMT, Maurizio Cimadamore <[email protected]>
wrote:
> Both the Foreign Memory Access and the Foreign Linker APIs leave something to
> be desired when it comes to handling NPEs - first, most of the API javadoc is
> oblivious to NPEs being thrown. Secondly, not all API method implementations
> add expicit NPE checks - with the result of NPE often being thrown very deep
> in the call chain - if at all. Third, test for API coverage of nulls is
> ad-hoc.
>
> This patch rectifies all these issues. To increase coverage for null injected
> into APIs, this patch introduces a new framework for testing an API in bulk,
> so that all methods are reflectively called with some values replaced with
> nulls, so that all combinations are tried.
>
> I've also added, as part of this patch, a test to cover the statics in
> MemoryAccess which were not covered throughly.
Already looked at this in panama-foreign, but found one minor issue.
src/jdk.incubator.foreign/share/classes/jdk/incubator/foreign/FunctionDescriptor.java
line 152:
> 150: * @return the new function descriptor.
> 151: * @throws NullPointerException if either {@code addedLayouts ==
> null}, or any of the
> 152: * layouts in {@code addedLayouts} is null.@throws
> NullPointerException if any of the new argument layouts is null.
Spurious `@throws` tag here
-------------
Marked as reviewed by jvernee (Committer).
PR: https://git.openjdk.java.net/jdk/pull/1388